Fact-checked by Grok 2 weeks ago

GNU Linear Programming Kit

The GNU Linear Programming Kit (GLPK) is a free software package designed for solving large-scale (LP), mixed integer programming (MIP), and related problems. Written in the programming language, it provides a callable of routines that can be integrated into custom applications or used via the standalone solver glpsol. GLPK supports modeling in GNU MathProg, a subset of the AMPL language, allowing users to define variables, constraints, and objectives in a declarative format. Developed by Andrew Makhorin of the starting in 2000, GLPK was registered as a in 2001 and has been maintained under the GNU General Public License version 3 or later. The package implements established algorithms such as the and simplex methods for , interior-point methods, and branch-and-bound with branch-and-cut techniques for MIP problems. It is particularly valued for its efficiency in handling problems with thousands of variables and constraints, making it suitable for applications in , , and across industries. The latest stable release, version 5.0, was issued in December 2020, with ongoing support through the mailing lists and community contributions. GLPK's open-source nature has facilitated its integration into various tools, including interfaces for , , and , enhancing its accessibility for both research and practical optimization tasks.

Introduction

Overview

The (GLPK) is a software package consisting of a set of routines written in the programming language, organized as a callable library designed for solving large-scale (LP), mixed (MIP), and related problems. It enables developers to integrate optimization capabilities directly into applications, supporting problems with up to millions of variables and constraints, making it suitable for computationally intensive tasks in and related fields. The latest stable release is version 5.0, issued in December 2020. Key components of GLPK include a standalone driver program called glpsol, which allows users to solve models from the command line without embedding the library in custom code. Additionally, it provides the , a subset of the AMPL (A Mathematical Programming Language) that facilitates declarative specification of optimization models in a concise, algebraic syntax. As part of Project, GLPK contributes to the development of tools for , emphasizing portability across various platforms due to its implementation. It is maintained by Andrew Makhorin.

Licensing

The GNU Linear Programming Kit (GLPK) is distributed under the GNU General Public License (GPL) version 3 or later, as part of the GNU Project. This license ensures that GLPK remains , allowing users worldwide to run, study, share, and modify the program without restrictions on the number of users or installations. for GLPK was originally held by Andrew O. Makhorin, but was transferred to the in 2020 with the release of version 5.0, with all contributions licensed under the same GPL terms to maintain compatibility and openness. The GPL grants permissions for free redistribution in source or binary form, modification of the software, and its use within both free and proprietary applications, provided that any derivative works distributed to others include the source code and adhere to the requirements of the GPL. This mechanism promotes collaborative development while preventing the software from being incorporated into closed-source products without disclosure. Like all GPL-licensed software, GLPK is provided without any warranties, express or implied, including but not limited to merchantability or fitness for a particular purpose; users assume all risk associated with its use. In contrast to proprietary solvers such as ILOG CPLEX, which require paid subscriptions for full-featured commercial use, typically starting from several thousand dollars annually, GLPK offers cost-free availability with no limits on problem size, making advanced capabilities accessible to academic, research, and non-commercial users without licensing fees.

History and Development

Origins

The GNU Linear Programming Kit (GLPK) originated in 2000 when Andrew O. Makhorin, a researcher at the Aviation Institute's Department for Applied Informatics, initiated its development as a free alternative to proprietary solvers that dominated the field. At the time, commercial tools like CPLEX and XPRESS were the primary options for solving large-scale optimization problems, limiting for and users due to licensing costs and restrictions. Makhorin's background in , combined with his involvement in Project, motivated the creation of GLPK to fill the gap in for linear and mixed-integer programming. The primary goals were to provide a portable, C-based capable of handling substantial optimization tasks in and environments, where the absence of robust free tools hindered experimentation and . This effort aligned with the GNU Project's ethos of developing freely available software for mathematical and scientific computing. The first public release of GLPK version 1.0 came in 2000, placed under the General Public License and integrated into the GNU ecosystem, establishing it as an early open-source contender in tooling. This initial version focused on core functionality for , setting the foundation for subsequent enhancements while emphasizing portability across platforms.

Major Releases

