I never did any linear/integer programming so I am wondering the following two things

  • What are some efficient free linear programming solvers?
  • What are some efficient commercial linear programming solvers?

It would be nice to supply a dummy usage example with each proposed answer.

Also what if wish to solve a integer programming problem? What are the answers to the above two questions in this case?

I know that integer LP is a hard problem but there are some relaxing methods that are sometimes employed in order to obtain a solution to an integer programming problem. Are there any software packages implementing this kind of stuff?


Solution 1:

  • See: LiPS:
    Linear Program Solver (LiPS) is intended for solving linear programming problems. Main features: easy to use graphical interface, sensitivity analysis, goal and mixed integer programming solver. LiPS supports MPS and simple LP format (like lpsolve).

  • See also: CLP
    CLP stands for COIN-OR LP (Computational Infrastructure for Operations Research: Linear Programming). CLP is an open-source linear programming solver written in C++.

  • Also from COIN-OR is SYMPHONY, a program for solving integer programming (IP) problems and its variants.

  • And: LpSolvers:
    This site provides installation information for a free-of-charge software package that solves Linear Program models by the Simplex Method and/or the Push-and-Pull Method.

  • Finally, see the Linear and Integer Programming Software section of Wikipedia for a more extensive list (with links) of both free and commercial linear programming solvers.

Solution 2:

A few Linear Programming solvers:

  • GLPK (GNU Linear Programming Kit) is written in C. Take a look at this intro. GLPK can also do Integer Programming, I believe.

  • CVXOPT is a Python library for convex optimization. In addition to LP, it allows you to solve quadratic and semidefinite programs, as well.

  • Gurobi: you can download a free trial.

Solution 3:

The Konrad-Zuse Institute in Berlin (ZIB), Germany provides a nice suite to solve all kinds of LP / ILP tasks. It includes:

  • zimpl: a language to model mathematical programms
  • SCIP: a mixed integer programming solver and constraint programming framework
  • SoPlex: a linear programming solver
  • and more

Best of all, it is free! And all implementations are reasonably fast.

The state of the art in the commercial sector is probably IBM's CPLEX Studio. This is an expansive piece of software, but IBM has an academic program where you get free licenses. However it is a bit of a pain to apply. I used to work with the CPLEX package because it includes this nice modelling language ampl. However when the equivalent free zimpl came out, I switched to the more available ZIB package.

Solution 4:

I would recommend Sage. It' an excellent Python-based free alternative to Magma, Maple, Mathematica or Matlab!

Formulating LP problems using it it's also quite simple compared to other tools!