1

I am learning about optimization algorithms for automatic grouping of users. However, I am completely new to these algorithms and I have heard about them as I reviewed the related literature. And, differently, in one of the articles, the authors implemented their own algorithm (based on their own logic) using Integer Programming (this is how I heard about IP).

I am wondering if one needs to implement a genetic/particle swarm (or any other optimization) algorithm using mixed integer linear programming, or is this just one of the options. At the end, I will need to build a web-based system that groups users automatically. I appreciate any help.

renakre
  • 8,001
  • 5
  • 46
  • 99
  • 1
    A nice (though somewhat dated) overview is "How to Solve It: Modern Hueristics" by Michalewicz and Fogel. It discusses both IP and heuristic methods (with emphasis on the latter). – John Coleman Dec 12 '16 at 17:46

1 Answers1

5

I think you are confusing the terms a bit. These are all different optimization techniques. You can surely represent a problem using Mixed Integer Programming (MIP) notation but you can solve it with a MIP solver or genetic algorithms (GA) or Particle Swarm Optimization (PSO).

Integer Programming is part of a more traditional paradigm called mathematical programming, in which a problem is modelled based on a set of somewhat rigid equations. There are different types of mathematical programming models: linear programming (where all variables are continuous), integer programming, mixed integer programming (a mix of continuous and discrete variables), nonlinear programming (some of the equations are not linear).

Mathematical programming models are good and robust, depending on the model, you can tell how far you are from an ideal solution, for example. But these models often struggle in problems with many variables.

On the other hand, genetic algorithms and PSO belong to a younger branch of optimization techniques, one that it is often called metaheuristics. These techniques often find good or at least reasonable solutions even for large and complex problems, many practical applications

There are some hybrid algorithms that combine both mathematical models and metaheuristics and in this case, yes, you would use both MIP and GA/PSO. Choosing which approach (MIP, metaheuristics or hybrid) is very problem-dependent, you have to test what works better for you. I would usually prefer mathematical models if the focus is on the accuracy of the solution and I would prefer metaheuristics if my objective function is very complex and I need a quick, although poorer, solution.

Jon Cardoso-Silva
  • 991
  • 11
  • 25
  • thank you very much for the answer! If I am using MIP, I will need to propose my own mathematical model and objective function from scratch depending on the problem. You do not recommend this if I have many parameters in the model and also high number of users (in my case). To implement GA/PSO algorithms and customize the objective function, I can use Solvers (of IBM or Microsoft), or I can use Python, MIP, and so on. Can you please confirm these information? – renakre Dec 13 '16 at 08:12
  • 1
    Well, you don't need to propose a new model/objective function if you find one (e.g. in academic literature) that suits your problem, if that is the case, I would focus on learning how to implement the problem and solve to find the best solution. For MIP, IBM Cplex is probably the best solver (but it is expensive) and there are C/Java/Python libraries for it, for GA/PSO, you can look at Python, Matlab, C or Java libraries too (JMetal is one I know) or you can write your own GA/PSO in whatever language you prefer, it is not super hard to learn and code by yourself. – Jon Cardoso-Silva Dec 13 '16 at 11:57