The Linear Programming Kit (GLPK) began with its initial release, version 1.0, in October 2000, introducing a basic library for solving () problems using the . This foundational version established GLPK as a callable library for large-scale LP optimization, with early distributions available via GNU FTP mirrors. Subsequent early releases expanded core capabilities. , released on January 25, 2001, added a tentative implementation of the primal-dual , providing an alternative to the approach for improved numerical stability in certain LP instances. Version 2.2, released on March 15, 2001, introduced branch-and-bound support for mixed (MIP) problems, enabling GLPK to handle integer constraints via a dual simplex-based procedure. These updates marked GLPK's official integration into project, with version 2.0 coinciding with its formal acceptance as GNU software.
VersionRelease DateKey Improvements
4.0May 6, 2003Introduced the GNU MathProg modeling language (a subset of AMPL) and the GLPSOL solver tool; discontinued the older GLPK/L language in favor of MathProg for enhanced model specification and documentation.
4.52July 18, 2013Reimplemented the clique cut generator for better handling of large and dense conflict graphs in MIP; added a rounding to the MIP optimizer and a new GLPSOL option for proximity search; fixed bugs in heuristics and reading.
4.65February 16, 2018Added new routines for /MIP preprocessing (e.g., glp_npp_preprocess1 for problem reduction); improved MIP solver with robust simple cover cuts; enabled long-step by default for faster convergence.
5.0December 16, 2020Transferred copyright to the ; disabled non-core routines (e.g., generators) due to licensing conflicts, replacing them with dummies without impacting main /MIP functionality; fixed minor bugs for stability.
By 2010, GLPK had achieved widespread adoption in major distributions, including (packaged since 2001) and , serving as a standard tool for optimization in open-source ecosystems. As of November 2025, GLPK remains stable at version 5.0, with no major releases since 2020; maintenance occurs through community patches and forks on platforms like , addressing portability and minor enhancements such as Windows compatibility.

Technical Components

Core Library

The GNU Linear Programming Kit (GLPK) core library is implemented as a set of routines written in the programming language, organized into modules that handle problem representation, solution processes, and control mechanisms. This callable library forms the foundational component of GLPK, enabling developers to integrate (LP) and mixed-integer programming (MIP) capabilities directly into C applications without external dependencies beyond a standard C compiler. The modular design separates concerns such as management, operations, and solver invocation, promoting reusability and maintainability. At the heart of the library are key structures for representing optimization problems. The primary is the glp_prob object, which encapsulates an entire or MIP instance, including rows (auxiliary variables for constraints), columns (structural variables), and associated attributes like names, types, bounds, and scale factors. Constraints are formulated in the standard matrix form Ax = b, where A is stored in a sparse format for efficiency, accessible both row-wise and column-wise to support large-scale problems. Variable types include continuous (GLP_CV), (GLP_IV), and (GLP_BV), with bounds that can be , lower-bounded, upper-bounded, double-bounded, or fixed. The objective function is also integrated into the glp_prob , specifying coefficients and direction (minimization or maximization). The provides functions for constructing and manipulating problem objects. Model building routines include glp_add_rows and glp_add_cols to dynamically add and variables, respectively, along with glp_set_row_bnds and glp_set_col_bnds for defining bounds, and glp_set_obj_coef for assigning objective coefficients. The can be populated using glp_load_matrix, which accepts sparse triplet . For invoking solutions, high-level functions such as glp_simplex (for problems) and glp_intopt (for MIP problems) are available, returning information upon completion. Problem instances are created via glp_create_prob and deleted with glp_delete_prob. Memory management is explicitly controlled by the user through library routines like glp_create_prob for allocation and glp_delete_prob for deallocation of glp_prob objects, ensuring deterministic resource usage in or long-running applications. Additional utilities such as glp_malloc, glp_calloc, and glp_free support custom memory handling where needed. Error handling relies on GLP status codes returned by functions, such as GLP_EBADB for invalid bases, GLP_EBOUND for improper bounds, GLP_ESING for singular matrices, and GLP_OPT indicating an optimal solution; a return value of 0 denotes success. These codes facilitate robust integration by allowing immediate detection and response to issues. GLPK's core library emphasizes portability, compiling on systems, Windows, and even resource-constrained embedded environments using any ANSI-compliant compiler, with no mandatory external libraries required for basic functionality. Build options, such as those provided by GNU Libtool, further enhance cross-platform compatibility by supporting static or shared linking.

Solvers and Algorithms

