The Solution
The formulation in its entirety and a selected portion of the solution appear below. The formulation file may be found in file PRODMIX.
MODEL:
SETS:
PLANES:
PROFIT, SETUP, QUANTITY, BUILD;
RESOURCES: AVAILABLE;
RXP( RESOURCES, PLANES): USAGE;
ENDSETS
DATA:
PLANES PROFIT SETUP =
ROCKET 30 35
METEOR 45 20
STREAK 24 60
COMET 26 70
JET 24 75
BIPLANE 30 30;
RESOURCES AVAILABLE =
STEEL,800 COPPER,1160 PLASTIC,1780
RUBBER,1050 GLASS,1360 PAINT,1240;
USAGE = 1 4 0 4 2 0
4 5 3 0 1 0
0 3 8 0 1 0
2 0 1 2 1 5
2 4 2 2 2 4
1 4 1 4 3 4;
ENDDATA
MAX = @SUM( PLANES:
PROFIT * QUANTITY - SETUP * BUILD);
@FOR( RESOURCES( I):
@SUM( PLANES( J):
USAGE( I, J) * QUANTITY( J)) <=
AVAILABLE( I);
);
@FOR( PLANES:
QUANTITY <= 400 * BUILD;
@BIN( BUILD);
);
@FOR( PLANES: @GIN( QUANTITY));
END
Model: PRODMIX
Global optimal solution found.
Objective value: 14764.00
Objective bound: 14764.00
Infeasibilities: 0.000000
Extended solver steps: 18
Total solver iterations: 332
Elapsed runtime seconds: 0.11
Variable Value Reduced Cost
QUANTITY( ROCKET) 96.00000 -30.00000
QUANTITY( METEOR) 0.000000 -45.00000
QUANTITY( STREAK) 195.0000 -24.00000
QUANTITY( COMET) 0.000000 -26.00000
QUANTITY( JET) 191.0000 -24.00000
QUANTITY( BIPLANE) 94.00000 -30.00000
BUILD( ROCKET) 1.000000 35.00000
BUILD( METEOR) 0.000000 20.00000
BUILD( STREAK) 1.000000 60.00000
BUILD( COMET) 0.000000 70.00000
BUILD( JET) 1.000000 75.00000
BUILD( BIPLANE) 1.000000 30.00000
Solution to PRODMIX
Surprisingly, we see from the solution that we build none of the "profitable" Meteors. Can you determine why this is so? On the other hand, the Rocket, Streak, Jet and Biplane are produced, and, as we anticipated, the BUILD variable for each of these planes has been correctly set to 1.