Analyzing Solutions

Solution analysis methods and routines give further information about a solution. As the solutions are computed with finite-precision arithmetic, there may be some numeric residuals; the quality routines give information about what these numeric residuals are. The sensitivity analysis routines give information about how the solution would change if some aspect of the problem is changed; these routines require a simplex basis, so they may be used only after a simplex optimization of an LP.

Note: Names of classes, methods, and symbolic constants in the .NET API correspond very closely to those in the Java API with these systematic exceptions:

Purpose

Java API

C++ API

C API

Accesses double-valued information about quality of solution

IloCplex.getQuality

IloCplex::getQuality

CPXgetdblquality

Accesses integer-valued information about quality of solution

IloCplex.getQuality

IloCplex::getQuality

CPXgetintquality

Accesses objective coefficient sensitivity ranges

IloCplex.getObjSA

IloCplex::getObjSA

CPXobjsa

Accesses RHS sensitivity ranges

IloCplex.getRHSSA

IloCplex::getRHSSA

CPXrhssa

Accesses ranged row sensitivity ranges

IloCplex.getRangeSA

IloCplex::getRangeSA

----

Accesses bound sensitivity ranges

IloCplex.getBoundSA

IloCplex::getBoundSA

CPXboundsa

Accesses coefficient change sensitivity data

----

----

CPXgetgrad

Invokes FeasOpt, which accepts weighted sum of preferences; then suggests modifications of bounds of variables or ranges of constraints to achieve feasibility

IloCplex.feasOpt

IloCplex::feasOpt

CPXfeasopt

Invokes the conflict refiner, which accepts an infeasible problem then suggests minimal set of conflicting bounds and constraints to relax to make the infeasible problem feasible.

IloCplex.refineConflict

IloCplex::refineConflict

CPXrefineconflict

Accesses results from the conflict refiner.

IloCplex.getConflict

IloCplex::getConflict

CPXgetconflict