NO FRAMES

Group optim.cplex.cpp

The API of ILOG CPLEX for users of C++.
Class Summary
IloCplex
IloCplex::BarrierCallbackI
IloCplex::BranchCallbackI
IloCplex::Callback
IloCplex::CallbackI
IloCplex::ContinuousCallbackI
IloCplex::ControlCallbackI
IloCplex::CrossoverCallbackI
IloCplex::CutCallbackI
IloCplex::DisjunctiveCutCallbackI
IloCplex::Exception
IloCplex::FlowMIRCutCallbackI
IloCplex::FractionalCutCallbackI
IloCplex::Goal
IloCplex::GoalI
IloCplex::HeuristicCallbackI
IloCplex::IncumbentCallbackI
IloCplex::InvalidCutException
IloCplex::LazyConstraintCallbackI
IloCplex::MIPCallbackI
IloCplex::MultipleConversionException
IloCplex::MultipleObjException
IloCplex::NetworkCallbackI
IloCplex::NodeCallbackI
IloCplex::NodeEvaluator
IloCplex::NodeEvaluatorI
IloCplex::PresolveCallbackI
IloCplex::ProbingCallbackI
IloCplex::SearchLimit
IloCplex::SearchLimitI
IloCplex::SimplexCallbackI
IloCplex::SolveCallbackI
IloCplex::UnknownExtractableException
IloCplex::UserCutCallbackI
MIPCallbackI::NodeData
Typedef Summary
GoalI::IntegerFeasibilityArray
IloCplex::BasisStatusArray
IloCplex::BranchDirectionArray
IloCplex::IISStatusArray
Macro Summary
ILOBARRIERCALLBACK0
ILOBRANCHCALLBACK0
ILOCONTINUOUSCALLBACK0
ILOCPLEXGOAL0
ILOCROSSOVERCALLBACK0
ILOCUTCALLBACK0
ILODISJUNCTIVECUTCALLBACK0
ILOFRACTIONALCUTCALLBACK0
ILOHEURISTICCALLBACK0
ILOINCUMBENTCALLBACK0
ILOLAZYCONSTRAINTCALLBACK0
ILOMIPCALLBACK0
ILONETWORKCALLBACK0
ILONODECALLBACK0
ILOPRESOLVECALLBACK0
ILOPROBINGCALLBACK0
ILOSIMPLEXCALLBACK0
ILOSOLVECALLBACK0
ILOUSERCUTCALLBACK0
Enumeration Summary
BranchCallbackI::BranchType
Callback::Type
ControlCallbackI::IntegerFeasibility
GoalI::BranchType
GoalI::IntegerFeasibility
IloCplex::Algorithm
IloCplex::BasisStatus
IloCplex::BoolParam
IloCplex::BranchDirection
IloCplex::CplexStatus
IloCplex::DeleteMode
IloCplex::DualPricing
IloCplex::IISStatus
IloCplex::IntParam
IloCplex::MIPEmphasisType
IloCplex::NodeSelect
IloCplex::NumParam
IloCplex::PWLFormulation
IloCplex::PrimalPricing
IloCplex::Quality
IloCplex::StringParam
IloCplex::VariableSelect

What is IloCplex?

IloCplex is a Concert Technology class derived from IloAlgorithm. Instances of this class are capable of solving optimization problems of the following types:

An instance of IloCplex can extract and solve models consisting of the following Concert Technology extractables:

Extractable Class Used to Model
IloNumVar numeric variables
IloSemiContVar semi-continuous or semi-integer variables
IloObjective at most one objective function with linear, piecewise linear, or quadratic expressions
IloRange range constraints with linear or piecewise linear expressions
IloConstraint ranged constraints of the form expr1relationexpr, where expr1 indicates a linear, logical, or quadratic expression and the relation less than or equal to or the relation greater than or equal to; constraints can be combined by logical operators
IloConversion variable type conversions
IloModel submodels
IloSOS1 special ordered sets of type 1
IloSOS2 special ordered sets of type 2
IloAnd constraint clauses

What is special about this set of extractable classes recognized by IloCplex is that models consisting of these objects can be transformed into mathematical programming problems of the form:

When all variables are continuous and Q is zero, problems of this form are known as Linear Programs (LPs). If Q is not zero, such problems are known as Quadratic Programs (QPs). If any variables are integer, semi-continuous, or Boolean, such problems are called Mixed Integer Programs (MIPs). A MIP with a zero Q matrix is called a Mixed Integer Linear Program (MILP), and a MIP with a non-zero Q is called a Mixed Integer Quadratic Program (MIQP). If there are quadratic constraints in the problem, and its variables are continuous, it is known as a Quadratically Constrained Program (QCP). If in addition to the quadratic constraints, there are discrete variables in the problem (such as integer, Boolean, or semi-continuous variables), then it is known as MIQCP.

Refer to the ILOG Concert Technology Reference Manual for more information about these classes.

IloCplex Optimizer Options

An instance of the class IloCplex is not really only one algorithm, but, in fact, consists of a set of highly configurable algorithms, also known as optimizer options. They include primal and dual simplex algorithms, barrier algorithm, a sifting algorithm, a network simplex algorithm, and a branch & cut algorithm for MIPs. Though in most cases IloCplex can be used like a black box, the optimizer options can be selected individually to provide a wealth of parameters that allow you to fine tune the algorithm to your particular model. In the case of the mixed integer optimizer, you can use your own goals or callbacks and directly control the branch & cut search carried out by IloCplex.

The most general kind of problem is a MIP. You might think of the LPs as a subset of MIPs: an LP is a problem in which the model is:

For linear programming problems (LPs), a variety of additional solution information can be queried. These queries include dual information or, with the appropriate optimizer option, basis information. Sensitivity analysis allows you to analyze how you can modify your model while preserving the same solution. Or, if your model is infeasible, the infeasibility finder enables you to analyze the source of the infeasibility.