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.
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.
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.
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.
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 .
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.