CPLEX

Description

CPLEX is a tool for solving, first of all, linear optimization problems. Such problems are conventionally written like this:

Minimize (or Maximize) c1x1 + c2x2 + … + cnxn

Subject to:

a11x1 + a12x2 + … + a1nxn ~ b1

a21x1 + a22x2 + … + a2nxn ~ b2

am1x1 + am2x2 + … + amnxn ~ bm

l1 <= x1 <= u1, …, ln <= xn <= un

where,

x is the vector of variables,

a, b, and c are real numbers,

l and u are vectors of lower and upper bounds, and

~ can be either <=, >=, or =.

Some of the lower bounds may be –inf and some of the upper bounds may be inf. The scalar value n will denote the number of variables and m the number of equations.

In the most basic linear optimization problem, the variables of the objective function are continuous in the mathematical sense, with no gaps between real values. CPLEX can also be used for solving linear programming problems in which some or all of the variables must assume integer values in the solution. Such problems are known as mixed integer programs or MIPs.

CPLEX can handle problems with multiple objectives; see the section Multi-Objective Optimization .

CPLEX can also handle certain problems in which the objective function is not linear but quadratic. Such a problem is known as quadratic program or QP if the constraints are linear, and it is known as quadratically constrained program or QCP if some of the constraints are quadratic. (No other type of constraints is allowed.) CPLEX can also handle QP and QCP problems in which some or all variables must be integer. Such problems are called mixed integer quadratic programs (MIQP) and mixed integer quadratically constrained programs (MIQCP) respectively. CPLEX can also be used for some types of second-order cone constraints; see the section about SOCP .

CPLEX also offers a network optimizer aimed at a special class of linear problems with network structure. CPLEX can optimize such problems as ordinary linear programs, but if CPLEX can extract all or part of the problem as a network, then CPLEX will apply a more efficient network optimizer to that part of your problem and use the partial solution it finds there to construct an advanced starting point to optimize the rest of the problem.

CPLEX is equipped with parameters that influence the performance of CPLEX. AIMMS is equipped with options that set the parameters in CPLEX. Options in AIMMS can be set in the options dialog box.

CPLEX can perform a minimum-cost relaxation in order to make an infeasible model feasible. More information about relaxing infeasible models can be found in the section Feasopt (Feasibility Relaxation) .

In CPLEX it is possible to use a partial solution as a MIP start by setting the option Advanced Start . CPLEX also supports Multiple MIP Starts .

CPLEX supports several types of callback procedures which allow you to monitor closely and to guide the behavior of the CPLEX optimizers. In particular, callbacks allow user code to be executed regularly during an optimization run. See the section Callback Procedures and the option Use Generic Callbacks .

CPLEX can generate multiple solutions to a MIP problem. This is described in the section Solution Pool .

CPLEX supports the Tuning Tool , a utility to aid you in improving the performance of your optimization applications, analyzes a model or a group of models and suggests a suite of option settings for you to use that provide better performance than the default option settings for your model or group of models.

CPLEX can use a Benders decomposition algorithm to solve linear problems; this is described in the section Benders Decomposition .

CPLEX can provide information about the quality of a solution that it found by solving a problem; this is controlled by the option Display Solution Statistics .

Parallel CPLEX

CPLEX supports several parallel optimizers: Parallel Barrier, Parallel MIP and the Concurrent Optimizer. They are implemented to run on hardware platforms with parallel processors. The easiest way to let the CPLEX optimizers invoke parallel threads is to set the option Global Thread Limit . CPLEX can use parallel threads for solving MIP models and, if the barrier algorithm is used, for solving LP, QP and QCP models. The Concurrent Optimizer is described in the section Parallel Concurrent Optimizer .

Deprecated postsolve options

The postsolve step for linear models has been moved from the solver interface of CPLEX to AIMMS. The postsolve options of CPLEX have been replaced by general solvers options with similar names. See the new general solvers option Postsolve for more information.

Supported computers

CPLEX requires that your computer’s CPU supports SSE2. SSE2 was first introduced by Intel in 2001, and AMD added support for SSE2 in 2003.

Learn more about