Multiperiod Steel Production
{ Exmpl6.3-1_MultiPeriod.mpl }
{ AMPL A Modeling Language for Mathematical Programming, 2nd Edition }
{ Chapter 6.5, Multi-period Production Planning, Size: 14x38 Page 101 }
TITLE
MultiPeriod;
INDEX
t := 0..4;
prod := (bands,coils);
areas := (east,north,west,exporta);
area[prod,areas] := ((bands,east),(bands,north),(coils,east),(coils,west),(coils,exporta));
DATA
Avail[t>0] := (40,20,32,40);
Rate[prod] := (200,140);
InitInv[prod] := (10, 0);
Prodcost[prod] := (10,11);
InvCost[prod] := (2.5, 3);
Revenue[prod,areas,t>0] := ( 25, 26, 27, 27,
26.5,27.5, 28,28.5,
0, 0, 0, 0,
0, 0, 0, 0,
30, 35, 37, 39,
0, 0, 0, 0,
29, 32, 33, 35,
25, 25, 25, 28);
Market[prod,areas,t>0] := (2000,2000,1500,2000,
4000,4000,2500,4500,
0, 0, 0, 0,
0, 0, 0, 0,
1000, 800,1000,1100,
0, 0, 0, 0,
2000,1200,2000,2300,
1000, 500, 500, 800);
VARIABLE
Make[prod,t>0];
Inv[prod,t];
Sell[prod,areas IN area,t>0];
MODEL
MAX TotalProfit = SUM(prod,t>0: SUM(areas in area: Revenue * Sell - Prodcost * Make - InvCost * Inv));
SUBJECT TO
Timing[t>0] -> TIM:
SUM(prod: 1 / Rate * Make) <= Avail;
InitInventoryBal[prod] -> IBAL:
Inv[t:=0] = InitInv;
Balance[prod,t>0] -> BAL:
Make + Inv[t-1] = SUM(areas IN area: Sell) + Inv;
BOUNDS
Sell <= Market;
END
Back To Top
|
Maximal Home Page
|
List of Models |
Previous Page
|
Next Page