LpX
LpX is an open-source domain-specific language and runtime designed for modeling and solving linear programming problems. It provides a high-level syntax that mirrors mathematical notation and a flexible back end that translates models into formats suitable for established solvers. LpX can connect to a range of back-end engines, including GLPK, CBC, CPLEX, and Gurobi, enabling users to choose a solver based on licensing, performance, or problem size. It supports continuous variables, linear constraints, and objective functions, and can handle parameterized models for scenario analysis.
Key features include declarative model syntax, automatic variable typing, bounds, and linear constraints, and an objective
Implementation and architecture: The compiler front end parses the LpX language into an intermediate representation, which
Usage and reception: LpX has been adopted in academic teaching, operations research practice, and small to mid-sized
History: The project began in the late 2010s as an education-focused modeling tool and evolved into a