To solve a mixed integer linear program, you can specify the decomposition algorithm in a SOLVE WITH MILP statement in the OPTMODEL procedure or in a PROC OPTMILP statement in the OPTMILP procedure. To control the overall decomposition algorithm, you can specify one or more of the MILP solver options shown in Table 15.2. (As indicated, you can specify some options only in the PROC OPTMILP statement.)
The options in Table 15.2 control the overall process flow for solving a mixed integer linear program, and they are equivalent to the options that are used in the OPTMILP and OPTMODEL procedures with standard methods. These options are called main solver options in this chapter. They are described in detail in the section Syntax: MILP Solver and the section Syntax: OPTMILP Procedure.
The HYBRID= option in the DECOMP statement indicates the processing mode for the root node of the branch-and-bound search tree. When HYBRID=ON, the root node is first processed using standard MILP techniques, as described in the section Details: MILP Solver. The default setting for the decomposition algorithm is HYBRID=OFF. In this case, the root processing is done solely by the decomposition algorithm, and several of the direct MILP options are ignored. These options are indicated in Table 15.2 in the column Ignored HYBRID=OFF.
Table 15.2: MILP Options in the PROC OPTMILP Statement or SOLVE WITH MILP Statement
Description |
option |
Ignored |
---|---|---|
HYBRID=OFF |
||
Data Set Options (OPTMILP procedure only) |
||
Specifies the input data set |
||
Specifies the constraint activities output data set |
||
Specifies whether the model is a maximization or minimization problem |
||
Specifies the primal solution input data set (warm start) |
||
Specifies the primal solution output data set |
||
Presolve Option |
||
Specifies the type of presolve |
||
Control Options |
||
Specifies the stopping criterion based on an absolute objective gap |
||
Emphasizes feasibility or optimality |
X |
|
Specifies the maximum violation of variables and constraints |
||
Specifies the maximum allowed difference between an integer variable’s value and an integer |
||
Specifies how frequently to print the node log |
||
Specifies the level of detail of solution progress to print in the log |
||
Specifies the maximum number of nodes to be processed |
||
Specifies the maximum number of solutions to be found |
||
Specifies the time limit for the optimization process |
||
Specifies the tolerance used in determining the optimality of nodes in the branch-and-bound tree |
||
Uses the input primal solution (warm start) (OPTMODEL procedure only) |
||
Enables or disables printing summary (OPTMILP procedure only) |
||
Specifies the probing level |
||
Specifies the stopping criterion based on a relative objective gap |
||
Specifies the scale of the problem matrix |
||
Specifies the initial seed for the random number generator |
X |
|
Specifies the stopping criterion based on target objective value |
X |
|
Specifies whether time units are CPU time or real time |
||
Heuristics Option |
||
Specifies the primal heuristics level |
||
Search Options |
||
Specifies the level of symmetry detection |
X |
|
Specifies the rule for selecting the branching variable |
||
Cut Options |
||
Specifies the cut level for all cuts |
X |
|
Specifies the clique cut level |
X |
|
Specifies the flow cover cut level |
X |
|
Specifies the flow path cut level |
X |
|
Specifies the Gomory cut level |
X |
|
Specifies the generalized upper bound (GUB) cover cut level |
X |
|
Specifies the implied bounds cut level |
X |
|
Specifies the knapsack cover cut level |
X |
|
Specifies the lift-and-project cut level |
X |
|
Specifies the mixed lifted 0-1 cut level |
X |
|
Specifies the mixed integer rounding (MIR) cut level |
X |
|
Specifies the row multiplier factor for cuts |
X |
|
Specifies the overall cut aggressiveness |
X |
|
Specifies the zero-half cut level |
X |
The following search option, listed in Table 15.2, has a different set of options from what is described in the MILP solver sections.