PROC OPTLP Macro Variable

The OPTLP procedure defines a macro variable named _OROPTLP_. This variable contains a character string that indicates the status of the OPTLP procedure upon termination. The various terms of the variable are interpreted as follows.

STATUS

indicates the solver status at termination. It can take one of the following values:

OK

The procedure terminated normally.

SYNTAX_ERROR

Incorrect syntax was used.

DATA_ERROR

The input data were inconsistent.

OUT_OF_MEMORY

Insufficient memory was allocated to the procedure.

IO_ERROR

A problem occurred in reading or writing data.

ERROR

The status cannot be classified into any of the preceding categories.

SOLUTION_STATUS

indicates the solution status at termination. It can take one of the following values:

OPTIMAL

The solution is optimal.

CONDITIONAL_OPTIMAL

The solution is optimal, but some infeasibilities (primal, dual or bound) exceed tolerances due to scaling or preprocessing.

INFEASIBLE

The problem is infeasible.

UNBOUNDED

The problem is unbounded.

INFEASIBLE_OR_UNBOUNDED

The problem is infeasible or unbounded.

ITERATION_LIMIT_REACHED

The maximum allowable number of iterations was reached.

TIME_LIMIT_REACHED

The solver reached its execution time limit.

FAILED

The solver failed to converge, possibly due to numerical issues.

OBJECTIVE

indicates the objective value obtained by the solver at termination.

PRIMAL_INFEASIBILITY

indicates, for the primal simplex and dual simplex solvers, the maximum (absolute) violation of the primal constraints by the primal solution. For the interior point solver, this term indicates the relative violation of the primal constraints by the primal solution.

DUAL_INFEASIBILITY

indicates, for the primal simplex and dual simplex solvers, the maximum (absolute) violation of the dual constraints by the dual solution. For the interior point solver, this term indicates the relative violation of the dual constraints by the dual solution.

BOUND_INFEASIBILITY

indicates, for the primal simplex and dual simplex solvers, the maximum (absolute) violation of the lower or upper bounds (or both) by the primal solution. For the interior point solver, this term indicates the relative violation of the lower or upper bounds (or both) by the primal solution.

DUALITY_GAP

indicates the (relative) duality gap. This term appears only if the interior point solver is used.

COMPLEMENTARITY

indicates the (absolute) complementarity. This term appears only if the interior point solver is used.

ITERATIONS

indicates the number of iterations taken to solve the problem. When the network simplex solver is used, this term indicates the number of network simplex iterations taken to solve the network relaxation. When crossover is enabled, this term indicates the number of interior point iterations taken to solve the problem.

ITERATIONS2

indicates the number of simplex iterations performed by the secondary solver. In network simplex, the secondary solver is selected automatically, unless a value has been specified for the SOLVER2= option. When crossover is enabled, the secondary solver is selected automatically. This term appears only if the network simplex solver is used or if crossover is enabled.

PRESOLVE_TIME

indicates the time (in seconds) used in preprocessing .

SOLUTION_TIME

indicates the time (in seconds) taken to solve the problem, including preprocessing time.

Note: The time reported in PRESOLVE_TIME and SOLUTION_TIME is either CPU time (default) or real time. The type is determined by the TIMETYPE= option.

When SOLUTION_STATUS has a value of OPTIMAL, CONDITIONAL_OPTIMAL, ITERATION_LIMIT_REACHED, or TIME_LIMIT_REACHED, all terms of the _OROPTLP_ macro variable are present; for other values of SOLUTION_STATUS, some terms do not appear.