The Linear Programming Kit (GLPK) implements solvers for (LP) and mixed integer programming (MIP) problems, emphasizing exact arithmetic for reliable solutions. For LP problems, GLPK provides the in both and variants, which iteratively pivots to find optimal basic feasible solutions through tableau updates. This , invoked via the glp_simplex routine, uses factorization for basis representation and supports such as steepest edge to select entering variables efficiently. Additionally, an interior-point solver based on the with Mehrotra's predictor-corrector technique addresses large-scale sparse problems in polynomial time, transforming the LP into standard form and employing ordering algorithms like approximate minimum degree for factorization. For MIP problems, GLPK employs a branch-and-bound framework augmented with cutting planes, implemented in the glp_intopt routine, which systematically explores the search tree by branching on variables and bounding subproblems based on relaxation solutions. Cutting planes include Gomory fractional cuts to eliminate fractional solutions and mixed integer rounding (MIR) cuts to strengthen the , with optional cuts for further tightening. A presolver preprocesses the model by tightening variable bounds through probing and eliminating redundant constraints, reducing problem size before optimization. Heuristics such as the Driebeck-Tomlin generate feasible solutions during branching to accelerate . GLPK optimizes linear functions of the form \max or \min \, \mathbf{c}^T \mathbf{x} subject to \mathbf{Ax} \leq \mathbf{b}, \mathbf{x} \geq \mathbf{0}, incorporating support for constraints and general bounds on variables. Problems are typically formulated in standard form as \min \, \mathbf{c} \mathbf{x} \quad \text{subject to} \quad \mathbf{A} \mathbf{x} = \mathbf{b}, \quad \mathbf{l} \leq \mathbf{x} \leq \mathbf{u}, where \mathbf{A} is the , \mathbf{b} the right-hand side, and \mathbf{l}, \mathbf{u} the lower and upper bounds. In the simplex method, tableau updates occur via pivoting: selecting an entering variable based on reduced costs, determining the leaving variable through ratio tests, and updating the basis to maintain feasibility and optimality conditions for basic feasible solutions. Convergence in GLPK solvers relies on configurable tolerance parameters to handle numerical . For the , parameters include tol_bnd (default $10^{-[7](/page/+7)}) for bound feasibility, tol_dj (default $10^{-[7](/page/+7)}) for reduced costs, and tol_piv (default $10^{-9}) for selection, ensuring termination when residuals fall below these thresholds. The uses a similar tolerance like GLP_TM_EPS (around $10^{-9}) to skip small coefficients and verify closure. An exact arithmetic mode, leveraging the GNU Multiple library, further refines solutions by avoiding floating-point errors. GLPK deliberately omits support for quadratic or nonlinear programming, concentrating instead on linear and mixed integer models solved via exact methods rather than approximation heuristics, which limits its applicability but ensures deterministic, verifiable results.

Modeling and Interfaces

GNU MathProg Language

The GNU MathProg language is a high-level, declarative modeling language designed for formulating linear programming (LP) and mixed integer programming (MIP) problems within the GLPK package. It serves as a subset of the AMPL (A Mathematical Programming Language) syntax, drawing from the foundational work in AMPL by Fourer, Gay, and Kernighan, but tailored specifically for GLPK's solver capabilities. Model descriptions in MathProg allow users to define optimization problems in a script-like format that separates the mathematical structure from specific data instances, promoting reusability and clarity. This language enables the specification of sets, parameters, decision variables, objective functions, and constraints in a concise manner, making it accessible for operations research practitioners and software developers. Core elements of MathProg include declarations for sets, , and variables, followed by constraints and an objective function. Sets define index domains, such as set I := 1..5;, while hold numeric or symbolic data, for example, param cost{i in I};. Variables are declared with bounds and types, like var x{i in I} >= 0, [integer](/page/Integer); for non-negative decisions. Constraints use the subject to (or s.t.) keyword within blocks, specifying linear relations, such as:
s.t. supply{i in I}: sum{j in J} x[i,j] <= cost[i];
The objective is defined via minimize or maximize statements, e.g., minimize total: sum{i in I, j in J} c[i,j] * x[i,j];, and the solve; statement invokes the solver. These elements support linear expressions only, ensuring compatibility with GLPK's LP and MIP algorithms. Data input is handled through embedded sections or separate files, with .mod files containing the model structure and .dat files providing instance-specific values. For example, a data section might read:
data;
set I := Plant1 Plant2;
param capacity := Plant1 100 Plant2 150;
end;
The glpsol utility processes these files by translating the MathProg model into GLPK's internal problem format for solving, as in the command glpsol --model model.mod --data data.dat --solve. MathProg includes extensions for parametric studies via POSIX shell integration, allowing loops and conditionals in scripts for sensitivity analysis, such as embedding for loops to vary parameters across runs. However, it lacks support for nonlinear expressions, restricting its use to linear and integer linear models. A classic example is the transportation problem, where sets represent sources (I) and destinations (J), variables x[i,j] denote shipments, supply constraints ensure sum{j in J} x[i,j] <= a[i] for each source i, demand constraints require sum{i in I} x[i,j] >= b[j] for each destination j, and the objective minimizes total shipping cost sum{i in I, j in J} c[i,j] * x[i,j]. This parsed model is then passed to GLPK's core library for optimization.

