Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to choose an integer linear programming solver?

I am newbie for integer linear programming. I plan to use a integer linear programming solver to solve my combinatorial optimization problem. I am more familiar with C++/object oriented programming on an IDE. Now I am using NetBeans with Cygwin to write my applications most of time.

May I ask if there is an easy use ILP solver for me? Or it depends on the problem I want to solve ? I am trying to do some resources mapping optimization. Please let me know if any further information is required.

Thank you very much, Cassie.

like image 378
Cassie Avatar asked May 07 '10 20:05

Cassie


2 Answers

If what you want is linear mixed integer programming, then I would point to Coin-OR (and specifically to the module CBC). It's Free software (as speech) You can either use it with a specific language, or use C++.

Use C++ if you data requires lots of preprocessing, or if you want to put your hands into the solver (choosing pivot points, column generation, adding cuts and so on...).

Use the integrated language if you want to use the solver as a black box (you're just interested in the result and the problem is easy or classic enough to be solved without tweaking).

But in the tags you mention genetic algorithms and graphs algorithms. Maybe you should start by better defing your problem... For graphs I like a lot Boost::Graph

like image 104
Tristram Gräbener Avatar answered Nov 01 '22 06:11

Tristram Gräbener


I have used lp_solve ( http://lpsolve.sourceforge.net/5.5/ ) on a couple of occasions with success. It is mature, feature rich and is extremely well documented with lots of good advice if your linear programming skills are rusty. The integer linear programming is not a just an add on but is strongly emphasized with this package.

Just noticed that you say you are a 'newbie' at this. Well, then I strongly recommend this package since the documentation is full of examples and gentle tutorials. Other packages I have tried tend to assume a lot of the user.

like image 8
ravenspoint Avatar answered Nov 01 '22 06:11

ravenspoint