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.

Table 1. Solution type interacts with barrier crossover algorithm
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.

Table 2. Values
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

symmetry breaking for MIP models