Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
The LP Procedure

Output Data Sets

The LP procedure can optionally produce four output data sets. These are the ACTIVEOUT, PRIMALOUT, DUALOUT, and TABLEAUOUT data sets. Each contains two variables that identify the particular problem in the input data set. These variables are
_OBJ_ID_
identifies the objective function ID.
_RHS_ID_
identifies the right-hand-side variable.
Additionally, each data set contains other variables, which are discussed below.

ACTIVEOUT= Data Set

The ACTIVEOUT= data set contains a representation of the current active branch and bound tree. You can use this data set to initialize the branch and bound tree to continue iterations on an incompletely solved problem. Each active node in the tree generates two observations in this data set. The first is a LOWERBD observation that is used to reconstruct the lower-bound constraints on the currently described active node. The second is an UPPERBD observation that is used to reconstruct the upper-bound constraints on the currently described active node. In addition to these, an observation that describes the current best integer solution is included. The data set contains the following variables:

_STATUS_
contains the keywords LOWERBD, UPPERBD, and INTBEST for identifying the type of observation.
_PROB_
contains the problem number for the current observation.
_OBJECT_
contains the objective value of the parent problem that generated the current observation's problem.
_SINFEA_
contains the sum of the integer infeasibilities of the current observation's problem.
_PROJEC_
contains the data needed for CANSELECT=PROJECT when the branch and bound tree is read using the ACTIVEIN= option.
_PSEUDO_
contains the data needed for CANSELECT=PSEUDOC when the branch and bound tree is read using the ACTIVEIN= option.
INTEGER VARIABLES
integer constrained structural variables are also included in the ACTIVEOUT= data set. For each observation, these variables contain values for defining the active node in the branch and bound tree.

PRIMALOUT= Data Set

The PRIMALOUT= data set contains the current primal solution. If the problem has integer-constrained variables, the PRIMALOUT= data set contains the current best integer feasible solution. If none have been found, the PRIMALOUT= data set contains the relaxed solution. In addition to _OBJ_ID_ and _RHS_ID_, the data set contains the following variables:
_VAR_
identifies the variable name.
_TYPE_
identifies the type of the variable as specified in the input data set. Artificial variables are labeled as type ARTIFCL.
_STATUS_
identifies whether the variable is basic, nonbasic, or at an upper bound in the current solution.
_LBOUND_
contains the input lower bound on the variable unless the variable is integer-constrained and an integer solution is given. In this case, _LBOUND_ contains the lower bound on the variable needed to realize the integer solution on subsequent calls to PROC LP when using the PRIMALIN= option.
_VALUE_
identifies the value of the variable in the current solution or the current best integer feasible solution.
_UBOUND_
contains the input upper bound on the variable unless the variable is integer-constrained and an integer solution is given. In this case, _UBOUND_ contains the upper bound on the variable needed to realize the integer solution on subsequent calls to PROC LP when using the PRIMALIN= option.
_PRICE_
contains the input price coefficient of the variable.
_R_COST_
identifies the value of the reduced cost in the current solution. Example 3.3 in the "Examples" section shows a typical PRIMALOUT= data set. Note that it is necessary to include the information on objective function and right-hand side in order to distinguish problems in multiple problem data sets.

DUALOUT= Data Set

The DUALOUT= data set contains the dual solution for the current solution. If the problem has integer-constrained variables, the DUALOUT= data set contains the dual for the current best integer solution, if any. Otherwise it contains the dual for the relaxed solution. In addition to _OBJ_ID_ and _RHS_ID_, it contains the following variables:

_ROW_ID_
identifies the row or constraint name.
_TYPE_
identifies the type of the row as specified in the input data set.
_RHS_
gives the value of the right-hand-side on input.
_L_RHS_
gives the lower bound for the row evaluated from the input right-hand-side value, the TYPE of the row, and the value of the RANGE variable for the row.
_VALUE_
gives the value of the row, at optimality, excluding logical variables.
_U_RHS_
gives the upper bound for the row evaluated from the input right-hand-side value, the TYPE of the row, and the value of the RANGE variable for the row.
_DUAL_
gives the value of the dual variable associated with the row.

TABLEAUOUT= Data Set

The TABLEAUOUT= data set contains the current tableau. Each observation, except for the first, corresponds to a basic variable in the solution. The observation labeled R_COSTS contains the reduced costs cTN - cTB B-1N. In addition to _OBJ_ID_ and _RHS_ID_, it contains the following variables:

_BASIC_
gives the names of the basic variables in the solution.
INVB_R
gives the values of B-1r , where r is the right-hand-side vector.
STRUCTURAL VARIABLES
the values in the tableau, namely B-1A .

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.