views:

1461

answers:

7

I am using CPLEX for solving huge optimization models (more than 100k variables) now I'd like to see if I can find an open source alternative, I solve mixed integer problems (MILP) and CPLEX works great but it is very expensive if we want to scale so I really need to find an alternative or start writing our own ad-hoc optimization library (which will be painful)

Any suggestion/insight would be much appreciated

+3  A: 

Have you tried lp_solve? There were also some other suggestions in the following questions, for Java:

Zach Scrivena
+4  A: 

I personally found GLPK better (i.e. faster) than LP_SOLVE. It supports various file formats, and a further advantage is its library interface, which allows smooth integration with your application.

David Hanak
+1  A: 

I recommend checking out the COIN project. COIN OR

Many good solvers here, including ipOPT for nonlinear problems and a couple mixed integer solvers as well.

SplittingField
A: 

100k variables is a large problem. Many of the open-source libraries do not function well with that many variables. From what I've read lp_solve has only been tested for around 30k variables. Using the commercial system may be your only choice.

kpatvt
A: 

Another endorsement for COIN-OR. We found that the linear optimiser component (Clp) was very strong, and the mixed integer component (Cbc) could be tuned quite well with some analysis. We compared with LP-Solve and GLPK.

For really tough problems, a commercial solver is the way to go.

dtw
+1  A: 

I've read good things about the Microsoft Solver Foundation (MSF)

ohadsc
A: 

I believe that you should not use packages to optimize a problem. you should program your problem by using a suitable approach for example if you have a non convex and mixed integer problem you can use LCA method. In MATLAB package you can find another options such as GENETIC Algorithm.

reza