optimality target

Specifies type of optimality that CPLEX targets (optimal convex or first-order satisfaction) as it searches for a solution

Purpose

Optimality target

API Parameter Name
C CPXPARAM_OptimalityTarget
C++ IloCplex::Param::OptimalityTarget
Java IloCplex.Param.OptimalityTarget
.NET Cplex.Param.OptimalityTarget
OPL optimalitytarget
Python parameters.optimalitytarget
MATLAB Cplex.Param.optimalitytarget
Interactive optimalitytarget
Identifier 1131

Description

Specifies the type of solution that CPLEX attempts to compute with respect to the optimality of that solution when CPLEX solves a continuous (QP) or mixed integer (MIQP) quadratic model. In other words, the variables of the model can be continuous or mixed integer and continuous; the objective function includes a quadratic term, and perhaps the objective function is not positive semi-definite (non PSD).

Tip: This parameter does not apply to quadratically constrained problems whether they contain integer variables (MIQCP) or not (QCP). For those problems, use only the default value of this parameter.

By default, CPLEX first attempts to compute a provably optimal solution to a QP or MIQP problem. If CPLEX cannot compute a provably optimal solution because the objective function is not convex, CPLEX terminates and returns Error 5002, CPXERR_Q_NOT_POS_DEF.

When this parameter is set to 1 (one), CPLEX assumes that the model is convex and searches for a globally optimal solution. In problems of type QP or MIQP (that is, the objective function includes one or more quadratic terms), this setting interacts with linearization switch for QP, MIQP, the linearization switch for QP and MIQP models.

When this parameter is set to 2, CPLEX searches for a solution that satisfies first-order optimality conditions. If the model is convex, such a solution is also globally optimal. If the model is not convex, the solution is not necessarily globally optimal. You can query the solution status to determine the kind of solution that CPLEX found.

This value 2 of the parameter is valid only for continuous QP models. If the model includes integer variables, CPLEX returns Error 1017, CPXERR_NOT_FOR_MIP. If the model includes quadratic constraints, CPLEX returns Error 1031, CPXERR_NOT_FOR_QCP.

When this parameter is set to 3, if the problem type is QP, CPLEX first changes the problem type to MIQP. CPLEX then solves the problem (whether originally QP or MIQP) to global optimality. In problems of type QP or MIQP, this setting interacts with linearization switch for QP, MIQP.

For MIQCP (that is, mixed integer models with positive semi-definite quadratic terms among the constraints), only the setting 0 (zero) Automatic is valid. Other values raise Error 1031, CPXERR_NOT_FOR_QCP.

Tip: When the value of this parameter is 3 (that is, you have instructed CPLEX to search for a globally optimal solution to a nonconvex QP or MIQP), then information about dual values is not available for the solution.

Table 1. Values
Value Symbol Meaning
0 CPX_OPTIMALITYTARGET_AUTO Automatic: let CPLEX decide; default
1 CPX_OPTIMALITYTARGET_OPTIMALCONVEX Searches for a globally optimal solution to a convex model.
2 CPX_OPTIMALITYTARGET_FIRSTORDER Searches for a solution that satisfies first-order optimality conditions, but is not necessarily globally optimal.
3 CPX_OPTIMALITYTARGET_OPTIMALGLOBAL Searches for a globally optimal solution to a nonconvex model; changes problem type to MIQP if necessary.