In some problems, you can improve performance by evaluating how the LP subproblems are solved at the nodes in the branch & cut tree, and then possibly modifying the choice of algorithm to solve them. As we mentioned in Preprocessing: Presolver and Aggregator, you can control which algorithm ILOG CPLEX applies to the initial relaxation of your problem separately from your control of which algorithm ILOG CPLEX applies to other subproblems. Table 5.15 summarizes the commands to control those two parameters. The following sections explain those parameters more fully.
Interactive command | Callable Library parameter | Applies to |
---|---|---|
initial relaxation | ||
subproblems |
The start-algorithm parameter indicates the algorithm for ILOG CPLEX to use on the initial subproblem. In a typical MIP, that initial subproblem is usually the linear relaxation of the original MIP. By default, ILOG CPLEX starts the initial subproblem with the dual simplex optimizer. You may have information about your problem that indicates another optimizer could be more efficient. Table 5.16 summarizes the values available for the start-algorithm parameter.
set mip strategy startalgorithm
with the value to indicate the optimizer you want.
IloCplex::setRootAlgorithm()
and the appropriate algorithm enumeration value.
CPXsetintparam()
with the parameter CPX_PARAM_STARTALG
, and the appropriate symbolic constant.
To control the kind of crossover used by the barrier optimizer for MIP subproblems, in the Interactive Optimizer, use the command set
mip strategy crossover i
substituting a value to indicate which optimizer to call at crossover. From the callable Library, use the routine
CPXsetintparam()
with the parameter CPX_PARAM_MIPHYBALG
and a crossover value. Table 5.17 lists the acceptable values for this crossover parameter.
Value | Calls this Optimizer |
---|---|
1 (default) | primal crossover |
2 | dual crossover |
The subalgorithm parameter indicates the algorithm for ILOG CPLEX to use on subsequent subproblems. By default, ILOG CPLEX applies the dual simplex optimizer to subproblems, but again, you may have information about your problem that tells you another optimizer could be more efficient. To specify a subalgorithm in the Interactive Optimizer, use the command set
mip strategy subalgorithm with the value to indicate the optimizer you want. In the Concert Technology library use the method IloCplex::setNodeAlgorithm()
and the appropriate algorithm enumeration value. In the Callable Library, use the routine CPXsetintparam()
with the parameter CPX_PARAM_SUBALG
, and the appropriate symbolic constant. The values and symbolic constants are the same for the subalgorithm parameter as for the start-algorithm parameter in Table 5.16.