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:

INITPRESOLVER=AUTOMATIC | NONE | BASIC | MODERATE | AGGRESSIVE
INITPRESOL=AUTOMATIC | NONE | BASIC | MODERATE | AGGRESSIVE

specifies, for the first master solve only, the presolve level. You can specify the following values:

AUTOMATIC

applies the default level of presolve processing.

NONE

disables the presolver.

BASIC

performs minimal presolve processing.

MODERATE

applies a higher level of presolve processing.

AGGRESSIVE

applies the highest level of presolve processing.

By default, INITPRESOLVER=AUTOMATIC.

NTHREADS=number
NUMTHREADS=number

specifies the number of threads to use in the master solver (if the selected solver method supports multithreading). The value of the NTHREADS= option in the main solver statement serves as the overall capacity for the number of active threads that can run at one time. By default, the number of master threads is the value of the NTHREADS= option in the main solver statement.

Last updated: March 04, 2026