Preprocessing: Presolver and Aggregator

When you invoke the MIP optimizer-whether through the Interactive Optimizer command mipopt, through a call to the Concert Technology Library function IloCplex::solve(), or through the Callable Library routine CPXmipopt()-ILOG CPLEX by default automatically preprocesses your problem. Table 5.5 summarizes the preprocessing parameters. In preprocessing, ILOG CPLEX applies its presolver and aggregator once or more 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.

Table 5.5 Parameters for Controlling MIP Preprocessing

Interactive Command 
Concert Technology Library Parameter 
Callable Library Parameter 
Comment 
on by default 
on by default 
presolve must be on 
presolve must be on 
applies to relaxation 
all on by default 
not available 
automatic by default 

The parameters reduce and numpass have the same meanings for LP and MIP. Preprocessing: Presolver and Aggregator explains the meanings and adjustments of all these parameters.

While preprocessing, ILOG CPLEX also 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.

ILOG CPLEX also attempts to reduce coefficients during preprocessing. Coefficient reduction usually strengthens the linear programming 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 programs at each node-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.

In addition, you may also set the relaxation parameter to tell ILOG CPLEX to apply preprocessing to the initial relaxation of the problem. Sometimes this preprocessing will result in additional, beneficial presolve transformations in the LP relaxation-transformations that are not possible in the original MIP model.

ILOG CPLEX preprocesses a MIP by default. However, if you use a basis to start LP optimization at the root node, ILOG CPLEX will proceed with that starting basis without preprocessing it. In other words, if you change a MIP to a relaxed problem, optimize it as an LP, and use that basis to start MIP-optimization, then no preprocessing will occur.

If you want to apply a particular LP algorithm to the first relaxation, this strategy is reasonable. However, for problems that benefit from MIP preprocessing, we do not recommend it. Instead, we recommend that you use parameters to indicate which algorithm to use on the first relaxation (startalgorithm in the Interactive Optimizer and CPX_PARAM_STARTALG in the Callable Library) and which to use on the subproblems (subalgorithm in the Interactive Optimizer and CPX_PARAM_SUBALG in the Callable Library). In Concert Technology Library, use the methods IloCplex::setRootAlgorithm and IloCplex::setNodeAlgorithm. Subproblem Optimization explains more about choosing algorithms for the first relaxation and subsequent subproblems.


Previous Page: Heuristics  Return to Top Next Page: Starting from a Solution