ILOG CPLEX C++ API 9.0 Reference Manual
ILOG CPLEX C++ API 9.0 Reference Manual
ILOG CPLEX C++ API 9.0 Reference Manual
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
IloCplex<br />
IloCplex effectively treats all models as MIQCP models. That is, it allows the most<br />
general case, although the solution algorithms make efficient use of special cases, such<br />
as taking advantage of the absence of quadratic terms in the formulation. The method<br />
solve begins by solving the root relaxation of the MIQCP model, where all<br />
integrality constraints and SOSs are ignored. If the model has no integrality constraints<br />
or SOSs, then the optimization is complete once the root relaxation is solved. Otherwise,<br />
IloCplex uses a branch and cut procedure to reintroduce the integrality constraints or<br />
SOSs. See the <strong>ILOG</strong> <strong>CPLEX</strong> User's <strong>Manual</strong> for more information about branch & cut.<br />
Most users can simply call solve to solve their models. However, several parameters<br />
are available for users who require more control. Perhaps the most important one is<br />
IloCplex::RootAlg, which determines the algorithm used to solve the root<br />
relaxation. Possible settings, as defined in IloCplex::Algorithm, are:<br />
◆<br />
◆<br />
◆<br />
◆<br />
◆<br />
◆<br />
IloCplex::Auto IloCplex automatically selects an algorithm. This is the default<br />
setting.<br />
IloCplex::Primal Use the primal simplex algorithm. This option is not available for<br />
quadratically constrained problems (QCPs).<br />
IloCplex::Dual Use the dual simplex algorithm. This option is not available for<br />
quadratically constrained problems (QCPs).<br />
IloCplex::Network Use network simplex on the embedded network part of the<br />
model, followed by dual simplex on the entire model. This option is not available<br />
for quadratically constrained problems.<br />
IloCplex::Barrier Use the barrier algorithm.<br />
IloCplex::Sifting Use the sifting algorithm. This option is not available for<br />
quadratic problems. If selected nonetheless, IloCplex defaults to the<br />
IloCplex::Auto setting.<br />
◆ IloCplex::Concurrent Use the several algorithms concurrently. This option is not<br />
available for quadratic problems. If selected nonetheless, IloCplex defaults to the<br />
IloCplex::Auto setting.<br />
Numerous other parameters allow you to control algorithmic aspects of the optimizer.<br />
See the nested enumerations IloCplex::IntParam,<br />
IloCplex::DoubleParam, and IloCplex#StringParam for further<br />
information. Parameters are set with the method setParam.<br />
Even higher levels of control can be achieved through goals (see IloCplex::Goal)<br />
or through callbacks (see IloCplex::Callback and its extensions).<br />
Information about a Solution<br />
The solve method returns an IloBool value indicating whether (IloTrue) or not<br />
(IloFalse) a solution (not necessarily the optimal one) has been found. Further<br />
information about the solution can be queried with the method getStatus. The return<br />
<strong>ILOG</strong> <strong>CPLEX</strong> <strong>C++</strong> <strong>API</strong> <strong>9.0</strong> REFERENCE M ANUAL 48