12.07.2015 Views

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's Manual

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

When you set a MIP cutoff value, <strong>ILOG</strong> <strong>CPLEX</strong> searches with the same solution strategy asthough it had already found an integer solution, using a node selection strategy that differsfrom the one it uses before a first solution has been found.Slightly Infeasible Integer VariablesOn some models, the integer solution returned by <strong>ILOG</strong> <strong>CPLEX</strong> at default settings maycontain solution values for the discrete variables that violate integrality by a small amount.The integrality tolerance parameter (EpInt, CPX_PARAM_EPINT) has a default value of1e-5, which means that any discrete variable that violates integrality by no more than thisamount will not be branched upon for resolution. For most model formulations, this situationis satisfactory and avoids branching that may be essentially meaningless, only consumingadditional computing time.However, some formulations combine discrete and continuous variables, for example,involving constraint coefficients over a million in magnitude, where even a small integralityviolation can be magnified elsewhere in the model. In such situations, you may attempt toaddress this variation by tightening the simplex feasibility tolerance (EpRHS,CPX_PARAM_EPRHS) from its default value to its minimum; also tighten EpInt to a similarvalue, and re-run the MIP optimization from the beginning.If this adjustment is insufficient to give satisfactory results, you can also try setting EpIntall the way to zero, preferably in conjunction with a tightened EpRHS setting. This very tightintegrality tolerance directs <strong>ILOG</strong> <strong>CPLEX</strong> to attempt to branch on any integer infeasibility,no matter how small. Numeric roundoff due to floating-point arithmetic on any computermay make it impossible to achieve this tolerance, but in practice, the setting achieves its aimin many models and reduces the integrality violations in many others. In cases where theintegrality violation even after branching remains above EpInt or is above 1e-10 whenEpInt has been set to a value smaller than that, a solution status returned will beCPX_STAT_OPTIMAL_INFEAS instead of the usual CPX_STAT_OPTIMAL. In most cases asolution with status CPX_STAT_OPTIMAL_INFEAS will be satisfactory, and reflects onlyroundoff error after presolve uncrush, but extra care in using the solution may be advisablein numerically sensitive formulations.If these suggestions are not appropriate for your problem, another alternative to consider isreformulation of your model with indicator constraints. Using Indicator Constraints onpage 355 offers more information about that alternative.Running out of MemoryA very common difficulty with MIPs is running out of memory. This problem almost alwaysoccurs when the branch & cut tree becomes so large that insufficient memory remains tosolve a continuous LP, QP, or QCP subproblem. (In the rare case that the dimensions of avery large model are themselves the main contributor to memory consumption, you can tryadjusting the memory emphasis parameter, as described in Lack of Memory on page 183.)292 <strong>ILOG</strong> <strong>CPLEX</strong> <strong>11.0</strong> — USER’ S MANUAL

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!