The LP Procedure

Macro Variable _ORLP_

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