The LP procedure defines a macro variable named _ORLP_. This variable contains a character string that indicates the status of the procedure. It is set whenever the user gets control, at breakpoints, and at procedure termination. The form of the _ORLP_ character string is STATUS= PHASE= OBJECTIVE= P_FEAS= D_FEAS= INT_ITER= INT_FEAS= ACTIVE= INT_BEST= PHASE1_ITER= PHASE2_ITER= PHASE3_ITER=. The terms are interpreted as follows:
STATUS= |
the status of the current solution |
PHASE= |
the phase the procedure is in (1, 2, or 3) |
OBJECTIVE= |
the current objective value |
P_FEAS= |
whether the current solution is primal feasible |
D_FEAS= |
whether the current solution is dual feasible |
INT_ITER= |
the number of integer iterations performed |
INT_FEAS= |
the number of integer feasible solutions found |
ACTIVE= |
the number of active nodes in the current branch-and-bound tree |
INT_BEST= |
the best integer objective value found |
PHASE1_ITER= |
the number of iterations performed in phase 1 |
PHASE2_ITER= |
the number of iterations performed in phase 2 |
PHASE3_ITER= |
the number of iterations performed in phase 3 |
Table 4.5 shows the possible values for the nonnumeric terms in the string.
Table 4.5: Possible Values for Nonnumeric Terms
STATUS= |
P_FEAS= |
D_FEAS= |
SUCCESSFUL |
YES |
YES |
UNBOUNDED |
NO |
NO |
INFEASIBLE |
||
MAX_TIME |
||
MAX_ITER |
||
PIVOT |
||
BREAK |
||
INT_FEASIBLE |
||
INT_INFEASIBLE |
||
INT_MAX_ITER |
||
PAUSE |
||
FEASIBLEPAUSE |
||
IPAUSE |
||
PROXIMITYPAUSE |
||
ACTIVE |
||
RELAXED |
||
FATHOMED |
||
IPIVOT |
||
UNSTABLE |
||
SINGULAR |
||
MEMORY_ERROR |
||
IO_ERROR |
||
SYNTAX_ERROR |
||
SEMANTIC_ERROR |
||
BADDATA_ERROR |
||
UNKNOWN_ERROR |
This information can be used when PROC LP is one step in a larger program that needs to identify how the LP procedure terminated. Because _ORLP_ is a standard SAS macro variable, it can be used in the ways that all macro variables can be used (see the SAS Guide to Macro Processing).