Unified python wrappers for popular ILP solvers
ilpy is a Python library that provides unified wrappers for popular Integer Linear Programming (ILP) solvers such as Gurobi and SCIP. It offers a consistent API that abstracts away the differences between solver implementations.
With ilpy, you can:
- Define linear and quadratic optimization problems using a simple, intuitive syntax
- Express constraints using natural Python expressions
- Switch between different solver backends (currently Gurobi and SCIP)
- Monitor solver progress through callback events
- Support for continuous, binary, and integer variables
Install from pip with:
pip install ilpy
Note that ilpy
requires a solver backend: either pyscipopt
(for SCIP) or gurobipy
(for Gurobi).
Currently, ilpy ships by default with support for the SCIP optimization suite, via pyscipopt, but you may also declare it explicitly:
pip install ilpy[scip]
If you want to use Gurobi (which requires a license), you can bring
in the gurobipy
dependency with:
pip install ilpy[gurobi]
If you prefer to use conda:
conda install -c conda-forge ilpy pyscipopt
conda install -c conda-forge -c gurobi ilpy gurobi
pip install -e .[dev]
pytest