34

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?

Zohar Strinka
  • 747
  • 4
  • 13
  • 3
    Some of that Gookel-listed OR-Tools software is actually COIN-OR, not Google-developed. For instance, the MILIP solver, CBC https://github.com/coin-or/Cbc . – Mark L. Stone May 30 '19 at 22:22
  • 1
    Thanks for the clarification since I hadn't had a chance to dig in to it yet. – Zohar Strinka May 30 '19 at 22:50
  • 3
    I think this is the type of question that would do well if answered as a community wiki – Michael Feldmeier May 31 '19 at 09:04
  • 1
    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. – Michiel uit het Broek May 31 '19 at 10:02
  • Fair point. I'll add that clarification to my post. – Zohar Strinka May 31 '19 at 11:58
  • Are you looking for a simplex solver for LP, or an interior point solver? Or are you just looking for something that will solve LPs? – SparseRunner Jun 02 '19 at 08:33
  • Typically I'm just looking for "something that will give me the optimal solution with as few drawbacks as possible." However, an answer that explains why I should be more picky would be helpful. – Zohar Strinka Jun 02 '19 at 12:29
  • I agree this question is too broad, but if you can be more specific about what you are looking on, I will probably vote to reopen. For example, are you looking for an LP solver? A MIP solver? Something more general? Specifically open-source? Something specifically for R? – LarrySnyder610 Jun 12 '19 at 00:09
  • 1
    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). – Zohar Strinka Jun 12 '19 at 01:42

6 Answers6

20

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.

prubin
  • 39,078
  • 3
  • 37
  • 104
19

Mittelmann benchmarks a number of (LP-)Solvers, some of which are open source. A recent new open source solver is HiGHS.

Michael Feldmeier
  • 2,856
  • 14
  • 40
16

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)

E. Tucker
  • 1,317
  • 8
  • 22
  • 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. – SparseRunner Jun 01 '19 at 10:19
  • 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. – E. Tucker Jun 01 '19 at 11:57
12

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.

Edward Lam
  • 1,235
  • 6
  • 14
10

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].

fbahr
  • 1,026
  • 8
  • 16
  • 1
    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 – SparseRunner Jun 01 '19 at 14:50
  • 3
    @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.) – fbahr Jun 01 '19 at 15:24
5

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.