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
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