GLPK/Introduction
Welcome to the GNU Linear Programming Kit Wikibook!
About this Wikibook
editThis Wikibook covers the mainline GLPK project and a number of separate initiatives. It is designed to complement rather than duplicate the official GLPK documentation.
The GLPK project
editThe core GNU Linear Programming Kit (GLPK) project comprises:
- a callable library, written in C, for solving large-scale linear (LP), mixed integer (MIP), and related optimization problems
- the GNU MathProg mathematical programming language for specifying such problems at a high level
- the GLPSOL command-line application for translating and solving models written in MathProg
- comprehensive documentation for the above
The GLPK project itself is hosted at www.gnu.org/software/glpk.
The GLPK wikipedia entry can be found at en.wikipedia.org/wiki/GLPK.
The GLPK project maintains two mailing lists: help-glpk@gnu.org and bug-glpk@gnu.org. To subscribe to either of these lists, visit lists.gnu.org/mailman/listinfo/help-glpk or lists.gnu.org/mailman/listinfo/bug-glpk respectively. These lists are solely for traffic concerning the mainline GLPK project — matters relating to third-party initiatives should be directed to those initiatives.
The official GLPK documentation can be found in the doc subdirectory after unpacking the latest GLPK tarfile. To obtain this tarfile, find a suitable GNU FTP mirror, open the glpk directory, and download the latest glpk-0.00.tar.gz entry. Alternatively, follow these step-by-step instructions.
In the first instance, GLPK is distributed as source code with the expectation that users will build their own binaries (libraries and executables) — to suit their individual constellation of operating system, processor architecture, and C compiler and their choice of GLPK configuration options. Some users prefer to download pre-compiled files instead — particularly users running Windows systems or common Linux distros — such binaries are often available from the wider GLPK community or from Linux software repositories, respectively.
Andrew Makhorin, Moscow Aviation Institute, is the lead developer and maintainer of GLPK. The first public release was October 2000.
Parallel initiatives
editThe GLPK project has spawned a number of parallel initiatives, some of which may migrate back into the main codebase and some of which will remain distinct and different.
Solver and language development
editIn terms of solver and language development, initiatives include:
- the provision of specialist reporting
- support for new problem formats and similar solver-wide features
- refinements to the GLPK branch-and-bound solution process for particular applications
- extensions to the MathProg language.
Source code contributions are normally provided as patches to the maintainer. There is no web-based code hosting for GLPK at present.
Deployment and usability
editIn terms of deployment and usability, initiatives include:
- pre-built binaries for common platforms, including Windows and Linux
- language bindings for languages other than C and C++
- spreadsheet and database connectivity under MathProg
- integrated development environments (IDE) for MathProg
- problem and/or solution visualization techniques
- unofficial GLPK documentation, including this Wikibook.
A key reason for this Wikibook is to provide a location in which to collect and compare these often diverse initiatives.
Closure
editRemember to consult the official GLPK documentation, in the first instance, for issues that relate directly to GLPK. The author of GLPK, Andrew Makhorin, works hard to keep the official documentation current and comprehensive.
Try to run the latest version of GLPK. The codebase is under continual improvement and you do yourself a disservice by running stale code. You will also receive more interest on the Help-glpk mailing list if you raise an issue that relates to the latest release.