Overview of LP optimizers
Introduces parameters to select LP optimizers.
CPLEX offers several different optimizers for linear programming problems. Each of these optimizers is available whether you call CPLEX from within your own application using Concert Technology or the Callable Library, or you use the Interactive Optimizer.
The choice of LP optimizer in CPLEX can be specified using
the algorithm for continuous linear problems parameter,
named RootAlg in the C++, Java, and .NET
APIs, CPXPARAM_LPMethod in the Callable
Library, parameters.lpmethod in the Python API,
and lpmethod in the Interactive
Optimizer. In Concert Technology, the LP method is controlled by
the RootAlg parameter (which also controls related aspects
of QP and MIP solutions, as explained in the corresponding chapters
of this manual). In this chapter, this parameter will be referred
to uniformly as LPMethod.
The LPMethod parameter sets
which optimizer will be used when you solve a model in one of the
following ways:
cplex.solve(Concert Technology for users of C++, Java, or .NET)CPXXlpopt and CPXlpopt (Callable Library)
cplex.solve(Python API)optimize(Interactive Optimizer)
LPMethod are
summarized in Table 1. | Setting of LPMethod |
Meaning | See Section |
|---|---|---|
| 0 | Default Setting | Automatic selection of an optimizer |
| 1 | Primal Simplex | Primal simplex optimizer |
| 2 | Dual Simplex | Dual simplex optimizer |
| 3 | Network Simplex | Network optimizer |
| 4 | Barrier | Barrier optimizer |
| 5 | Sifting | Sifting optimizer |
| 6 | Concurrent Dual, Barrier, and Primal in opportunistic parallel mode; Concurrent Dual and Barrier in deterministic parallel mode |
Concurrent optimizer |
| Python API | Concert C++ | Concert Java | Concert.NET | Callable Library | |
|---|---|---|---|---|---|
0 |
Cplex.parameters.lpmethod.values.auto |
IloCplex::AutoAlg |
IloCplex.Algorithm.Auto |
Cplex.Auto |
CPX_ALG_AUTOMATIC |
1 |
Cplex.parameters.lpmethod.values.primal |
IloCplex::Primal |
IloCplex.Algorithm.Primal |
Cplex.Primal |
CPX_ALG_PRIMAL |
2 |
Cplex.parameters.lpmethod.values.dual |
IloCplex::Dual |
IloCplex.Algorithm.Dual |
Cplex.Dual |
CPX_ALG_DUAL |
3 |
Cplex.parameters.lpmethod.values.network |
IloCplex::Network |
IloCplex.Algorithm.Network |
Cplex.Network |
CPX_ALG_NET |
4 |
Cplex.parameters.lpmethod.values.barrier |
IloCplex::Barrier |
IloCplex.Algorithm.Barrier |
Cplex.Barrier |
CPX_ALG_BARRIER |
5 |
Cplex.parameters.lpmethod.values.sifting |
IloCplex::Sifting |
IloCplex.Algorithm.Sifting |
Cplex.Sifting |
CPX_ALG_SIFTING |
6 |
Cplex.parameters.lpmethod.values.concurrent |
IloCplex::Concurrent |
IloCplex.Algorithm.Concurrent |
Cplex.Concurrent |
CPX_ALG_CONCURRENT |