GNU Linear Programming Kit

(Redirected from MathProg)

The GNU Linear Programming Kit (GLPK) is a software package intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in the form of a callable library. The package is part of the GNU Project and is released under the GNU General Public License.

GNU Linear Programming Kit
Original author(s)Andrew O. Makhorin
Developer(s)GNU Project
Stable release
5.0[1] Edit this on Wikidata / 16 December 2020; 3 years ago (16 December 2020)
Repository
Written inC
Operating systemCross-platform
Available inEnglish
LicenseGPLv3
Websitewww.gnu.org/software/glpk/

GLPK uses the revised simplex method and the primal-dual interior point method for non-integer problems and the branch-and-bound algorithm together with Gomory's mixed integer cuts for (mixed) integer problems.

History

edit

GLPK was developed by Andrew O. Makhorin (Андрей Олегович Махорин) of the Moscow Aviation Institute. The first public release was in October 2000.

  • Version 1.1.1 contained a library for a revised primal and dual simplex algorithm.
  • Version 2.0 introduced an implementation of the primal-dual interior point method.
  • Version 2.2 added branch and bound solving of mixed integer problems.
  • Version 2.4 added a first implementation of the GLPK/L modeling language.
  • Version 4.0 replaced GLPK/L by the GNU MathProg modeling language, which is a subset of the AMPL modeling language.

Interfaces and wrappers

edit

Since version 4.0, GLPK problems can be modeled using GNU MathProg (GMPL), a subset of the AMPL modeling language used only by GLPK. However, GLPK is most commonly called from other programming languages. Wrappers exist for:

Further reading

edit
  • Eiji Oki (2012). Linear Programming and Algorithms for Communication Networks: A Practical Guide to Network Design, Control, and Management. CRC Press. ISBN 978-1-4665-5264-7. The book uses GLPK exclusively and contains numerous examples.

References

edit
  1. ^ Andrew Makhorin (16 December 2020). "glpk 5.0 release information". Retrieved 16 December 2020.
  2. ^ GLPK.jl, JuMP-dev, 2023-01-16, retrieved 2023-02-04
  3. ^ jump-dev/JuMP.jl, JuMP-dev, 2023-02-04, retrieved 2023-02-04
  4. ^ "GLPK for Java – About".
edit