Bindings and Wrappers

The GNU Linear Programming Kit (GLPK) lacks official built-in language bindings, relying instead on community-developed wrappers to facilitate integration with higher-level programming languages beyond its native C interface. These wrappers generally expose the core GLPK API for defining linear programming (LP) and mixed-integer programming (MIP) models, setting parameters, and retrieving solutions, enabling developers to leverage GLPK's solvers without direct C programming. While comprehensive, these bindings are maintained independently, which can lead to delays in incorporating updates from GLPK's core releases, such as version 5.0. For Python, prominent bindings include PyGLPK, a more idiomatic interface that simplifies model construction and optimization calls compared to raw C API interactions, and SWIG-generated options like swiglpk, which provide direct access to GLPK functions. High-level modeling libraries such as PuLP further extend accessibility by using GLPK as an optional backend solver; PuLP handles abstract model definition in Python syntax and invokes GLPK via file-based interfaces for solving LP and MIP problems. These Python wrappers support full API functionality, including simplex and interior-point methods, and are installed via package managers like pip (e.g., pip install pyglpk or pip install pulp), with compatibility ensured for GLPK 5.0 when the underlying library is present. Java developers utilize , a binding generated via the (JNI) that wraps the GLPK C library for seamless and MIP solving within Java applications. It offers complete exposure of model-building routines and solver controls, installable through dependencies or system packages (e.g., sudo apt-get install libglpk-java on Debian-based systems), and requires GLPK 4.65 or later, including version 5.0. In , the Rglpk package serves as the primary interface, providing high-level functions to formulate and solve and MILP problems directly in R scripts while interfacing with the GLPK library. It supports the full range of GLPK's optimization capabilities and is installed from CRAN (e.g., install.packages("Rglpk")), depending on the system GLPK installation (version 5.0 compatible via libglpk-dev). Julia's GLPK.jl wrapper integrates GLPK with the JuMP modeling ecosystem and MathOptInterface, allowing users to build and solve models using Julia's native syntax while accessing the complete C API, including callbacks for advanced control. Installation occurs via Julia's package manager (using Pkg; Pkg.add("GLPK")), which bundles compatible GLPK binaries (supporting version 5.0). MATLAB users can employ MEX-based wrappers, such as the GLPKMEX generator, which compiles a standalone MEX file to solve LP and MILP problems as alternatives to built-in functions like linprog, without requiring additional toolboxes. This interface exposes GLPK's API through a documented MATLAB wrapper function and is compatible across MATLAB releases, including integration with GLPK 5.0 on Windows, macOS, and Linux. For .NET environments, including C#, the glpk-cli binding uses to create a (CLI) interface, enabling LP and MIP solving with full access via P/Invoke mechanisms. It is compiled from source or integrated into .NET projects, supporting GLPK , though users must manage the underlying GLPK DLL. Overall, these bindings enhance GLPK's portability but receive no official maintenance from the GLPK project, potentially resulting in version mismatches or incomplete feature parity after core updates.

Usage and Applications

Standalone Tools

