MIP subproblem algorithm

Decides which continuous optimizer will be used to solve the subproblems in a MIP, after the initial relaxation.

Purpose

MIP subproblem algorithm

API Parameter Name Name prior to V12.6.0
C CPXPARAM_MIP_Strategy_SubAlgorithm CPX_PARAM_SUBALG
C++ IloCplex::Param::NodeAlgorithm NodeAlg (int)
Java IloCplex.Param.NodeAlgorithm NodeAlg (int)
.NET Cplex.Param.NodeAlgorithm NodeAlg (int)
OPL nodealg nodealg
Python parameters.mip.strategy.subalgorithm mip.strategy.subalgorithm
Interactive mip strategy subalgorithm mip strategy subalgorithm
Identifier 2026 2026

Description

Decides which continuous optimizer will be used to solve the subproblems in a MIP, after the initial relaxation.

The default Automatic setting (0 zero) of this parameter currently selects the dual simplex optimizer for subproblem solution for MILP and MIQP. The Automatic setting may be expanded in the future so that CPLEX chooses the algorithm based on additional characteristics of the model.

For MILP (integer constraints and otherwise continuous variable), all settings are permitted.

For MIQP (integer constraints and positive semi-definite quadratic terms in objective), setting 3 (Network) is not permitted, and setting 5 (Sifting) reverts to 0 (Automatic).

For MIQCP (integer constraints and positive semi-definite quadratic terms among the constraints), only the setting 0 (Automatic) is permitted. In other words, given a problem of type MIQCP, and any setting of this parameter other than 0 (Automatic), CPLEX will exit because of the quadratic constraint or quadratic constraints, and CPLEX displays an error message specifying that a mixed integer problem cannot be solved by this setting.

Table 1. Values
Value Symbol Meaning
0 CPX_ALG_AUTOMATIC Automatic: let CPLEX choose; default
1 CPX_ALG_PRIMAL Primal simplex
2 CPX_ALG_DUAL Dual simplex
3 CPX_ALG_NET Network simplex
4 CPX_ALG_BARRIER Barrier
5 CPX_ALG_SIFTING Sifting