Preprocessing: presolver and aggregator
Describes preprocessing in the MIP optimizer.
mipopt, through a call to the Concert
Technology IloCplex method solve ,
or through the Callable Library routine CPXmipopt ,
CPLEX by default automatically preprocesses your problem. Table 1 summarizes
the preprocessing parameters. In preprocessing, CPLEX applies its
presolver and aggregator one or more times to reduce the size of the
integer program in order to strengthen the initial linear relaxation
and to decrease the overall size of the mixed integer program.| Interactive Command | Concert Technology Parameter | Callable Library Parameter | Comment | Parameter Reference |
|---|---|---|---|---|
| set preprocessing aggregator | AggInd |
CPX_PARAM_AGGIND |
on by default | preprocessing aggregator application limit |
| set preprocessing presolve | PreInd |
CPX_PARAM_PREIND |
on by default | presolve switch |
| set preprocessing boundstrength | BndStrenInd |
CPX_PARAM_BNDSTRENIND |
presolve must be on | bound strengthening switch |
| set preprocessing coeffreduce | CoeRedInd |
CPX_PARAM_COEREDIND |
presolve must be on | coefficient reduction setting |
| set preprocessing relax | RelaxPreInd |
CPX_PARAM_RELAXPREIND |
applies to relaxation | relaxed LP presolve switch |
| set preprocessing reduce | Reduce |
CPX_PARAM_REDUCE |
all on by default | primal and dual reduction type |
| set preprocessing numpass | PrePass |
CPX_PARAM_PREPASS |
automatic by default | limit on the number of presolve passes made |
| set preprocessing repeat | RepeatPresolve |
CPX_PARAM_REPEATPRESOLVE |
automatic by default | MIP repeat presolve switch |
These and other parameters also control the behavior of preprocessing of the continuous subproblem (LP, QP, or QCP) solved during a MIP optimization. See Preprocessing for further details about these parameters in that context. The following discussion pertains to these parameters specifically in MIP preprocessing.
While preprocessing, CPLEX attempts to strengthen bounds on variables. This bound strengthening may take a long time. In such cases, you may want to turn off bound strengthening.
CPLEX attempts to reduce coefficients of constraints during preprocessing. Coefficient reduction usually strengthens the continuous relaxation and reduces the number of nodes in the branch & cut tree, but not always. Sometimes, it increases the amount of time needed to solve the linear relaxations at each node, possibly enough time to offset the benefit of fewer nodes. Two levels of coefficient reduction are available, so it is worthwhile to experiment with these preprocessing options to see whether they are beneficial to your problem.
The RelaxPreInd parameter controls whether an
additional round of presolve is applied before CPLEX solves the continuous
subproblem at the root relaxation. Often the root relaxation is the
single most time-consuming subproblem solved during branch and cut.
Certain additional presolve reductions are possible when MIP restrictions
are not present, and on difficult models this extra step will often
pay off in faster root-solve times. Even when there is no appreciable
benefit, there is usually no harm either. However, the RelaxPreInd parameter
is available if you want to explore whether skipping the additional
presolve step will improve overall solution speed, for example, if
you are solving a long sequence of very easy models and need maximum
speed on each one.
RepeatPresolve, CPX_PARAM_REPEATPRESOLVE)
parameter to invoke this additional step. Its default value of -1
means that CPLEX makes the decision internally whether to repeat presolve;
0 (zero) turns off this feature unconditionally, while positive values
allow you control over which aspects of the preprocessed model are
re-examined during preprocessing and whether additional cuts are then
permitted. Table 2 summarizes
the possible values of this parameter. | Value | Effect |
|---|---|
| -1 | Automatic (default) |
| 0 | Turn off repeat presolve |
| 1 | Repeat presolve without cuts |
| 2 | Repeat presolve with cuts |
| 3 | Repeat presolve with cuts and allow new root cuts |
CPLEX preprocesses a MIP by default. However, if you use a basis to start LP optimization of the root relaxation, CPLEX will proceed with that starting basis without preprocessing it. Frequently the strategic benefits of MIP presolve outweigh the tactical advantage of using a starting basis for the root node, so use caution when considering the advantages of a starting basis.