The Dantzig-Wolfe Decomposition Algorithm
DECOMPMASTER Statement
DECOMPMASTER <master-options>;
DECOMPOSITIONMASTER <master-options>;
MASTER <master-options>;
The DECOMPMASTER statement controls the master problem.
Table 4 summarizes the options available in the DECOMPMASTER statement. These options control the master LP solver in the Dantzig-Wolfe decomposition algorithm during the solution of an LP or a MILP. (As the table indicates, you can specify the PRINTLEVEL= option only in the OPTLP procedure.) For descriptions of these options, see the section LP Solver Options in Chapter 13, The Linear Programming Solver, and the section PROC OPTLP Statement in Chapter 5, The OPTLP Procedure. Some options have different defaults when you use the Dantzig-Wolfe decomposition algorithm, as indicated in Table 4.
Table 4: Options in the DECOMPMASTER Statement
| Description | master-option | Different |
|---|---|---|
| Default | ||
| Algorithm Option | ||
| Specifies the master algorithm | ALGORITHM= | PS† |
| Presolve Option | ||
| Controls the dualization of the problem | DUALIZE= | OFF |
| Controls the folding of the problem | FOLD= | AUTOMATIC |
| Specifies, for the first master solve only, the type of presolve | INITPRESOLVER= | |
| Specifies the type of presolve | PRESOLVER= | NONE† |
| Control Options | ||
| Specifies the feasibility tolerance | FEASTOL= | 1E–7 |
| Specifies how frequently to print the solution progress | LOGFREQ= | |
| Specifies the level of detail of solution progress to print in the log | LOGLEVEL= | NONE |
| Specifies the time limit for the optimization process | MAXTIME= | |
| Specifies the number of threads to use in the master solver | NTHREADS= | |
| Specifies the optimality tolerance | OPTTOL= | 1E–7 |
| Enables or disables printing summary (OPTLP procedure only) | PRINTLEVEL= | |
| Specifies whether time units are CPU time or real time | TIMETYPE= | |
| Specifies the type of initial basis | BASIS= | WARMSTART† |
| Specifies the type of pricing strategy | PRICETYPE= | |
| Specifies the queue size for determining the entering variable | QUEUESIZE= | |
| Enables or disables scaling of the problem | SCALE= | |
| Specifies the initial seed for the random number generator | SEED= | |
| Interior Point Algorithm Options | ||
| Enables or disables interior crossover | CROSSOVER= | |
| Specifies the stopping criterion based on a duality gap | DUALITYGAP= |
† The reason for the different defaults (ALGORITHM=PS, PRESOLVER=NONE, and BASIS=WARMSTART) is that primal feasibility of the master problem is preserved when columns are added, so a warm start from the previous optimal basis tends to be more efficient than solving the master from scratch at each iteration.
The following options, listed in Table 4, are specific to the DECOMPMASTER statement and are not described in the LP solver sections: