I'm familiar with COIN-OR and have also used a couple packages in R to solve LPs. Today I found out Google has their own open source optimization software, and it got me wondering what other open source LP solvers are out there?
-
3$\begingroup$ Some of that Gookel-listed OR-Tools software is actually COIN-OR, not Google-developed. For instance, the MILIP solver, CBC github.com/coin-or/Cbc . $\endgroup$– Mark L. StoneCommented May 30, 2019 at 22:22
-
1$\begingroup$ Thanks for the clarification since I hadn't had a chance to dig in to it yet. $\endgroup$– Zohar StrinkaCommented May 30, 2019 at 22:50
-
3$\begingroup$ I think this is the type of question that would do well if answered as a community wiki $\endgroup$– Michael FeldmeierCommented May 31, 2019 at 9:04
-
1$\begingroup$ Maybe I am too picky, but besides the tag, the question and the titel do not mention what you want to solve. A reader might think you are searching for a MDP solver or something else. $\endgroup$– Michiel uit het BroekCommented May 31, 2019 at 10:02
-
1$\begingroup$ We settled on specifically open source and specifically LP solvers (which is most of what I use as a freelancer who doesn't want to pay licensing fees). $\endgroup$– Zohar StrinkaCommented Jun 12, 2019 at 1:42
6 Answers
OpenSolver is an LP/IP/NLP solver that plugs into Microsoft Excel. I used it for some classroom stuff a while back and was quite pleased with it.
If you are interested in metaheuristics, there are quite a few open-source contributions floating around (about which I mostly know nothing). I have used the Watchmaker Framework for Evolutionary Computation (i.e., genetic algorithms) successfully in a couple of projects. I don't think it is under active development any more (although the developer might respond to pull requests), but it is quite well documented and works. Not long ago, I looked around and found some other Java-based GA libraries, but have not gotten around to testing any.
Mittelmann benchmarks a number of (LP-)Solvers, some of which are open source. A recent new open source solver is HiGHS.
I compiled a list of solvers I could find last year. Several are COIN-OR-affiliated, but others include Mini-CP, DSP, BiqBin, OSQP, ECOS, and Dakota. (Edit - not all are dedicated LP, see comments below)
-
$\begingroup$ Few of these are (dedicated) LP solvers, so will lack the ability to exploit the form and sparsity of practical LP problems in order to compete with specialist solvers. $\endgroup$ Commented Jun 1, 2019 at 10:19
-
$\begingroup$ Thanks for this comment - this will surely be helpful for others. As a note, the original version of the question wasn’t specifically about LPs. $\endgroup$ Commented Jun 1, 2019 at 11:57
I believe SCIP is the fastest non-commercial solver. It’s free for academic use. You can check out the benchmarks by Hans Mittelmann for other suggestions.
-
1
-
2$\begingroup$ Yes but only for academic use. $\endgroup$ Commented May 30, 2019 at 22:38
-
1$\begingroup$ Where can we find the source? Thanks. $\endgroup$ Commented May 30, 2019 at 22:40
-
1
-
9$\begingroup$ It is technically not open-source. You can download the source code and look at it, but you can only use it for academic purposes unless you acquire a commercial license. $\endgroup$ Commented May 31, 2019 at 7:09
Just to add another, easily google-able, resource: Wikipedia, more or less, "maintains" a "List of optimization software" -- which includes the super handy "Mathematical optimization software" template I -- disclaimer: shameless self-plug -- started 6 years ago (and never bothered to curate) [the latter also includes references to alternat(iv)e taxonomies in its "talk" section].
-
1$\begingroup$ This WIkipedia page doesn't (really) mention COIN-OR, or widely-used high quality open-source solvers such as CBC or CLP. It really needs updating $\endgroup$ Commented Jun 1, 2019 at 14:50
-
3$\begingroup$ @SparseRunner Well, it's Wikipedia... so you can add relevant information when/if it's missing. (The template includes references to CBC, CLP, and other COIN-OR projects.) $\endgroup$– fbahrCommented Jun 1, 2019 at 15:24
Another open-source software is the GNU Linear Programming Kit (GLPK) and can be downloaded here.
Description (from Wikipedia):
The GNU Linear Programming Kit is a software package intended for solving large-scale linear programming, mixed integer programming, and other related problems. It is a set of routines written in ANSI C and organized in the form of a callable library.
-
2$\begingroup$ As a simplex solver, Mittelmann's benchmarks show GLPK to be terribly slow for large-scale LPs $\endgroup$ Commented Jun 1, 2019 at 9:45