Subproblem Optimization

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.

Table 5.15 Parameters for MIP Initial Relaxation and Subproblems

Interactive command 
Callable Library parameter 
Applies to 
initial relaxation 
subproblems 

Start-Algorithm Parameter

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.

To set this parameter:

Table 5.16 Values of Start-Algorithm and Sub-Algorithm Parameters

Concert Technology Library Enumeration 
Callable Library Symbolic Constant 
Value 
Calls this Optimizer 
primal simplex 
dual simplex (default) 
network simplex 
barrier with crossover (if licensed) 
dual simplex to iteration limits, then barrier (if licensed) 

 
barrier without crossover (if licensed) 

Crossover Parameter

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.

Table 5.17 Crossover parameter values used for MIP subproblems

Value 
Calls this Optimizer 
1 (default) 
primal crossover 
dual crossover 

Subalgorithm Parameter

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.


Previous Page: Difficulty Solving Subproblems  Return to Top Next Page: Example: Optimizing a Basic MIP Problem