The MPS-Format SAS Data Set


BOUNDS Section (Optional)

The BOUNDS section specifies bounds for the columns.

  • Indicator record:

    Field1

    Field2

    Field3

    Field4

    Field5

    Field6

    BOUNDS

    Blank

    Blank

    .

    Blank

    .

  • Data record:

    Field1

    Field2

    Field3

    Field4

    Field5

    Field6

    Bound type

    Bound name

    Column name

    Bound for the column

    Blank

    Blank

Notes:

  1. If you do not specify any bound for a column, then the upper bound is $+\infty $ for a continuous variable, and 1 for an integer variable, that is specified in the COLUMNS section. The lower bound is 0 by default.

  2. General bound types include LO, UP, FX, FR, MI, and PL. Suppose the bound for a column identified in field3 is specified as b in field4. Table 17.2 explains the effects of different bound types.

    Table 17.2: Bound Type Rules

    Bound Type

    Ignore b

    Resultant Lower Bound

    Resultant Upper Bound

    LO

    No

    b

    Unspecified

    UP

    No

    Unspecified

    b

    FX

    No

    b

    b

    FR

    Yes

    $-\infty $

    $+\infty $

    MI

    Yes

    $-\infty $

    Unspecified

    PL

    Yes

    Unspecified

    $+\infty $


    If a bound (lower or upper) is not explicitly specified, then it takes the default values according to Note 1. There is one exception: if the upper bound is specified as a negative value ($b<0$) and the lower bound is unspecified, then the lower bound is set to $-\infty $.

    Mixed integer programming problems can specify integer variables in the BOUNDS section. Table 17.3 shows bound types defined for MIP.

    Table 17.3: Bound Type Rules

    Bound Type

    Ignore b

    Variable Type

    Resultant Lower Bound

    Resultant Upper Bound

    BV

    Yes

    Binary

    0

    1

    LI

    No

    Integer

    b

    $+\infty $

    UI

    No

    Integer

    Unspecified

    b


  3. The columns that have bounds do not need to be specified in the same order in which the columns were specified in the COLUMNS section. However, all columns in the BOUNDS section should be defined in the COLUMNS section.

  4. It is possible to specify multiple bound vectors, which are labeled by different bound names. Normally, the first bound vector encountered in the BOUNDS section is used, and all other bound vectors are discarded. All the elements of the selected bound vector must be specified before other bound vectors are introduced.

  5. When data records in a sequence have an identical value in field2, you can specify the value in the first occurrence and omit the value by giving a missing value in the other records. If the value in field2 of the first data record in the section is missing, it means the name of the first vector is the missing value.

  6. Within a particular BOUNDS vector, for a given column, if a bound (lower or upper) is explicitly specified by the bound type rules listed in Table 17.2, any other specification is considered to be an error.

  7. If the value in field1 is LO, UP, FX, LI, or UI, then a data record with a missing value in field4 is ignored.