The Decomposition Algorithm

DECOMP_MASTER Statement

  • DECOMP_MASTER <decomp-master-options>;

  • MASTER <decomp-master-options>;

The DECOMP_MASTER statement controls the master problem.

Table 15.12 summarizes the options available in the DECOMP_MASTER statement. These options control the master LP solver in the decomposition algorithm during the solution of an LP or a MILP. (As indicated, you can specify the PRINTLEVEL= option only in the OPTLP procedure.) For descriptions of these options, see the section LP Solver Options in Chapter 7: The Linear Programming Solver, and the section PROC OPTLP Statement in Chapter 12: The OPTLP Procedure. Some options have different defaults when you use the decomposition algorithm, as indicated in Table 15.12.

Table 15.12: Options in the DECOMP_MASTER Statement

Description

decomp-master-option

Different

   

Default

Algorithm Option

   

Specifies the master algorithm

ALGORITHM=

PS

Presolve Option

   

Controls the dualization of the problem

DUALIZE=

OFF

Specifies, for the first master solve only, the type of presolve

INITPRESOLVER=

 

Specifies the type of presolve

PRESOLVER=

NONE (ALGORITHM=PS)

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=

 

Specifies the maximum number of iterations

MAXITER=

 

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 (ALGORITHM=PS)

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

STOP_DG=

 

Specifies the stopping criterion based on dual infeasibility

STOP_DI=

 

Specifies the stopping criterion based on primal infeasibility

STOP_PI=

 


† The different defaults (ALGORITHM=PS, PRESOLVER=NONE, and BASIS=WARMSTART) are motivated by the fact 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 in each iteration.

The following options, listed in Table 15.12, are specific to the DECOMP_MASTER statement and are not described in the LP solver sections.

INITPRESOLVER=number | string
INITPRESOL=number | string

specifies, for the first master solve only, presolve conditions as shown in Table 15.13.

Table 15.13: Values for INITPRESOLVER= Option

number

string

Description

–1

AUTOMATIC

Applies the default level of presolve processing.

0

NONE

Disables presolver.

1

BASIC

Performs minimal presolve processing.

2

MODERATE

Applies a higher level of presolve processing.

3

AGGRESSIVE

Applies the highest level of presolve processing.


The default is AUTOMATIC.

NTHREADS=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 PERFORMANCE statement, which is described in the section PERFORMANCE 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 $t = \min (p,m)$, where p is the value of the NTHREADS= option in the PERFORMANCE statement and m is the value of the NTHREADS= option in the DECOMP_MASTER statement.