The Dantzig-Wolfe Decomposition Algorithm
DECOMPMASTERIP Statement
DECOMPMASTERIP <masterip-options>;
DECOMPOSITIONMASTERIP <masterip-options>;
MASTERIP <masterip-options>;
For mixed integer linear programming problems, the DECOMPMASTERIP statement controls the (restricted) master problem, which is solved as a MILP with the current set of columns in an effort to obtain an integer feasible solution.
Table 5 summarizes the options available in the DECOMPMASTERIP statement. These options control the MILP solver that is used to solve the integer version of the master problem. For descriptions of these options, see the section MILP Solver Options in Chapter 14, The Mixed Integer Linear Programming Solver, and the section PROC OPTMILP Statement in Chapter 6, The OPTMILP Procedure. Some options have different defaults when you use the Dantzig-Wolfe decomposition algorithm, as shown in Table 5.
Table 5: Options in the DECOMPMASTERIP Statement
| Description | masterip-option | Different |
|---|---|---|
| Default | ||
| Presolve Option | ||
| Specifies the type of presolve | PRESOLVER= | |
| Control Options | ||
| Specifies the stopping criterion based on an absolute objective gap | ABSOBJGAP= | |
| Specifies the cutoff value for node removal | CUTOFF= | |
| Emphasizes feasibility or optimality | EMPHASIS= | |
| Specifies the maximum violation on variables and constraints | FEASTOL= | 1E–7 |
| Specifies the maximum difference allowed between an integer variable’s value and an integer | INTTOL= | |
| Specifies how frequently to print the node log | LOGFREQ= | |
| Specifies the level of detail of solution progress to print in the log | LOGLEVEL= | NONE |
| Specifies the maximum number of nodes to process | MAXNODES=† | |
| Specifies the maximum number of solutions to find | MAXSOLS= | |
| Specifies the time limit for the optimization process | MAXTIME= | |
| Specifies the number of threads to use in the master integer solver | NTHREADS= | |
| Specifies the tolerance to use in determining the optimality of nodes in the branch-and-bound tree | OPTTOL= | 1E–7 |
| Specifies whether to use the previous best primal solution as a warm start | PRIMALIN= | |
| Specifies the probing level | PROBE= | |
| Specifies the stopping criterion based on a relative objective gap | RELOBJGAP= | 0.01 |
| Specifies the scale of the problem matrix | SCALE= | |
| Specifies the initial seed for the random number generator | SEED= | |
| Specifies the stopping criterion based on a target objective value | TARGET= | |
| Specifies whether time units are CPU time or real time | TIMETYPE= | |
| Heuristics Option | ||
| Specifies the primal heuristics level | HEURISTICS= | |
| Search Options | ||
| Specifies the level of conflict search | CONFLICTSEARCH= | |
| Specifies the node selection strategy | NODESEL= | |
| Specifies the restarting strategy | RESTARTS= | |
| Specifies the number of iterations to perform on each variable for strong branching strategy | STRONGITER= | |
| Specifies the number of candidates for strong branching | STRONGLEN= | |
| Specifies the level of symmetry detection | SYMMETRY= | |
| Specifies the rule for selecting branching variable | VARSEL= | |
| Cut Options | ||
| Specifies the cut level for all cuts | ALLCUTS= | |
| Specifies the clique cut level | CUTCLIQUE= | |
| Specifies the flow cover cut level | CUTFLOWCOVER= | |
| Specifies the flow path cut level | CUTFLOWPATH= | |
| Specifies the Gomory cut level | CUTGOMORY= | |
| Specifies the generalized upper bound (GUB) cover cut level | CUTGUB= | |
| Specifies the implied bounds cut level | CUTIMPLIED= | |
| Specifies the knapsack cover cut level | CUTKNAPSACK= | |
| Specifies the lift-and-project cut level | CUTLAP= | |
| Specifies the mixed lifted 0-1 cut level | CUTMILIFTED= | |
| Specifies the mixed integer rounding (MIR) cut level | CUTMIR= | |
| Specifies the multicommodity network flow cut level | CUTMULTICOMMODITY= | |
| Specifies the path mixing cut level | CUTPATHMIXING= | |
| Specifies the RLT cut level | CUTRLT= | |
| Specifies the row multiplier factor for cuts | CUTSFACTOR= | |
| Specifies the overall cut aggressiveness | CUTSTRATEGY= | |
| Specifies the zero-half cut level | CUTZEROHALF= |
† MAXNODES=100000 in the root node, and MAXNODES=10000 in nodes that are not the root.
The following options are listed in Table 5 but are not described in the MILP solver sections. These options are specific to the DECOMPMASTERIP statement.