MIP kappa computation

Sets the strategy for computing statistics about MIP kappa

Purpose

MIP kappa computation

API Parameter Name Name prior to V12.6.0
C CPXPARAM_MIP_Strategy_KappaStats CPX_PARAM_MIPKAPPASTATS
C++ IloCplex::Param::MIP::Strategy::KappaStats MIPKappaStats (int)
OPL mipkappastats
Interactive mip strategy kappastats mip strategy kappastats
Identifier 2137 2137

Description

Sets the strategy for CPLEX to gather statistics about the MIP kappa of subproblems of a MIP.

What is MIP kappa?

MIP kappa summarizes the distribution of the condition number of the optimal bases CPLEX encountered during the solution of a MIP model. That summary may let you know more about the numerical difficulties of your MIP model.

When can you compute MIP kappa?

Because MIP kappa (as a statistical distribution) requires CPLEX to compute the condition number of the optimal bases of the subproblems during branch-and-cut search, you can compute the MIP kappa only when CPLEX solves the subproblem with its simplex optimizer. In other words, in order to obtain results with this parameter, you can not use the sifting optimizer nor the barrier without crossover to solve the subproblems. See the parameters MIP subproblem algorithm (CPX_PARAM_SUBALG, NodeAlg) and algorithm for initial MIP relaxation (CPX_PARAM_STARTALG, RootAlg) for more details about those choices.

What are the performance trade-offs for computing MIP kappa?

Computing the kappa of a subproblem has a cost. In fact, computing MIP kappa for the basis matrices can be computationally expensive and thus generally slows down the solution of a problem. Therefore, the automatic setting CPX_MIPKAPPA_AUTO tells CPLEX generally not to compute MIP kappa, but in cases where the parameter numerical precision emphasis (CPX_PARAM_NUMERICALEMPHASIS, NumericalEmphasis) is turned on, that is, set to 1 (one), CPLEX computes MIP kappa for a sample of subproblems.

The value CPX_MIPKAPPA_SAMPLE leads to a negligible performance degradation on average, but can slow down the branch-and-cut exploration by as much as 10% on certain models.

The value CPX_MIPKAPPA_FULL leads to a 2% performance degradation on average, but can significantly slow the branch-and-cut exploration on certain models.

In practice, the value CPX_MIPKAPPA_SAMPLE is a good trade-off between performance and accuracy of statistics.

If you need very accurate statistics, then use value CPX_MIPKAPPA_FULL.

Table 1. Values
Value Symbol Meaning
–1 CPX_MIPKAPPA_OFF No MIP kappa statistics
0 CPX_MIPKAPPA_AUTO Automatic: let CPLEX decide; default
1 CPX_MIPKAPPA_SAMPLE Compute MIP kappa for a sample of subproblems
2 CPX_MIPKAPPA_FULL Compute MIP kappa for all subproblems