Example 16.1 MPS-Format Data Set for a Product Mix Problem

Consider a simple product mix problem where a furniture company tries to find an optimal product mix of four items: a desk ($x_1$), a chair ($x_2$), a cabinet ($x_3$), and a bookcase ($x_4$). Each item is processed in a stamping department (STAMP), an assembly department (ASSEMB), and a finishing department (FINISH). The time each item requires in each department is given in the input data. Because of resource limitations, each department has an upper limit on the time available for processing. Furthermore, because of labor constraints, the assembly department must work at least 300 hours. Finally, marketing tells you not to make more than 75 chairs, to make at least 50 bookcases, and to find the range over which the selling price of a bookcase can vary without changing the optimal product mix.

This problem can be expressed as the following linear program:

\[  \begin{array}{rrcrc} \mbox{max} &  95x_1 + 41x_2 + 84x_3 + 76x_4& & & \\ \mbox{ subject to } &  3x_1 + 1.5x_2 + 2x_3 + 2x_4 & \leq &  800 &  (\mr {STAMP}) \\ &  10x_1 + 6x_2 + 8x_3 + 7x_4 &  \leq &  1200 &  (\mr {ASSEMB})\\ &  10x_1 + 6x_2 + 8x_3 + 7x_4 &  \geq &  300 &  (\mr {ASSEMB})\\ &  10x_1 + 8x_2 + 8x_3 + 7x_4 &  \leq &  800 &  (\mr {FINISH})\\ &  x_2 &  \leq &  75 & \\ &  x_4 &  \geq &  50 & \\ &  x_ i &  \geq &  0 &  i = 1, 2, 3 \end{array}  \]

The following DATA step saves the problem specification as an MPS-format SAS data set:

data prodmix;
   infile datalines;   
   input field1 $ field2 $ field3$ field4 field5 $ field6;
   datalines;
NAME          .         PROD_MIX        .        .             .
ROWS          .            .            .        .             .
MAX         PROFIT         .            .        .             .
L           STAMP          .            .        .             .
L           ASSEMB         .            .        .             .
L           FINISH         .            .        .             .
COLUMNS       .            .            .        .             .
.           DESK        STAMP          3.0    ASSEMB          10
.           DESK        FINISH        10.0    PROFIT          95
.           CHAIR       STAMP          1.5    ASSEMB           6
.           CHAIR       FINISH         8.0    PROFIT          41
.           CABINET     STAMP          2.0    ASSEMB           8
.           CABINET     FINISH         8.0    PROFIT          84
.           BOOKCSE     STAMP          2.0    ASSEMB           7
.           BOOKCSE     FINISH         7.0    PROFIT          76
RHS           .            .            .        .             .
.           TIME        STAMP        800.0    ASSEMB        1200
.           TIME        FINISH       800.0       .             .
RANGES        .            .            .        .             .
.           T1          ASSEMB       900.0       .             .
BOUNDS        .            .            .        .             .
UP          BND         CHAIR         75.0       .             .
LO          BND         BOOKCSE       50.0       .             .
ENDATA        .            .            .        .             .
;