The GNU Linear Programming Kit (GLPK) provides glpsol as its primary standalone command-line tool, enabling users to solve (LP) and mixed integer programming (MIP) problems directly from the terminal without embedding the library in custom software. This executable reads problem data in supported formats such as GNU MathProg, MPS, or CPLEX LP, applies GLPK's solvers, and outputs results to files or standard output, making it suitable for quick prototyping, , or verification of models on systems where GLPK is installed. Glpsol operates purely in a (CLI) environment, with no (GUI) available, emphasizing simplicity and portability across systems and Windows. To invoke glpsol, users specify the input model and optional data files, along with solver directives. The basic syntax is glpsol [options], where common invocations include reading a model in format, such as glpsol --math model.mod --data data.dat -o solution.sol. Here, --math (or equivalently --mathprog) indicates the use of the modeling language for the model file, --data supplies separate data, and -o directs the solution to a file. Solver selection options allow customization: --simplex employs the (default for LP and MIP), --interior uses the (LP only), and MIP problems are handled automatically if variables are declared, though --nomip relaxes them to continuous for LP treatment. Additional controls include --min or --max for direction, --presol to enable problem presolving for efficiency, and limits like --tmlim nnn for time (in seconds) or --memlim nnn for memory (in ). Output from glpsol includes the problem status (e.g., optimal, infeasible, or unbounded), objective value, and / variable values, with verbosity controlled via --log file for detailed solver logs. Results can be formatted as printable text (-o file for a human-readable summary) or (--write file for structured data suitable for parsing), and for simplex solutions, --ranges file generates reports on shadow prices and reduced costs. Glpsol also supports without solving via --check, which inspects model integrity, and format conversions (e.g., --wlp file to export as CPLEX ). A typical workflow involves preparing a model file (e.g., model.mod defining variables, constraints, and objective in MathProg syntax), an optional (data.dat for parameters), executing glpsol --math model.mod --data data.dat --simplex -o solution.sol, and then reviewing the .sol file for variable assignments and status. For instance, solving a sample LP might yield output indicating an optimal objective of 3.0 with variable values x1=2.0 and x2=1.0, confirming feasibility. This CLI approach facilitates standalone usage in scripts or pipelines, such as generating reports from batch solves, while relying on underlying solvers like for core computations.

Integration in Software

The GNU Linear Programming Kit (GLPK) is widely employed in applications, particularly for tasks involving scheduling and , where its open-source nature facilitates integration into custom workflows without licensing costs. For instance, it supports optimization in and , enabling efficient allocation of limited resources across competing demands. GLPK is integrated into established tools such as GAMS through the GAMSlinks interface, which allows seamless use of GLPK as a solver within GAMS models. Similarly, it is bundled in for mathematical computing and in for , providing direct access to LP and MIP solvers in these environments. Practical integrations often leverage language-specific bindings to embed GLPK in scripting workflows. In , libraries like interface with GLPK to model and solve mixed-integer programs, such as the 0-1 , where binary variables represent item selection to maximize value under a weight constraint; a typical script defines the objective, adds constraints, and invokes GLPK to compute the optimal subset. For users, the Rglpk package enables optimization in statistical contexts, such as portfolio allocation or experimental design, by formulating linear models directly in R code and solving them via GLPK's or interior-point methods. In , the GLPK.jl package, part of the ecosystem, enables similar optimization tasks, such as models, by interfacing with GLPK's solvers. These examples highlight GLPK's role in embedding optimization into data analysis pipelines. Regarding performance, GLPK scales effectively to large-scale problems on modern hardware, handling instances with over one million constraints and variables in tasks through its revised and interior-point solvers. However, for very large mixed-integer programs, it is generally slower than commercial alternatives like Gurobi. In benchmarks on metabolic models, GLPK performs comparably to other open-source solvers like SCIP. To optimize GLPK's performance in integrated applications, practitioners recommend enabling the built-in presolver, which eliminates redundant variables and constraints to reduce problem size before solving, often cutting computation time by 20-50% on structured models. Additionally, tuning MIP-specific parameters, such as selecting the most appropriate branching strategy (e.g., pseudocost or most fractional), can improve solution quality and speed for integer-heavy problems, with empirical testing advised for instance-specific gains. These practices, detailed in GLPK's , ensure efficient embedding without extensive reconfiguration.

