The LP Procedure |
Output Data Sets |
The LP procedure can optionally produce five output data sets. These are the ACTIVEOUT=, PRIMALOUT=, DUALOUT=, TABLEAUOUT=, and MPSOUT= data sets. Each contains two variables that identify the particular problem in the input data set. These variables are
identifies the objective function 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:
contains the keywords LOWERBD, UPPERBD, and INTBEST for identifying the type of observation.
contains the problem number for the current observation.
contains the objective value of the parent problem that generated the current observation’s problem.
contains the sum of the integer infeasibilities of the current observation’s problem.
contains the data needed for CANSELECT=PROJECT when the branch-and-bound tree is read using the ACTIVEIN= option.
contains the data needed for CANSELECT=PSEUDOC when the branch-and-bound tree is read using the ACTIVEIN= option.
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:
identifies the variable name.
identifies the type of the variable as specified in the input data set. Artificial variables are labeled as type 'ARTIFCL'.
identifies whether the variable is basic, nonbasic, or at an upper bound in the current solution.
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.
identifies the value of the variable in the current solution or the current best integer feasible solution.
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.
contains the input price coefficient of the variable.
identifies the value of the reduced cost in the current solution. Example 5.3 in the section Examples: LP Procedure 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:
identifies the row or constraint name.
identifies the type of the row as specified in the input data set.
gives the value of the right-hand side on input.
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.
gives the value of the row, at optimality, excluding logical variables.
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.
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 . In addition to _OBJ_ID_ and _RHS_ID_, it contains the following variables:
gives the names of the basic variables in the solution.
gives the values of , where is the right-hand-side vector.
give the values in the tableau, namely .
The MPSOUT= data set contains problem data converted from a PROC LP format into an MPS-format SAS data set. The six fields, FIELD1 to FIELD6, in the MPSOUT= data set correspond to the six columns in MPS standard. For more information about the MPS-format SAS data set, see Chapter 16, The MPS-Format SAS Data Set.
Copyright © SAS Institute, Inc. All Rights Reserved.