I am solving big optimization models (more than 100k variables) with the academic version of CPLEX but 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 I graduate (which will hopefully happen someday in the future). so I really need to find an alternative or start writing my own optimization library (which will be painful)

Any suggestion/insight would be much appreciated

Any feedback on GLPK or lp_solve?

asked 18 Nov '09, 08:20

Mark's gravatar image

Mark ♦
accept rate: 9%

Just to make sure, if you stay in academia CPLEX will be free for you.

(24 Aug '12, 13:59) jfpuget

Mittlemann's benchmarks (http://plato.asu.edu/ftp/milpf.html) provide a nice list of open source solvers along with head to head comparison of performance out of the box. Each of those can also be tweaked in several different ways. Your mileage may vary. Problems of size you are talking about will probably require lot of tweaking.


answered 21 Nov '09, 05:54

anonymous's gravatar image

accept rate: 8%


You may also try them without downloading/compiling at the NEOS solver (http://neos.mcs.anl.gov/neos/solvers/index.html) page to get some idea how they perform for the problem you wish to solve.

(21 Nov '09, 05:56) anonymous

Those links were great. Thanks for sharing. It is always hard to move away from CPLEX :)

(21 Nov '09, 16:10) Mark ♦

Definitely check out COIN-OR http://www.coin-or.org . http://www.coin-or.org/projects/ lists many of the relevant codes including CLP (the linear programming solver) and BCP (Branch, Cut, and Price) and CBC (Branch and Cut).

Don't start writing an optimization library from scratch! Build off of COIN.


answered 18 Nov '09, 09:22

Michael%20Trick's gravatar image

Michael Trick ♦♦
accept rate: 20%

Thanks! Is it possible to include COIN-OR solvers in a commercial software and sell it? I mean what license does it use? Not that I want to sell an MIP software, I am just wondering about the licensing of COIN-OR components

(18 Nov '09, 20:57) Mark ♦

Regarding the licensing of COIN-OR start by reading this post by Mike Trick

(18 Nov '09, 21:55) adamo

Check out individual packages, but generally yes since most are EPL/CPL : http://en.wikipedia.org/wiki/Eclipse_Public_License

(19 Nov '09, 14:19) Michael Trick ♦♦

if u are working within an academic environment, check out Gurobi's new and free (i think) academic licensing innovation. Otherwise, COIN-OR is good, even for commercial use and is risk-free, unless you or your company expect to run into any patenting disputes with IBM on related or unrelated issues :-)

The other open-source solvers are available under *GPL license and you have to tread carefully around them, but they may be ok for your internal research.

Caution: I'm just an OR guy. Consult your friendly neighborhood lawyer or law-school grad before using open-source stuff for commercial use


answered 18 Nov '09, 21:19

shiva's gravatar image

accept rate: 0%

why not try SCIP?


answered 30 Jan '10, 04:47

John%20Cui's gravatar image

John Cui
accept rate: 0%

I don't think SCIP has a friendly commercial license. GLPK neither (GPL)

(29 Jan '12, 06:09) pierre schaus

Could you define "friendly"? Even though I don't like the fact that SCIP is not open source; I know that ZIB does commercial licensing at a reasonable rate.

(29 Jan '12, 07:22) Marco Luebbecke ♦

@Marco SCIP is open source.

(23 Aug '12, 05:32) Ali

@Ali: Actually, it's not that simple. Both the FSF's and the OSI's definitions of OSS say: "If you receive software under an OSL, you can always use that software for commercial purposes"; I don't know what you're allowed to do under the SCIP commercial license, but the academic license doesn't meet this requirement.

(23 Aug '12, 06:40) fbahr ♦

@Marco Sorry, my mistake then. Open source meant "software whose source I can see" to me, I did not know this defintion.

(23 Aug '12, 07:53) Ali

Here is my feedback on GLPK. I believe GLPK can be scalable dependent on the PC/Server platform it is run on. If you have enough memory and processing power I believe you can do a fairly large dataset of variables and constraints. I would suggest running it on a Linux machine with a a multi-core processor and at least 4GB memory.

I have such machine and I can try it if you want to give me a dataset. You can contact me through my blog at IEOR Tools.

For more information you might want to try the GLPK mailing list and contact the maintainer Andrew M. http://www.gnu.org/software/glpk/

From the mailing list archive this my give you an answer for GLPK.



answered 07 Apr '10, 14:08

larrydag%201's gravatar image

larrydag 1 ♦
accept rate: 9%

Thanks for the offer, I have switched to Gurobi lately. Have not started using GLPK yet but will do it soon. I am wondering though is it possible to use GLPK as a standalone application or do I need to install it? I mean for Gurobi I can simply throw Gurobi.exe and ampl.exe in the same folder and start calling them from excel. I can put everything on a jump drive and move them to wherever I want. I am wondering if it is possible with GLPK?

(09 Apr '10, 00:01) Mark ♦

Yes. GLPK is a software kit. The binary optimization solver is glpsol (or glpsol.exe for windows). As long as you have a pointer to that binary you can solve problems.

(09 Apr '10, 15:33) larrydag 1 ♦

Thanks Larry, I downloaded glpsol.exe but I was not able to call it from AMPL (commercial) do you, by any chance, have experiences in calling glpsol from AMPL? I use option solve glpsol got an error in AMPL. My guess is that glpsol does not read AMPL files. Is that right?

(09 Apr '10, 20:44) Mark ♦

you would use glpsol.exe from a command line in Windows(cmd.exe).

glpsol.exe --model example.txt --output results.txt

This assumes example.txt is in a GNU MathProg or GMPL. GMPL is a subset of AMPL so AMPL model should work. You can leave out the --output results.txt and it will print to the screen.

(09 Apr '10, 21:01) larrydag 1 ♦

Thanks. I called the model and data file from within glpsol. It brings up an error in my data file. I need to find the error in that file. Thanks a lot for the help. I am very excited to see the results.

(09 Apr '10, 22:53) Mark ♦

I posted the following question to GLPK mailing list and here is what I got:

I am wondering if you guys know any way to call glpk from ampl can I use option solver glpsol from ample?

See: http://www.ampl.com/hooking.html . AFAIK, no one has tried yet to call glpk from ampl. (Please note that the AMPL system is non-free, proprietary software.)

(11 Apr '10, 05:08) Mark ♦

Mark, I suggest taking a loot at GLPK Lab. It is a GUI IDE based on the GLPK library for windows. Very user friendly.


(13 Apr '10, 19:57) larrydag 1 ♦
showing 5 of 7 show 2 more comments

I like CBC. Of course it is not so powerful as CPLEX or GUROBI, but on problems, which I was solving, it was usually doing much better than GLPK.


answered 25 Aug '12, 09:52

Karel's gravatar image

accept rate: 0%

I used lp-solve in my research when I was in grad-school (around 6 years back). At that time, I compared glpk, lp-solve and clp on performance, ease of use and support through mailing-list, and settled for lp-solve (I don't remember the pros and cons of each now, unfortunately, and things may have changed anyway). I was pretty pleased with the java interface to lp-solve which I used to solve MIPs of around 5K to 10K variables. Fortunately for me, the problem structure was such that lp-solve was holding up pretty well with the then version of CPLEX (I had academic access to it) after some parameter tuning. Naturally, YMMV, but here is a vote for lp-solve.

In an internship, I later compared performance between glpk and clp on large (~20K variables) production scheduling problems and clp came out better.

My suggestion would be to try out your problem, at scale, with various solvers, and spend may be a day-or-two on each solver doing performance tuning to get the best result that you can. Then decide based on your result.


answered 01 Sep '12, 00:38

Samik%20R.'s gravatar image

Samik R.
accept rate: 2%

edited 01 Sep '12, 00:41

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 18 Nov '09, 08:20

Seen: 20,977 times

Last updated: 01 Sep '12, 00:41

OR-Exchange! Your site for questions, answers, and announcements about operations research.