The Decomposition Algorithm

DECOMP_SUBPROB Statement

DECOMP_SUBPROB <decomp-subprob-options> ;

SUBPROB <decomp-subprob-options> ;

The DECOMP_SUBPROB statement controls the subproblem.

Table 13.14 summarizes the options available for the decomposition algorithm in the DECOMP_SUBPROB statement when the subproblem algorithm chosen is an LP algorithm. (As indicated, you can specify the PRINTLEVEL= option only in the OPTLP procedure.) For descriptions of these options, see the section LP Solver Options and the section PROC OPTLP Statement.

The following default values differ from the LP solver defaults: ALGORITHM=PS, PRESOLVER=NONE, and BASIS=WARMSTART (when METHOD=USER is specified in the DECOMP statement), and ALGORITHM=NETWORK_PURE (when METHOD=NETWORK is specified in the DECOMP statement). For METHOD=USER, these defaults are motivated by the fact that primal feasibility of the subproblem is preserved when the objective is changed, so a warm start from the previous optimal basis tends to be more efficient than solving the subproblem from scratch in each iteration. For METHOD=NETWORK, the specialized pure network solver is usually the most efficient choice because each subproblem is a pure network.

Table 13.14: Options in the DECOMP_SUBPROB Statement Used with an LP Algorithm

Description

decomp-subprob-option

Algorithm Option

 

Specifies the subproblem algorithm

ALGORITHM=

Presolve Option

 

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

INITPRESOLVER=

Specifies the type of presolve

PRESOLVER=

Control Options

 

Specifies the feasibility tolerance

FEASTOL=

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 optimality tolerance

OPTTOL=

Enables or disables printing summary (OPTLP procedure only)

PRINTLEVEL=

Specifies whether time units are CPU time or real time

TIMETYPE=

Simplex Algorithm Options

 

Specifies the type of initial basis

BASIS=

Specifies the type of pricing strategy

PRICETYPE=

Specifies the queue size for determining entering variable

QUEUESIZE=

Enables or disables scaling of the problem

SCALE=

Interior Point Algorithm Options

 

Enables or disables interior crossover

CROSSOVER=

Specifies the stopping criterion based on duality gap

STOP_DG=

Specifies the stopping criterion based on dual infeasibility

STOP_DI=

Specifies the stopping criterion based on primal infeasibility

STOP_PI=


Table 13.15 summarizes the options available in the DECOMP_SUBPROB statement when the subproblem algorithm chosen is a MILP algorithm. When the subproblem consists of multiple blocks (a block-diagonal structure), these settings apply to all subproblems. For descriptions of these options, see the section MILP Solver Options and the section PROC OPTMILP Statement.

Table 13.15: Options in the DECOMP_SUBPROB Statement Used with a MILP Algorithm

Description

Option

Algorithm Option

 

Specifies the subproblem algorithm

ALGORITHM=

Presolve Option

 

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

INITPRESOLVER=

Specifies the type of presolve

PRESOLVER=

Control Options

 

Specifies the stopping criterion based on 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=

Specifies the maximum allowed difference 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=

Specifies the maximum number of nodes to be processed

MAXNODES=

Specifies the maximum number of solutions to be found

MAXSOLS=

Specifies the time limit for the optimization process

MAXTIME=

Specifies the tolerance used when deciding on the optimality of nodes in the branch-and-bound tree

OPTTOL=

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 relative objective gap

RELOBJGAP=

Specifies the scale of the problem matrix

SCALE=

Specifies the stopping criterion based on 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 number of simplex iterations performed on each variable in strong branching strategy

STRONGITER=

Specifies the number of candidates for strong branching

STRONGLEN=

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 row multiplier factor for cuts

CUTSFACTOR=

Specifies the overall cut aggressiveness

CUTSTRATEGY=

Specifies the zero-half cut level

CUTZEROHALF=


In addition to the decomp-subprob-options specified in Table 13.14 and Table 13.15, you can specify the following decomp-subprob-options in the DECOMP_SUBPROB statement.

ALGORITHM=string
SOLVER=string
SOL=string

specifies one of the algorithms shown in Table 13.16 (the valid abbreviated value for each string is shown in parentheses).

Table 13.16: Values for ALGORITHM= Option

string

Description

PRIMAL (PS)

Uses the primal simplex algorithm.

DUAL (DS)

Uses the dual simplex algorithm.

NETWORK (NS)

Uses the network simplex algorithm.

NETWORK_PURE (NSPURE)

Uses the network simplex algorithm for pure networks.

INTERIORPOINT (IP)

Uses the interior point algorithm.

MILP

Uses the mixed integer linear solver.


For mixed integer programming problems, the default is NETWORK_PURE if METHOD=NETWORK and MILP otherwise. For linear programming problems, the default is NETWORK_PURE if METHOD=NETWORK, DUAL if METHOD=AUTO, and PS otherwise.

INITPRESOLVER=number | string
INITPRESOL=number | string

specifies, for the first subproblem solve only, presolve conditions as listed in Table 13.17.

Table 13.17: 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.

PRIMALIN=number | string
PIN=number | string

specifies (for MILP problems only) whether the MILP solver is to use the values of the previous best solution’s variables as a starting solution (warm start). If the MILP solver finds that the input solution is feasible, then the input solution provides an incumbent solution and a bound for the branch-and-bound algorithm. If the solution is not feasible, the MILP solver tries to repair it. When it is difficult to find a good integer-feasible solution for a problem, warm start can reduce solution time significantly. Table 13.18 describes the valid values of the PRIMALIN= option.

Table 13.18: Values for PRIMALIN= Option

number

string

Description

0

OFF

Ignores the previous solution.

1

ON

Starts from the previous solution.


The default is ON.