Definition at line 16 of file warehouse.py.
21 $SetDDList warehouse store fixed disaggregate // acceptable defines
22 $if not set warehouse $set warehouse 10
23 $if not set store $set store 50
24 $if not set fixed $set fixed 20
25 $if not set disaggregate $set disaggregate 1 // indicator for tighter bigM constraint
26 $ife %store%<=%warehouse% $abort Increase number of stores (>%warehouse)
28 set res respond codes / 0 Normal
34 Sets Warehouse /w1*w%warehouse% /
36 Alias (Warehouse,w), (Store,s);
38 fixed fixed cost for opening a warehouse / %fixed% /
41 supplyCost(Store,Warehouse);
43 $eval storeDIVwarehouse trunc(card(store)/card(warehouse))
44 capacity(w) = %storeDIVwarehouse% + mod(ord(w),%storeDIVwarehouse%);
45 supplyCost(s,w) = 1+mod(ord(s)+10*ord(w), 100);
49 supply(Store,Warehouse)
51 Binary variables open, supply;
58 defobj.. obj =e= sum(w, fixed*open(w)) + sum((w,s), supplyCost(s,w)*supply(s,w));
60 oneWarehouse(s).. sum(w, supply(s,w)) =e= 1;
62 defopen(w).. sum(s, supply(s,w)) =l= open(w)*capacity(w);
64 $ifthen %disaggregate%==1
67 defopen2(s,w).. supply(s,w) =l= open(w);
71 solve distrib min obj using mip;
73 $macro setResult(n) option clear=ares; ares(n) = yes;
74 if (distrib.modelstat=%ModelStat.LicensingProblem% or
75 distrib.solvestat=%Solvestat.LicensingProblems%,
77 abort 'License Error';
79 if (distrib.solvestat<>%SolveStat.NormalCompletion% or
80 distrib.modelstat<>%ModelStat.Optimal% and
81 distrib.modelstat<>%ModelStat.IntegerSolution%,
Referenced by solve_warehouse().