Macro Variable _OROPTMODEL_
The Nonlinear Programming Solver
Macro Variable _OROPTMODEL_
The OPTMODEL procedure always creates and initializes a SAS macro variable called _OROPTMODEL_, which contains a character
string. After each PROC OPTMODEL run, you can examine this macro variable by specifying %put &_OROPTMODEL_
; and check the execution of the most recently invoked solver from the value of the macro variable. After the NLP solver is
called, 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 solver terminated normally.
- SYNTAX_ERROR
-
The use of syntax is incorrect.
- DATA_ERROR
-
The input data are inconsistent.
- OUT_OF_MEMORY
-
Insufficient memory was allocated to the procedure.
- IO_ERROR
-
A problem in reading or writing of data has occurred.
- SEMANTIC_ERROR
-
An evaluation error, such as an invalid operand type, has 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 one of the following values:
- IP
-
The interior point algorithm produced the solution data.
- AS
-
The active-set algorithm produced the solution data.
When running algorithms concurrently (ALGORITHM=CONCURRENT), this term indicates which algorithm was 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 optimality of the solution cannot be proven.
- BEST_FEASIBLE
-
The solution returned is the best feasible solution. This solution status indicates that the algorithm has converged to a
local optimum but a feasible (not locally optimal) solution with a better objective value has been found and hence is returned.
- INFEASIBLE
-
The problem is infeasible.
- UNBOUNDED
-
The problem might be unbounded.
- INFEASIBLE_OR_UNBOUNDED
-
The problem is infeasible or unbounded.
- BAD_PROBLEM_TYPE
-
The problem type is not supported by the solver.
- ITERATION_LIMIT_REACHED
-
The maximum allowable number of iterations has been 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 that is obtained by the solver at termination.
-
NUMSTARTS
-
indicates the number of starting points. This term appears only in multistart mode.
-
SAMPLE_POINTS
-
indicates the number of points that are evaluated in the sampling phase. This term appears only in multistart mode.
-
DISTINCT_OPTIMA
-
indicates the number of distinct local optima that the solver finds. This term appears only in multistart mode.
-
SEED
-
indicates the seed value that is used to initialize the solver. This term appears only in multistart mode.
-
INFEASIBILITY
-
indicates the level of infeasibility of the constraints at the solution.
-
OPTIMALITY_ERROR
-
indicates the norm of the optimality conditions at the solution. See the section Solver Termination Criterion for details.
-
ITERATIONS
-
indicates the number of iterations required to solve the problem.
-
PRESOLVE_TIME
-
indicates the real time taken for preprocessing (seconds).
-
SOLUTION_TIME
-
indicates the real time taken by the solver to perform iterations for solving the problem (seconds).
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.