Set ORIG /GARY, CLEV, PITT / ; Set DEST /FRA, DET, LAN, WIN, STL, FRE, LAF/ ; Set PRODUCT /bands, coils, plate/ ; * ORIG -> origins * DEST -> destinations * PROD -> products Table supply(PRODUCT,ORIG) GARY CLEV PITT bands 400 700 800 coils 800 1600 1800 plate 200 300 300 ; Table demand(PRODUCT,DEST) FRA DET LAN WIN STL FRE LAF bands 300 300 100 75 650 225 250 coils 500 750 400 250 950 850 500 plate 100 100 0 50 200 100 250 ; *supply -> amounts available at origins *demand -> amounts required at destinations Parameter limit(ORIG,DEST) ; limit(ORIG,DEST) = 625 ; Table a1(ORIG,DEST) FRA DET LAN WIN STL FRE LAF GARY 30 10 8 10 11 71 6 CLEV 22 7 10 7 21 82 13 PITT 19 11 12 10 25 83 15 Table a2(ORIG,dest) FRA DET LAN WIN STL FRE LAF GARY 39 14 11 14 16 82 8 CLEV 27 9 12 9 26 95 17 PITT 24 14 17 13 28 99 20 Table a3(ORIG,dest) FRA DET LAN WIN STL FRE LAF GARY 41 15 12 16 17 86 8 CLEV 29 9 13 9 28 99 18 PITT 26 14 17 13 31 104 20 ; Parameter Cost(ORIG,DEST,PRODUCT) ; * cost -> shipment costs per unit Cost(ORIG,DEST,'bands') = a1(ORIG,dest) ; Cost(ORIG,DEST,'coils') = a2(ORIG,dest) ; Cost(ORIG,DEST,'plate') = a3(ORIG,dest) ; Positive Variable Trans(ORIG,DEST,PRODUCT) ; * units to be shipped Variable total_cost ; Equation Eq_check(PRODUCT), Eq_Supply(ORIG,PRODUCT), Eq_Demand(DEST,PRODUCT), Eq_Multi(ORIG,DEST), Def_obj ; Eq_check(PRODUCT).. sum{ORIG, supply[PRODUCT,ORIG] } =e= sum {DEST, demand[PRODUCT,DEST]} ; Eq_Supply(ORIG,PRODUCT).. sum {DEST, Trans[ORIG,DEST,PRODUCT]} =e= supply[PRODUCT,ORIG] ; Eq_Demand(DEST,PRODUCT).. sum {ORIG, Trans[ORIG,DEST,PRODUCT] } =e= demand[PRODUCT,DEST] ; Eq_Multi(ORIG,DEST).. sum{PRODUCT, Trans[ORIG,DEST,PRODUCT]} =l= limit[ORIG,DEST] ; Def_obj.. total_cost =e= sum{(ORIG,DEST,PRODUCT), cost[ORIG,DEST,PRODUCT] * Trans[ORIG,DEST,PRODUCT]} ; Model multi /all/; Solve multi using lp minimizing total_cost ; Display total_cost.l