Macro Variable _OROPTMODEL_
The Quadratic Programming Solver
Macro Variable _OROPTMODEL_
The OPTMODEL procedure always creates and initializes a SAS macro called _OROPTMODEL_. This variable contains a character
string. After each PROC OROPTMODEL run, you can examine this macro by specifying %put &_OROPTMODEL_;
and check the execution of the most recently invoked solver from the value of the macro variable. The various terms of the
variable after the QP solver is called are interpreted as follows.
-
STATUS
-
indicates the solver status at termination. It can take one of the following values:
- OK
-
The solver 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.
- SEMANTIC_ERROR
-
An evaluation error, such as an invalid operand type, occurred.
- ERROR
-
The status cannot be classified into any of the preceding categories.
-
ALGORITHM
-
indicates the algorithm that produced the solution data in the macro variable. This term only appears when STATUS=OK. It can
take the following value:
- IP
-
The interior point algorithm produced the solution data.
-
SOLUTION_STATUS
-
indicates the solution status at termination. It can take one of the following values:
- OPTIMAL
-
The solution is optimal.
- CONDITIONAL_OPTIMAL
-
The optimality of the solution cannot be proven.
- INFEASIBLE
-
The problem is infeasible.
- UNBOUNDED
-
The problem is unbounded.
- INFEASIBLE_OR_UNBOUNDED
-
The problem is infeasible or unbounded.
- BAD_PROBLEM_TYPE
-
The problem type is unsupported by the solver.
- ITERATION_LIMIT_REACHED
-
The maximum allowable number of iterations was reached.
- TIME_LIMIT_REACHED
-
The solver reached its execution time limit.
- FUNCTION_CALL_LIMIT_REACHED
-
The solver reached its limit on function evaluations.
- INTERRUPTED
-
The solver was interrupted externally.
- 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 the (relative) infeasibility of the primal constraints at the solution. See the section Interior Point Algorithm: Overview for details.
-
DUAL_INFEASIBILITY
-
indicates the (relative) infeasibility of the dual constraints at the solution. See the section Interior Point Algorithm: Overview for details.
-
BOUND_INFEASIBILITY
-
indicates the (relative) violation by the solution of the lower or upper bounds (or both). See the section Interior Point Algorithm: Overview for details.
-
DUALITY_GAP
-
indicates the (relative) duality gap. See the section Interior Point Algorithm: Overview for details.
-
COMPLEMENTARITY
-
indicates the (absolute) complementarity at the solution. See the section Interior Point Algorithm: Overview for details.
-
ITERATIONS
-
indicates the number of iterations required to solve the problem.
-
PRESOLVE_TIME
-
indicates the time taken for preprocessing (seconds).
-
SOLUTION_TIME
-
indicates the time (in seconds) taken to solve the problem, including preprocessing time.
Note: The time that is reported in PRESOLVE_TIME and SOLUTION_TIME is either CPU time or real time. The type is determined by
the TIMETYPE= option.
Copyright © SAS Institute Inc. All Rights Reserved.