2. Features¶
2.1. Problems¶
This package supports two types of optimization problems:
Linear problems
\[\begin{split}\text{Maximize}~& c' x \\ \text{Subject to} & \\ A x &= b \\ x_l \leq x & \leq x_u\end{split}\]Quadratic problems
\[\begin{split}\text{Maximize}~& x' Q x + c' x \\ \text{Subject to} & \\ A x & = b \\ x_l \leq x & \leq x_u\end{split}\]
2.3. Variable types¶
This package supports five types of variables:
- binary
- integer
- continuous
- semi-integer
- semi-continuous
- partially-integer
2.5. Solvers¶
This package supports several solvers:
Open-source
Non-commercial with free academic licenses
- MINOS via solveME
- SoPlex via soplex_cython
Commercial with free academic licenses
However, as described below, some of the solvers only support some of these features.
2.5.1. Objective types¶
- Cbc: only supports linear objectives
- GLPK: only supports linear objectives
- quadprog: only supports quadratic objectives
2.5.2. Variable types¶
- Cbc: only supports binary, integer, and continuous variables
- CVXOPT: only supports continuous variables
- FICO XPRESS: supports all variable types
- GLPK: only supports binary, integer, and continuous variables
- Gurobi: doesn’t support partially integer variables
- IBM CPLEX: doesn’t support partially integer variables
- MINOS: only supports continuous variables
- MOSEK Optimizer: only supports binary, integer, and continuous variables
- quadprog: only supports continuous variables
- Scipy: only supports continuous variables
2.5.3. Constraint types¶
Cbc, GLPK, and quadprog only support linear constraints. Only SciPy’s COBLYA and SLSQP method support contraints.
2.5.4. Python versions¶
- CPLEX supports Python 2.7, 3.5, and 3.6
2.5.5. Licensing¶
- FICO XPRESS: licenses are tied to machines, or a license server must be used
- Gurobi: licenses are tied to machines, or a license server must be used
- IBM CPLEX: No license file or activation is needed
- MINOS: free academic licenses can be obtained from Michael Saunders at Stanford
- MOSEL Optimizer: license files can be used on multiple machines
- SoPlex: free academic licenses can be automatically obtained from the SoPlex website