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.2. Objectives

This package supports two types of objectives:

  • linear

  • quadratic

2.3. Variable types

This package supports five types of variables:

  • binary

  • integer

  • continuous

  • semi-integer

  • semi-continuous

  • partially-integer

2.4. Constraints

This package supports one type of constraint:

  • linear

2.5. Solvers

This package supports several solvers:

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