GNU Linear Programming Kit
|Original author(s)||Andrew O. Makhorin|
4.60 / April 1, 2016
|License||GNU General Public License 3|
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.
Problems can be modeled in the language GNU MathProg which shares many parts of the syntax with AMPL and solved with standalone solver GLPSOL.
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.
GLPK is supported in the free edition of the OptimJ modeling system
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.
- 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.
|Wikibooks has a book on the topic of: GLPK|
- GLPK official site
- GLPK for Windows
- GUSEK (Windows IDE for the GLPK stand-alone solver)
- GLPK for Cygwin
- GLPK for Mac OS X
- Mathematical Programming in MathProg (Web IDE for MathProg)
- GLPK Perl interface
- GLPK Python interfaces:
- glpk-hs – GLPK interface for Haskell
- glpk - An R package
- GLPK for Java - A Java binding for GLPK
- GLPK for C# and the Common Language Interface (CLI)
- glpkerl - An Erlang binding for GLPK
- GLPK Common Lisp Interface
- glpkmex (GLPK matlab interface)
- rglpk - a ruby interface for GLPK
- Articles from IBM's developerWorks: