algorithm for continuous linear problems
Controls which algorithm is used to solve continuous linear models or to solve the root relaxation of a MIP.
Purpose
Solution algorithm for continuous problems
|
Description
Controls which algorithm CPLEX uses to solve continuous linear models (LPs).
In the object-oriented
APIs (such as C++, Java, or .NET APIs), this parameter, as RootAlg
,
also controls which algorithm CPLEX uses to solve the root relaxation
of a MIP.
In the C API and the Interactive Optimizer, there are separate parameters to control LP, QP, and MIP optimizers, depending on the problem type. See, for example, algorithm for continuous quadratic optimization or algorithm for initial MIP relaxation.
In all cases, the default setting is 0 (zero). The default setting means that CPLEX will select the algorithm in a way that should give best overall performance.
For specific problem classes, the following details document the automatic settings. Note that future versions of CPLEX could adopt different strategies. Therefore, if you select any nondefault settings, you should review them periodically.
Currently, the behavior of the automatic setting is that CPLEX almost always invokes the dual simplex algorithm when it is solving an LP model from scratch. When it is continuing from an advanced basis, it will check whether the basis is primal or dual feasible, and choose the primal or dual simplex algorithm accordingly.
If multiple threads have been requested, in either deterministic or opportunistic mode, the concurrent optimization algorithm is selected by the automatic setting when CPLEX is solving a continuous linear programming model (LP) from scratch.
When three or more threads are available, and you select concurrent optimization for the value of this parameter, its behavior depends on whether parallel mode is opportunistic or deterministic (default parallel mode). Concurrent optimization in opportunistic parallel mode runs the dual simplex optimizer on one thread, the primal simplex optimizer on a second thread, the parallel barrier optimizer on a third thread and on any additional available threads. In contrast, concurrent optimization in deterministic parallel mode runs the dual optimizer on one thread and the parallel barrier optimizer on any additional available threads.
The automatic setting may be expanded in the future so that CPLEX chooses the algorithm based on additional problem characteristics.
Tip: In the presence of a linear programming (LP) callback, CPLEX does not invoke concurrent optimization, regardless of the value of this parameter.
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 |
6 | CPX_ALG_CONCURRENT |
Concurrent (Dual, Barrier, and Primal in opportunistic parallel mode; Dual and Barrier in deterministic parallel mode) |