# 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