Tank Loading
{ Exmpl9.3-1_TankLoading.mpl }
{ Applications of Optimization with Xpress-MP }
{ Chapter 9.3, Tank Loading, Size: 12x35, Page 175 }
#define minUse
!#define minNum
TITLE
TankLoading;
INDEX
tank := 1..9;
liq := (benzol,butanol,propanol,styrene,thf);
Tinit[liq,tank] := ((benzol,2),(thf,7));
DATA
Cap[tank] := (500,400,400,600,600,900,800,800,800);
Qinit[tank] := (0,100,0,0,0,0,300,0,0);
Arr[liq] := (1200,700,1000,450,1200);
Rest[liq] := FORMULA(Arr - SUM(tank IN Tinit: Cap - Qinit));
VARIABLE
Load[liq,tank] WHERE (Qinit = 0);
MODEL
#ifdef minUse
MIN TankUse = SUM(liq,tank: Cap * Load);
#endif
#ifdef minNum
MIN TankNum = SUM(liq,tank: Load);
#endif
SUBJECT TO
DonotMixLiq[tank] -> NOMX:
SUM(liq: Load) <= 1;
LoadEmptyTanks[liq] -> EMP:
SUM(tank: Cap * Load) >= Rest;
BINARY
Load;
END
Back To Top
|
Maximal Home Page
|
List of Models |
Previous Page
|
Next Page