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.
-
ALGORITHM
-
indicates the algorithm that produces the solution data in the macro variable. This term appears only when STATUS=OK. It can
take one of the following values:
- PS
-
The primal simplex algorithm produced the solution data.
- DS
-
The dual simplex algorithm produced the solution data.
- NS
-
The network simplex algorithm produced the solution data.
- IP
-
The interior point algorithm produced the solution data.
- DECOMP
-
The decomposition algorithm produced the solution data.
When you run algorithms concurrently (ALGORITHM=CON), this term indicates which algorithm is the first to terminate.
-
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.
- FEASIBLE
-
The problem is feasible.
- 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 algorithm is used.
-
COMPLEMENTARITY
-
indicates the (absolute) complementarity. This term appears only if the interior point algorithm is used.
-
ITERATIONS
-
indicates the number of iterations taken to solve the problem. When the network simplex algorithm 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 ALGORITHM2= 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 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.
Copyright © SAS Institute Inc. All Rights Reserved.