# stockcycle.mod OLR2-AN-480-97 # AMPL coding: S. Leyffer, September 1999. # # Source: "A fast heuristic for minimizing total average cycle stock # subject to practical constraints", E.A. Silver & I. Moon, # JORS 50, 789-796, August 1999. Model uses SOS to express # discrete variables. # # Number of variables: 480 # Number of constraints: 97 # Objective nonlinear # Linear constraints param n := 48; # number of items param m := 9; # number of possible discrete reorder intervals param N := 100; # max total number of replenishments set nn := 1..n; set mm := 1..m; param Dv {nn}; # demand rate times unit cost of item i param Y {mm}; # set of possible number of orders var y {nn} >= Y[1], <= Y[m], integer; # number of orders per unit time var z {nn,mm} >= 0, <= 1, integer; # SOS1 to model discrete y minimize objective: sum{i in nn}( 1.5*Dv[i] / y[i] ); subject to capacity: sum{i in nn}( y[i] ) <= 3*N; defy{i in nn}: sum{j in mm}( z[i,j]*Y[j] ) = y[i]; SOS{i in nn}: sum{j in mm}( z[i,j] ) = 1; data; param: Y := 1 3 2 6 3 9 4 12 5 18 6 36 7 52 8 78 9 156; param: Dv := 1 20.04 2 21.72 3 37.92 4 54.12 5 61.8 6 81.24 7 94.2 8 119.4 9 171.6 10 208.8 11 415.27 12 470.23 13 1212 14 1393.2 15 1496.4 16 1600 17 1702.4 18 1714.5 19 1870.5 20 1977.8 21 2647.12 22 3143.82 23 4173 24 4347.78 25 4917 26 5048.3 27 5397.2 28 6692.4 29 6837.6 30 8003.1 31 8449.5 32 9152 33 13236.3 34 13970 35 15327.6 36 16368 37 19765 38 20470.3 39 23182.2 40 25026 41 31675.6 42 56734.2 43 69040.4 44 75192 45 97066.5 46 99803.2 47 105984 48 106465;