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.

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.

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).