References

  1. [1]
    GLPK - GNU Project - Free Software Foundation (FSF)
    GLPK (GNU Linear Programming Kit) is for solving large-scale linear programming (LP), mixed integer programming (MIP), and related problems.Introduction · Downloading · Mailing Lists/Newsgroups
  2. [2]
    GNU Linear Programming Kit - Summary [Savannah]
    May 10, 2001 · GLPK is a callable library in ANSI C intended for solving large scale linear programming (LP), mixed integer programming (MIP), and other ...
  3. [3]
    [PDF] The GNU Linear Programming Kit, Part 1 - OSeMOSYS
    Aug 8, 2006 · The GNU Linear Programming Kit (GLPK) is a library of routines that use well-known operations research algorithms to solve linear problems.
  4. [4]
    Index of /gnu/glpk
    - **Latest Version**: GLPK 5.0
  5. [5]
    ILOG CPLEX Optimization Studio - Pricing - IBM
    IBM® ILOG® CPLEX® Optimization Studio is decision optimization software for building and solving complex optimization models.Missing: GLPK | Show results with:GLPK
  6. [6]
    Analysis of commercial and free and open source solvers for linear ...
    ... GLPK was developed as a cost-free alternative to commercial ... Linear Programming Kit (GLPK). Jan 2000. Andrew Makhorin. Andrew Makhorin. The ...
  7. [7]
    [PDF] Noncommercial Software for Mixed-Integer Linear Programming
    GLPK also comes equipped with GNU MathProg (GMPL), an algebraic modeling language similar to AMPL. GLPK was developed by Andrew Makhorin and is distributed as ...Missing: background | Show results with:background
  8. [8]
    [PDF] GNU Linear Programming Kit
    The GLPK package is part of the GNU Project, and it handles LP and MIP problems.
  9. [9]
    GLPK/Print version - Wikibooks, open books for an open world
    ... GLPK. The first public release was October 2000. Parallel initiatives. The GLPK project has spawned a number of parallel initiatives, some of which may ...
  10. [10]
    glpk 1.1.1 release information - GNU mailing lists - GNU.org
    GLPK 1.1.1 -- Release information ================================= Release date: Dec 14, 2000 GLPK (GNU Linear Programming Kit) is a library of ANSI C ...
  11. [11]
    GLPK 2.0 Release Information - GNU mailing lists
    GLPK 2.0 -- Release information =============================== Release date: Jan 25, 2001 GLPK (GNU Linear Programming Kit) is a library of ANSI C routines ...
  12. [12]
    GLPK 2.2 Release Information - GNU mailing lists
    GLPK 2.2 -- Release information ******************************* Release date: Mar 15, 2001 GLPK (GNU Linear Programming Kit) is a library of ...
  13. [13]
    GLPK 4.0 release information - GNU mailing lists
    May 9, 2003 · GLPK 4.0 -- Release Information =============================== Release date: May 06, 2003 GLPK (GNU Linear Programming Kit) is intended for ...
  14. [14]
    glpk 4.52 release information - GNU mailing lists
    See GLPK web page at <http://www.gnu.org/software/glpk/glpk.html>. GLPK distribution can be ftp'ed from <ftp://ftp.gnu.org/gnu/glpk/> or ...
  15. [15]
    glpk 4.65 release information - GNU mailing lists
    Mar 3, 2018 · glpk 4.65 release information. From: Andrew Makhorin. Subject: glpk 4.65 release information. Date: Fri, 16 Feb 2018 12:57:31 +0300. -----BEGIN PGP SIGNED ...Re: [Help-glpk] glpk 4.65 release information[Help-glpk] Compiling and linking problemsMore results from mail.gnu.org
  16. [16]
    glpk 5.0 release information - GNU mailing lists
    Dec 16, 2020 · GLPK (GNU Linear Programming Kit) is intended for solving large-scale linear programming (LP), mixed integer linear programming (MIP), and other related ...
  17. [17]
  18. [18]
    firedrakeproject/glpk: GNU Linear Programming Kit - GitHub
    This package is intended for solving large-scale linear programming (LP), mixed integer linear programming (MIP), and other related problems.
  19. [19]
    mingodad/GLPK: Mirror of GLPK versions and changes made by me ...
    This is a personal repository made with the tarbals available at: https://ftp.gnu.org/gnu/glpk/ Here is a brief of changes made to GLPK 4.65 distribution on ...
  20. [20]
    [PDF] GNU Linear Programming Kit - NIH HPC
    The GLPK package is part of the GNU Project, and this is a reference manual for GLPK Version 4.64.
  21. [21]
    [PDF] Modeling Language GNU MathProg - GUSEK
    1The GNU MathProg language is a subset of the AMPL language. Its GLPK implementation is mainly based on the paper: Robert Fourer, David M. Gay, and Brian W ...
  22. [22]
    jump-dev/GLPK.jl: A Julia interface to the GNU Linear Programming Kit
    GLPK.jl is a wrapper for the GNU Linear Programming Kit library. The wrapper has two components: a thin wrapper around the complete C API; an interface to ...
  23. [23]
    [PDF] pyglpk Documentation - Read the Docs
    Oct 10, 2024 · PyGLPK is a Python module which encapsulates the functionality of the GNU Linear Programming Kit (GLPK). The. GLPK allows one to specify ...
  24. [24]
    PuLP · PyPI
    PuLP is an LP modeler written in python. PuLP can generate MPS or LP files and call GLPK, COIN CLP/CBC, CPLEX, and GUROBI to solve linear problems.Missing: backend | Show results with:backend
  25. [25]
    opencobra/swiglpk: Simple swig bindings for the GNU ... - GitHub
    It just provides plain vanilla swig bindings to the underlying C library. In constrast to other GLPK wrappers for python (e.g. PyGLPK, Python-GLPK, ctypes-glpk, ...
  26. [26]
    GLPK for Java – About
    Feb 16, 2018 · The GNU Linear Programming Kit (GLPK) package supplies a solver for large scale linear programming (LP) and mixed integer programming (MIP).
  27. [27]
    Rglpk: R/GNU Linear Programming Kit Interface
    - **Description**: Rglpk is an R interface to the GNU Linear Programming Kit (GLPK), an open-source tool for solving large-scale linear programming (LP), mixed integer linear programming (MILP), and related problems.
  28. [28]
    GNU Linear Programming Kit (GLPK) MEX Generator - File Exchange
    This MATLAB package generates a stand alone MEX file for the GNU Linear Programming Kit (GLPK). The MEX can solve Linear Programming (LP) pg
  29. [29]
    GLPK for C# and the Common Language Infrastructure (CLI) - GitHub
    GLPK for C#/CLI provides a common language interface binding for the GLPK linear programming library. It allows you to use the Gnu Linear Programming Kit ...
  30. [30]
    GLPK Scheduling
    This page contains notes on the use of Integer Linear Programming (ILP) to obtain a solution for a classic sequential job scheduling problem.
  31. [31]
    [PDF] Interfacing COIN-OR solvers by GAMS
    GLPK: access to interior-point solver. • CLP: support quadratic objective function. • GAMS Branch-and-Cut-and-Heuristic Facility for CBC and Bonmin. • Bonmin: ...
  32. [32]
    glpk: GNU Linear Programming Kit - Packages and Features
    The GLPK (GNU Linear Programming Kit) package is intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related ...
  33. [33]
    Linear Programming (GNU Octave (version 10.3.0))
    Octave can solve Linear Programming problems using the glpk function. That is, Octave can solve min C'*x subject to the linear constraints A*x = b where x ≥ 0.
  34. [34]
    Solving 0-1 Knapsack Problems - Lei Mao's Log Book
    Feb 13, 2023 · Install Dependencies. We will install and use pulp and glpk linear programming solvers to solve knapsack problems.
  35. [35]
    Solving linear programming with GLPK in R - Jose M Sallan blog
    Dec 12, 2021 · In this post, I will show how to solve linear programming models in R using the Rglpk package. This is a R API for GLPK, the GNU Linear Programming Kit.Missing: bindings | Show results with:bindings
  36. [36]
    [PDF] Comparison of Open-Source Linear Programming Solvers
    The major drawback with GLPK was the solution time compared to. CPLEX and CLP. The geometric mean for GLPK was 9.4 and 5.7 times greater than CPLEX and. CLP ...
  37. [37]
    What's the fastest software(open source) to solve mixed integer ...
    Nov 1, 2013 · Gurobi and CPLEX will be considerably faster, and as of the 2011 or 2012 INFORMS meeting, Gurobi was faster than CPLEX.Missing: cost | Show results with:cost
  38. [38]
    A benchmark of optimization solvers for genome-scale metabolic ...
    Jan 22, 2024 · This work compares the performance of several commercial and open-source solvers to solve some of the most complex problems in the field.
  39. [39]
    GLPK for MPL - Maximal Software
    GLPK is a linear and mixed integer programming optimizer and is currently developed and maintained by Andrew Makhorin, of the Moscow Aviation Institute.Missing: commercial | Show results with:commercial