solution type for LP and QP
Specifies type of solution (basic or non basic) that CPLEX produces for a linear program (LP) or quadratic program (QP).
Purpose
Solution type for LP or QP
API | Parameter Name |
---|---|
C | CPXPARAM_SolutionType |
C++ | IloCplex::Param::SolutionType |
OPL | solutiontype |
Interactive | solutiontype |
Identifier | 1147 |
Description
Specifies the type of solution (basic or non basic) that CPLEX attempts to compute for a linear program (LP) or for a quadratic program (QP). In this context, basic means having to do with the basis. When CPLEX offers a non basic solution, the solution consists of a pair of primal-dual solution vectors.
By default (that is, when the value of this parameter is 0 (zero) automatic), CPLEX seeks a basic solution (that is, a solution with a basis) for all linear programs (LP) and for all quadratic programs (QP).
When the value of this parameter is 1 (one), CPLEX seeks a basic solution, that is, a solution that includes a basis with a basic status for variables and constraints. In other words, CPLEX behaves the same way for the values 0 (zero) and 1 (one) of this parameter.
When the value of this parameter is 2, CPLEX seeks a pair of primal-dual solution vectors. This setting does not prevent CPLEX from producing status information, but in seeking a pair of primal-dual solution vectors, CPLEX possibly may not produce basic status information; that is, it is possible that CPLEX does not produce status information about which variables and constraints participate in the basis at this setting.
Solution type interacts with symmetry detection in LP simplex
If your setting of this parameter requires CPLEX to find a basis, and your model is a linear program (LP) with a simplex algorithm, then CPLEX does not apply symmetry breaking for MIP models.
If your setting of this parameter does not require CPLEX to find a basis, then CPLEX applies the default symmetry breaking for MIP models to a linear program (LP) using a simplex algorithm.
Solution type interacts with barrier crossover algorithm
Your setting of barrier crossover algorithm interacts with your setting of this parameter. For example, the Callable Library (C API) routine CPXXhybbaropt and CPXhybbaropt produces a basic solution, solution vectors, or an error, depending on these settings.
Specifically, to avoid errors, set the parameter controlling the barrier crossover algorithm to a non default value only when the solution type parameter is at its default. Likewise, set the solution type parameter to a non default value only when the parameter controlling the barrier crossover algorithm is at its default setting.
solution type | barrier crossover algorithm: no crossover | barrier crossover algorithm: auto | barrier crossover algorithm: primal | barrier crossover algorithm: dual |
---|---|---|---|---|
auto 0 | solution vectors | basic solution | basic solution | basic solution |
basic 1 | error | basic solution | error | error |
non basic 2 | error | solution vectors | error | error |
Tip: The value 2 of this solution type parameter tells CPLEX to seek a nonbasic solution. In the case of barrier optimization, this setting turns off crossover.
Tip: At the value 2 of this solution type parameter, it is possible under certain conditions that CPLEX can produce a basis anyway.
Value | Symbol | Meaning |
---|---|---|
0 | CPX_AUTO_SOLN | Automatic: let CPLEX decide; default |
1 | CPX_BASIC_SOLN | CPLEX computes a basic solution. |
2 | CPX_NONBASIC_SOLN | CPLEX computes a primal-dual pair of solution-vectors |
See also