The OPTMILP Procedure

Data Input and Output

This subsection describes the PRIMALIN= data set required to warm start PROC OPTMILP, in addition to the PRIMALOUT= and DUALOUT= data sets.

Definitions of Variables in the PRIMALIN= Data Set

The PRIMALIN= data set has two required variables defined as follows:

_VAR_

specifies the variable (column) names of the problem. The values should match the column names in the DATA= data set for the current problem.

_VALUE_

specifies the solution value for each variable in the problem.

Note: If PROC OPTMILP produces a feasible solution, the primal output data set from that run can be used as the PRIMALIN= data set for a subsequent run, provided that the variable names are the same. If this input solution is not feasible for the subsequent run, the solver automatically tries to repair it. See the section Warm Start for more details.

Definitions of Variables in the PRIMALOUT= Data Set

PROC OPTMILP stores the current best integer feasible solution of the problem in the data set specified by the PRIMALOUT= option. The variables in this data set are defined as follows:

_OBJ_ID_

specifies the identifier of the objective function.

_RHS_ID_

specifies the identifier of the right-hand side.

_VAR_

specifies the variable (column) names.

_TYPE_

specifies the variable type. _TYPE_ can take one of the following values:

C

continuous variable

I

general integer variable

B

binary variable (0 or 1)

_OBJCOEF_

specifies the coefficient of the variable in the objective function.

_LBOUND_

specifies the lower bound on the variable.

_UBOUND_

specifies the upper bound on the variable.

_VALUE_

specifies the value of the variable in the current solution.

Definitions of the DUALOUT= Data Set Variables

The DUALOUT= data set contains the constraint activities that correspond to the primal solution in the PRIMALOUT= data set. Information about additional objective rows of the MILP problem is not included. The variables in this data set are defined as follows:

_OBJ_ID_

specifies the identifier of the objective function from the input data set.

_RHS_ID_

specifies the identifier of the right-hand side from the input data set.

_ROW_

specifies the constraint (row) name.

_TYPE_

specifies the constraint type. _TYPE_ can take one of the following values:

L

"less than or equal" constraint

E

equality constraint

G

"greater than or equal" constraint

R

ranged constraint (both "less than or equal" and "greater than or equal")

_RHS_

specifies the value of the right-hand side of the constraint. It takes a missing value for a ranged constraint.

_L_RHS_

specifies the lower bound of a ranged constraint. It takes a missing value for a non-ranged constraint.

_U_RHS_

specifies the upper bound of a ranged constraint. It takes a missing value for a non-ranged constraint.

_ACTIVITY_

specifies the activity of a constraint for a given primal solution. In other words, the value of _ACTIVITY_ for the ith constraint is equal to $\mathbf{a}_ i^{T}\mathbf{x}$, where $\mathbf{a}_ i$ refers to the ith row of the constraint matrix and $\mathbf{x}$ denotes the vector of the current primal solution.