alpar@1: # DIST, a product distribution model alpar@1: # alpar@1: # References: alpar@1: # Robert Fourer, David M. Gay and Brian W. Kernighan, "A Modeling Language alpar@1: # for Mathematical Programming." Management Science 36 (1990) 519-554. alpar@1: alpar@1: ### SHIPPING SETS AND PARAMETERS ### alpar@1: alpar@1: set whse 'warehouses'; # Locations from which demand is satisfied alpar@1: alpar@1: set dctr 'distribution centers' within whse; alpar@1: alpar@1: # Locations from which product may be shipped alpar@1: alpar@1: param sc 'shipping cost' {dctr,whse} >= 0; alpar@1: alpar@1: # Shipping costs, to whse from dctr, in $ / 100 lb alpar@1: alpar@1: param huge 'largest shipping cost' > 0; alpar@1: alpar@1: # Largest cost allowed for a usable shipping route alpar@1: alpar@1: param msr 'minimum size restriction' {dctr,whse} logical; alpar@1: alpar@1: # True indicates a minimum-size restriction on alpar@1: # direct shipments using this dctr --> whse route alpar@1: alpar@1: param dsr 'direct shipment requirement' {dctr} >= 0; alpar@1: alpar@1: # Minimum total demand, in pallets, needed to alpar@1: # allow shipment on routes subject to the alpar@1: # minimum size restriction alpar@1: alpar@1: ### PLANT SETS AND PARAMETERS ### alpar@1: alpar@1: set fact 'factories' within dctr; alpar@1: alpar@1: # Locations where product is manufactured alpar@1: alpar@1: param rtmin 'regular-time total minimum' >= 0; alpar@1: alpar@1: # Lower limit on (average) total regular-time alpar@1: # crews employed at all factories alpar@1: alpar@1: param rtmax 'regular-time total maximum' >= rtmin; alpar@1: alpar@1: # Upper limit on (average) total regular-time alpar@1: # crews employed at all factories alpar@1: alpar@1: param otmin 'overtime total minimum' >= 0; alpar@1: alpar@1: # Lower limit on total overtime hours at all factories alpar@1: alpar@1: param otmax 'overtime total maximum' >= otmin; alpar@1: alpar@1: # Upper limit on total overtime hours at all factories alpar@1: alpar@1: param rmin 'regular-time minimums' {fact} >= 0; alpar@1: alpar@1: # Lower limits on (average) regular-time crews alpar@1: alpar@1: param rmax 'regular-time maximums' {f in fact} >= rmin[f]; alpar@1: alpar@1: # Upper limits on (average) regular-time crews alpar@1: alpar@1: param omin 'overtime minimums' {fact} >= 0; alpar@1: alpar@1: # Lower limits on overtime hours alpar@1: alpar@1: param omax 'overtime maximums' {f in fact} >= omin[f]; alpar@1: alpar@1: # Upper limits on overtime hours alpar@1: alpar@1: param hd 'hours per day' {fact} >= 0; alpar@1: alpar@1: # Regular-time hours per working day alpar@1: alpar@1: param dp 'days in period' {fact} > 0; alpar@1: alpar@1: # Working days in the current planning period alpar@1: alpar@1: ### PRODUCT SETS AND PARAMETERS ### alpar@1: alpar@1: set prd 'products'; # Elements of the product group alpar@1: alpar@1: param wt 'weight' {prd} > 0; alpar@1: alpar@1: # Weight in 100 lb / 1000 cases alpar@1: alpar@1: param cpp 'cases per pallet' {prd} > 0; alpar@1: alpar@1: # Cases of product per shipping pallet alpar@1: alpar@1: param tc 'transshipment cost' {prd} >= 0; alpar@1: alpar@1: # Transshipment cost in $ / 1000 cases alpar@1: alpar@1: param pt 'production time' {prd,fact} >= 0; alpar@1: alpar@1: # Crew-hours to produce 1000 cases alpar@1: alpar@1: param rpc 'regular-time production cost' {prd,fact} >= 0; alpar@1: alpar@1: # Cost of production on regular time, alpar@1: # in $ / 1000 cases alpar@1: alpar@1: param opc 'overtime production cost' {prd,fact} >= 0; alpar@1: alpar@1: # Cost of production on overtime, in $ / 1000 cases alpar@1: alpar@1: ### DEMAND SETS AND PARAMETERS ### alpar@1: alpar@1: param dt 'total demand' {prd} >= 0; alpar@1: alpar@1: # Total demands for products, in 1000s alpar@1: alpar@1: param ds 'demand shares' {prd,whse} >= 0.0, <= 1.0; alpar@1: alpar@1: # Historical demand data, from which each alpar@1: # warehouse's share of total demand is deduced alpar@1: alpar@1: param dstot {p in prd} := sum {w in whse} ds[p,w]; alpar@1: alpar@1: # Total of demand shares; should be 1, but often isn't alpar@1: alpar@1: param dem 'demand' {p in prd, w in whse} := dt[p] * ds[p,w] / dstot[p]; alpar@1: alpar@1: # Projected demands to be satisfied, in 1000s alpar@1: alpar@1: set rt 'shipping routes available' := alpar@1: alpar@1: {d in dctr, w in whse: alpar@1: d <> w and sc[d,w] < huge and alpar@1: (w in dctr or sum {p in prd} dem[p,w] > 0) and alpar@1: not (msr[d,w] and sum {p in prd} 1000*dem[p,w]/cpp[p] < dsr[d]) }; alpar@1: alpar@1: # List of ordered pairs that represent routes alpar@1: # on which shipments are allowed alpar@1: alpar@1: ### VARIABLES ### alpar@1: alpar@1: var Rprd 'regular-time production' {prd,fact} >= 0; alpar@1: alpar@1: # Regular-time production of each product alpar@1: # at each factory, in 1000s of cases alpar@1: alpar@1: var Oprd 'overtime production' {prd,fact} >= 0; alpar@1: alpar@1: # Overtime production of each product alpar@1: # at each factory, in 1000s of cases alpar@1: alpar@1: var Ship 'shipments' {prd,rt} >= 0; alpar@1: alpar@1: # Shipments of each product on each allowed route, alpar@1: # in 1000s of cases alpar@1: alpar@1: var Trans 'transshipments' {prd,dctr} >= 0; alpar@1: alpar@1: # Transshipments of each product at each alpar@1: # distribution center, in 1000s of cases alpar@1: alpar@1: ### OBJECTIVE ### alpar@1: alpar@1: minimize cost: sum {p in prd, f in fact} rpc[p,f] * Rprd[p,f] + alpar@1: sum {p in prd, f in fact} opc[p,f] * Oprd[p,f] + alpar@1: sum {p in prd, (d,w) in rt} sc[d,w] * wt[p] * Ship[p,d,w] + alpar@1: sum {p in prd, d in dctr} tc[p] * Trans[p,d]; alpar@1: alpar@1: # Total cost: regular production, overtime alpar@1: # production, shipping, and transshipment alpar@1: alpar@1: ### CONSTRAINTS ### alpar@1: alpar@1: rtlim 'regular-time total limits': alpar@1: alpar@1: rtmin <= sum {p in prd, f in fact} alpar@1: (pt[p,f] * Rprd[p,f]) / (dp[f] * hd[f]) <= rtmax; alpar@1: alpar@1: # Total crews must lie between limits alpar@1: alpar@1: otlim 'overtime total limits': alpar@1: alpar@1: otmin <= sum {p in prd, f in fact} pt[p,f] * Oprd[p,f] <= otmax; alpar@1: alpar@1: # Total overtime must lie between limits alpar@1: alpar@1: rlim 'regular-time limits' {f in fact}: alpar@1: alpar@1: rmin[f] <= sum {p in prd} alpar@1: (pt[p,f] * Rprd[p,f]) / (dp[f] * hd[f]) <= rmax[f]; alpar@1: alpar@1: # Crews at each factory must lie between limits alpar@1: alpar@1: olim 'overtime limits' {f in fact}: alpar@1: alpar@1: omin[f] <= sum {p in prd} pt[p,f] * Oprd[p,f] <= omax[f]; alpar@1: alpar@1: # Overtime at each factory must lie between limits alpar@1: alpar@1: noRprd 'no regular production' {p in prd, f in fact: rpc[p,f] = 0}: alpar@1: alpar@1: Rprd[p,f] = 0; alpar@1: alpar@1: noOprd 'no overtime production' {p in prd, f in fact: opc[p,f] = 0}: alpar@1: alpar@1: Oprd[p,f] = 0; # Do not produce where specified cost is zero alpar@1: alpar@1: bal 'material balance' {p in prd, w in whse}: alpar@1: alpar@1: sum {(v,w) in rt} alpar@1: Ship [p,v,w] + (if w in fact then Rprd[p,w] + Oprd[p,w]) = alpar@1: alpar@1: dem[p,w] + (if w in dctr then sum {(w,v) in rt} Ship[p,w,v]); alpar@1: alpar@1: # Demand is satisfied by shipment into warehouse alpar@1: # plus production (if it is a factory) alpar@1: # minus shipment out (if it is a distn. center) alpar@1: alpar@1: trdef 'transshipment definition' {p in prd, d in dctr}: alpar@1: alpar@1: Trans[p,d] >= sum {(d,w) in rt} Ship [p,d,w] - alpar@1: (if d in fact then Rprd[p,d] + Oprd[p,d]); alpar@1: alpar@1: # Transshipment at a distribution center is alpar@1: # shipments out less production (if any) alpar@1: alpar@1: ### DATA -- 3 PRODUCTS ### alpar@1: alpar@1: data; alpar@1: alpar@1: set prd := 18REG 24REG 24PRO ; alpar@1: alpar@1: set whse := w01 w02 w03 w04 w05 w06 w08 w09 w12 w14 w15 w17 alpar@1: w18 w19 w20 w21 w24 w25 w26 w27 w28 w29 w30 w31 alpar@1: w32 w33 w34 w35 w36 w37 w38 w39 w40 w41 w42 w43 alpar@1: w44 w45 w46 w47 w48 w49 w50 w51 w53 w54 w55 w56 alpar@1: w57 w59 w60 w61 w62 w63 w64 w65 w66 w68 w69 w71 alpar@1: w72 w73 w74 w75 w76 w77 w78 w79 w80 w81 w82 w83 alpar@1: w84 w85 w86 w87 w89 w90 w91 w92 w93 w94 w95 w96 alpar@1: w98 x22 x23 ; alpar@1: alpar@1: set dctr := w01 w02 w03 w04 w05 w62 w76 w96 ; alpar@1: alpar@1: set fact := w01 w05 w96 ; alpar@1: alpar@1: param huge := 99. ; alpar@1: alpar@1: param rtmin := 0.0 ; alpar@1: param rtmax := 8.0 ; alpar@1: alpar@1: param otmin := 0.0 ; alpar@1: param otmax := 96.0 ; alpar@1: alpar@1: param rmin := w01 0.00 w05 0.00 w96 0.00 ; alpar@1: param rmax := w01 3.00 w05 2.00 w96 3.00 ; alpar@1: alpar@1: param omin := w01 0.0 w05 0.0 w96 0.0 ; alpar@1: param omax := w01 48.0 w05 0.0 w96 48.0 ; alpar@1: alpar@1: param hd := w01 8.0 w05 8.0 w96 8.0 ; alpar@1: alpar@1: param dp := w01 19.0 w05 19.0 w96 19.0 ; alpar@1: alpar@1: param wt := 18REG 47.3 24REG 63.0 24PRO 63.0 ; alpar@1: alpar@1: param tc := 18REG 40.00 24REG 45.00 24PRO 45.00 ; alpar@1: alpar@1: param dt := 18REG 376.0 24REG 172.4 24PRO 316.3 ; alpar@1: alpar@1: param cpp := 18REG 102. 24REG 91. 24PRO 91. ; alpar@1: alpar@1: param dsr := w01 96. w02 96. w03 96. w04 96. w05 96. alpar@1: w62 96. w76 96. w96 96. ; alpar@1: alpar@1: param pt (tr) : alpar@1: alpar@1: 18REG 24REG 24PRO := alpar@1: alpar@1: w01 1.194 1.429 1.429 alpar@1: w05 1.194 1.509 1.509 alpar@1: w96 0.000 1.600 1.600 ; alpar@1: alpar@1: param rpc (tr) : alpar@1: alpar@1: 18REG 24REG 24PRO := alpar@1: alpar@1: w01 2119. 2653. 2617. alpar@1: w05 2489. 3182. 3176. alpar@1: w96 0. 2925. 2918. ; alpar@1: alpar@1: param opc (tr) : alpar@1: alpar@1: 18REG 24REG 24PRO := alpar@1: alpar@1: w01 2903. 3585. 3579. alpar@1: w05 0. 0. 0. alpar@1: w96 0. 3629. 3622. ; alpar@1: alpar@1: param sc default 99.99 (tr) : alpar@1: alpar@1: w01 w02 w03 w04 w05 w62 w76 w96 := alpar@1: alpar@1: w01 . 2.97 1.14 2.08 2.37 1.26 2.42 1.43 alpar@1: w02 4.74 . 4.17 6.12 7.41 3.78 7.04 5.21 alpar@1: w03 2.45 4.74 . 3.67 2.84 0.90 2.41 2.55 alpar@1: w04 1.74 5.03 2.43 . 3.19 2.45 2.69 0.58 alpar@1: w05 2.70 5.16 2.84 2.85 . 3.26 3.34 2.71 alpar@1: w06 1.99 4.17 2.13 2.19 2.52 2.06 2.00 1.51 alpar@1: w08 0.21 2.92 1.24 2.07 2.29 1.25 2.32 1.55 alpar@1: w09 0.66 3.76 1.41 2.47 1.82 1.66 . 1.87 alpar@1: w12 1.38 3.83 1.68 2.53 2.39 . 1.96 1.94 alpar@1: w14 2.47 1.58 2.40 3.59 3.85 2.25 . 3.05 alpar@1: w15 1.06 4.95 2.48 1.39 3.41 1.96 . 1.02 alpar@1: w17 0.88 3.39 1.46 2.00 2.67 1.45 . 1.46 alpar@1: w18 7.90 6.57 7.79 9.59 10.81 . . 6.70 alpar@1: w19 1.42 4.12 1.96 1.99 3.52 1.88 . 1.26 alpar@1: w20 3.03 1.59 2.34 4.76 3.98 1.88 . 3.73 alpar@1: w24 1.58 2.80 2.27 2.87 3.19 1.31 . 2.05 alpar@1: w25 1.51 5.05 2.74 0.57 2.98 . 2.95 0.27 alpar@1: w26 1.75 3.61 2.70 1.54 4.07 3.52 . 1.03 alpar@1: w27 2.48 6.87 3.17 1.59 2.08 3.45 . 0.99 alpar@1: w28 2.05 6.83 2.97 1.13 2.91 . . 1.26 alpar@1: w29 4.03 3.68 4.46 3.20 5.50 . . 3.20 alpar@1: w30 2.48 5.78 2.99 2.24 1.79 3.10 . 1.39 alpar@1: w31 2.34 5.41 2.87 1.67 1.66 . . 1.39 alpar@1: w32 14.36 . . . . . . . alpar@1: w33 3.87 4.27 5.11 3.48 5.66 4.03 . 3.05 alpar@1: w34 3.26 4.80 3.21 2.70 4.14 . . 1.77 alpar@1: w35 2.34 2.84 2.89 3.35 3.78 2.68 . 2.52 alpar@1: w36 2.43 5.69 2.96 2.95 1.02 2.61 1.07 2.54 alpar@1: w37 2.23 4.64 2.41 1.99 4.30 2.61 . 1.44 alpar@1: w38 4.66 4.36 5.23 3.04 4.46 . . 3.82 alpar@1: w39 1.11 3.51 1.10 2.53 3.07 1.12 . 2.23 alpar@1: w40 2.99 4.78 4.23 1.57 3.92 . . 1.80 alpar@1: w41 4.93 4.00 5.43 4.45 6.31 . . 3.81 alpar@1: w42 3.86 6.55 5.03 2.11 4.41 . . 2.63 alpar@1: w43 4.61 4.45 3.77 1.22 4.31 . . 2.35 alpar@1: w44 2.05 4.48 1.06 3.70 3.46 1.10 . 3.21 alpar@1: w45 0.92 3.42 1.58 3.04 1.82 1.94 . 2.52 alpar@1: w46 1.36 2.44 0.95 3.08 2.78 0.39 2.16 2.37 alpar@1: w47 1.30 3.39 1.60 2.49 4.29 2.04 . 1.68 alpar@1: w48 1.65 3.78 1.03 2.97 2.21 1.31 . 2.74 alpar@1: w49 1.96 3.00 1.50 3.24 3.68 1.00 . 2.99 alpar@1: w50 0.90 4.14 1.60 1.95 3.61 1.61 . 1.52 alpar@1: w51 1.59 3.95 0.25 2.96 2.58 1.00 2.41 2.71 alpar@1: w53 1.59 3.79 1.28 3.12 3.10 0.89 . 2.98 alpar@1: w54 1.72 4.36 1.61 2.92 2.34 1.91 1.97 3.05 alpar@1: w55 2.45 2.73 2.21 4.47 4.30 2.57 . 4.48 alpar@1: w56 1.10 3.73 1.59 2.74 2.33 1.45 . 2.44 alpar@1: w57 0.95 3.39 1.37 2.30 2.47 1.15 . 1.95 alpar@1: w59 3.29 5.35 3.32 3.81 1.52 3.38 1.34 4.08 alpar@1: w60 2.41 6.12 2.46 3.65 2.35 . 1.37 4.06 alpar@1: w61 3.32 5.50 3.41 3.38 1.23 . 0.99 4.28 alpar@1: w62 1.12 3.00 0.82 3.22 2.95 . 3.33 2.53 alpar@1: w63 3.59 6.36 3.25 4.12 1.84 3.59 1.46 4.03 alpar@1: w64 1.85 4.45 2.17 3.43 2.13 2.03 . 4.02 alpar@1: w65 2.78 4.79 2.81 2.94 1.54 2.90 1.07 2.94 alpar@1: w66 3.90 5.79 3.05 3.65 1.36 3.39 1.22 3.57 alpar@1: w68 2.61 5.20 2.90 2.34 1.68 3.19 1.48 2.31 alpar@1: w69 2.94 5.21 2.78 3.43 0.21 3.26 0.68 2.54 alpar@1: w71 2.06 4.98 2.38 2.44 1.59 2.97 1.05 2.55 alpar@1: w72 2.61 5.50 2.83 3.12 1.35 3.23 0.88 2.99 alpar@1: w73 8.52 6.16 8.03 8.83 10.44 7.38 10.26 . alpar@1: w74 6.11 5.46 9.07 9.38 10.80 . . 8.25 alpar@1: w75 2.66 4.94 2.87 3.69 1.52 3.15 1.24 4.00 alpar@1: w76 1.99 5.26 2.23 3.36 0.58 3.17 . 2.50 alpar@1: w77 4.32 3.07 5.05 3.88 6.04 . . 4.15 alpar@1: w78 5.60 2.59 5.78 5.56 7.10 . . 5.60 alpar@1: w79 4.25 2.32 4.93 4.57 6.04 . . 4.58 alpar@1: w80 5.94 4.00 5.60 7.02 9.46 . . 7.51 alpar@1: w81 5.39 2.21 5.10 6.22 6.46 . . 6.58 alpar@1: w82 8.80 5.69 9.29 9.88 11.69 8.63 11.52 . alpar@1: w83 4.40 . 5.24 5.21 5.81 3.91 7.04 5.33 alpar@1: w84 5.87 5.43 6.17 5.70 7.63 . . 5.70 alpar@1: w85 3.90 3.65 3.38 4.57 5.64 3.05 . 5.04 alpar@1: w86 5.48 2.10 5.70 6.37 7.33 . . 6.19 alpar@1: w87 8.88 5.54 9.50 9.71 11.64 8.85 11.68 . alpar@1: w89 4.62 4.01 4.03 6.30 6.30 3.81 . 7.77 alpar@1: w90 4.35 2.72 4.61 4.01 5.60 . . 3.20 alpar@1: w91 7.61 4.42 7.83 6.85 8.79 . . 7.66 alpar@1: w92 7.15 2.69 6.91 7.20 . . . 7.06 alpar@1: w93 3.17 3.95 4.37 3.74 5.05 . . 2.40 alpar@1: w94 1.21 3.07 0.90 2.74 3.17 . 2.63 2.39 alpar@1: w95 5.82 3.29 6.55 7.06 11.47 . . 7.83 alpar@1: w96 1.77 5.20 2.72 0.59 3.47 2.48 . . alpar@1: w98 3.04 1.92 3.64 3.70 4.90 3.05 . 3.88 alpar@1: x22 4.08 6.25 4.15 4.30 1.77 . 1.77 . alpar@1: x23 3.39 5.74 3.55 4.08 1.69 . 1.47 . ; alpar@1: alpar@1: param msr (tr) : alpar@1: alpar@1: w01 w02 w03 w04 w05 w62 w76 w96 := alpar@1: alpar@1: w01 0 0 0 0 0 0 1 0 alpar@1: w02 0 0 0 0 0 0 1 0 alpar@1: w03 0 0 0 0 0 0 1 0 alpar@1: w04 0 0 0 0 0 0 1 0 alpar@1: w05 0 0 0 0 0 0 0 0 alpar@1: w06 0 1 1 1 1 1 1 1 alpar@1: w08 0 1 1 1 1 1 1 1 alpar@1: w09 0 1 1 1 1 1 0 1 alpar@1: w12 0 1 1 1 1 0 1 1 alpar@1: w14 1 1 1 1 1 0 0 1 alpar@1: w15 0 1 1 1 1 1 0 1 alpar@1: w17 0 1 1 1 1 1 0 1 alpar@1: w18 0 1 1 1 1 0 0 1 alpar@1: w19 0 1 1 1 1 0 0 1 alpar@1: w20 1 1 1 1 1 0 0 1 alpar@1: w24 0 1 1 1 1 0 0 1 alpar@1: w25 0 1 1 1 1 0 1 0 alpar@1: w26 1 1 1 0 1 1 0 1 alpar@1: w27 1 1 1 0 1 1 0 1 alpar@1: w28 1 1 1 0 1 0 0 1 alpar@1: w29 0 1 1 1 1 0 0 1 alpar@1: w30 1 1 1 0 1 1 0 1 alpar@1: w31 1 1 1 0 1 0 0 1 alpar@1: w32 0 0 0 0 0 0 0 0 alpar@1: w33 1 0 1 1 1 1 0 1 alpar@1: w34 1 1 1 0 1 0 0 1 alpar@1: w35 1 1 1 1 1 0 0 1 alpar@1: w36 0 1 1 1 0 1 1 1 alpar@1: w37 1 1 1 0 1 1 0 1 alpar@1: w38 1 1 1 0 1 0 0 1 alpar@1: w39 0 1 1 1 1 1 0 1 alpar@1: w40 1 1 1 0 1 0 0 1 alpar@1: w41 1 0 1 1 1 0 0 1 alpar@1: w42 1 1 1 0 1 0 0 1 alpar@1: w43 1 1 1 0 1 0 0 1 alpar@1: w44 1 1 1 1 1 0 0 1 alpar@1: w45 0 1 1 1 1 1 0 1 alpar@1: w46 0 1 1 1 1 0 1 1 alpar@1: w47 0 1 1 1 1 1 0 1 alpar@1: w48 0 1 1 1 1 0 0 1 alpar@1: w49 1 1 1 1 1 0 0 1 alpar@1: w50 0 1 1 1 1 1 0 1 alpar@1: w51 0 1 1 1 1 0 1 1 alpar@1: w53 1 1 1 1 1 0 0 1 alpar@1: w54 0 1 1 1 1 1 1 1 alpar@1: w55 0 1 1 1 1 0 0 1 alpar@1: w56 0 1 1 1 1 1 0 1 alpar@1: w57 0 1 1 1 1 1 0 1 alpar@1: w59 0 1 1 1 0 1 1 1 alpar@1: w60 0 1 1 1 1 0 1 1 alpar@1: w61 0 1 1 1 0 0 1 1 alpar@1: w62 0 0 0 0 0 0 1 0 alpar@1: w63 0 1 1 1 0 1 1 1 alpar@1: w64 0 1 1 1 1 1 0 1 alpar@1: w65 0 1 1 1 0 1 1 1 alpar@1: w66 0 1 1 1 0 1 1 1 alpar@1: w68 0 1 1 1 0 1 1 1 alpar@1: w69 0 1 1 1 0 1 1 1 alpar@1: w71 0 1 1 1 0 1 1 1 alpar@1: w72 0 1 1 1 0 1 1 1 alpar@1: w73 0 1 1 1 0 1 1 0 alpar@1: w74 0 1 1 1 0 0 0 1 alpar@1: w75 0 1 1 1 0 1 1 1 alpar@1: w76 0 0 0 0 0 0 0 0 alpar@1: w77 1 0 1 1 1 0 0 1 alpar@1: w78 1 0 1 1 1 0 0 1 alpar@1: w79 1 0 1 1 1 0 0 1 alpar@1: w80 1 0 1 1 1 0 0 1 alpar@1: w81 1 0 1 1 1 0 0 1 alpar@1: w82 1 0 1 1 1 1 1 0 alpar@1: w83 1 0 1 1 1 0 1 1 alpar@1: w84 1 0 1 1 1 0 0 1 alpar@1: w85 1 1 1 1 1 0 0 1 alpar@1: w86 1 0 1 1 1 0 0 1 alpar@1: w87 1 0 1 1 1 1 1 0 alpar@1: w89 1 0 1 1 1 1 0 1 alpar@1: w90 0 1 1 1 1 0 0 1 alpar@1: w91 1 0 1 1 1 0 0 1 alpar@1: w92 1 0 1 1 1 0 0 1 alpar@1: w93 1 1 1 0 1 0 0 1 alpar@1: w94 0 0 1 1 1 0 1 1 alpar@1: w95 1 0 1 1 1 0 0 1 alpar@1: w96 0 0 0 0 0 0 0 0 alpar@1: w98 1 0 1 1 1 1 0 1 alpar@1: x22 1 1 1 1 0 0 1 0 alpar@1: x23 1 1 1 1 0 0 1 0 ; alpar@1: alpar@1: param ds default 0.000 (tr) : alpar@1: alpar@1: 18REG 24REG 24PRO := alpar@1: alpar@1: w01 0.000 0.000 0.008 alpar@1: w02 0.004 0.000 0.000 alpar@1: w03 0.000 0.000 0.000 alpar@1: w04 0.010 0.002 0.000 alpar@1: w05 0.000 0.000 0.000 alpar@1: w06 0.010 0.008 0.008 alpar@1: w08 0.030 0.024 0.024 alpar@1: w09 0.014 0.018 0.020 alpar@1: w12 0.014 0.012 0.010 alpar@1: w14 0.007 0.007 0.012 alpar@1: w15 0.010 0.019 0.018 alpar@1: w17 0.013 0.010 0.011 alpar@1: w19 0.015 0.012 0.009 alpar@1: w20 0.012 0.021 0.022 alpar@1: w21 0.000 0.000 0.000 alpar@1: w24 0.012 0.022 0.018 alpar@1: w25 0.019 0.025 0.020 alpar@1: w26 0.006 0.015 0.021 alpar@1: w27 0.008 0.010 0.015 alpar@1: w28 0.011 0.016 0.019 alpar@1: w29 0.008 0.020 0.013 alpar@1: w30 0.011 0.013 0.015 alpar@1: w31 0.011 0.013 0.017 alpar@1: w32 0.006 0.000 0.000 alpar@1: w33 0.000 0.015 0.014 alpar@1: w34 0.008 0.007 0.005 alpar@1: w35 0.002 0.006 0.014 alpar@1: w36 0.015 0.013 0.005 alpar@1: w37 0.017 0.016 0.015 alpar@1: w38 0.015 0.009 0.012 alpar@1: w39 0.007 0.017 0.022 alpar@1: w40 0.009 0.014 0.020 alpar@1: w41 0.003 0.014 0.011 alpar@1: w42 0.017 0.011 0.012 alpar@1: w43 0.009 0.013 0.011 alpar@1: w44 0.002 0.012 0.012 alpar@1: w45 0.016 0.025 0.028 alpar@1: w46 0.038 0.062 0.040 alpar@1: w47 0.007 0.010 0.010 alpar@1: w48 0.003 0.015 0.016 alpar@1: w49 0.005 0.016 0.017 alpar@1: w50 0.011 0.008 0.007 alpar@1: w51 0.010 0.022 0.021 alpar@1: w53 0.004 0.026 0.020 alpar@1: w54 0.020 0.017 0.025 alpar@1: w55 0.004 0.019 0.028 alpar@1: w56 0.004 0.010 0.008 alpar@1: w57 0.014 0.020 0.018 alpar@1: w59 0.012 0.006 0.007 alpar@1: w60 0.019 0.010 0.009 alpar@1: w61 0.028 0.010 0.012 alpar@1: w62 0.000 0.000 0.000 alpar@1: w63 0.070 0.027 0.037 alpar@1: w64 0.009 0.004 0.005 alpar@1: w65 0.022 0.015 0.016 alpar@1: w66 0.046 0.017 0.020 alpar@1: w68 0.005 0.012 0.016 alpar@1: w69 0.085 0.036 0.039 alpar@1: w71 0.011 0.013 0.010 alpar@1: w72 0.089 0.031 0.034 alpar@1: w75 0.026 0.012 0.010 alpar@1: w77 0.001 0.004 0.002 alpar@1: w78 0.002 0.004 0.002 alpar@1: w79 0.001 0.004 0.002 alpar@1: w80 0.001 0.001 0.002 alpar@1: w81 0.001 0.003 0.002 alpar@1: w83 0.009 0.010 0.008 alpar@1: w84 0.001 0.002 0.002 alpar@1: w85 0.001 0.004 0.005 alpar@1: w86 0.001 0.002 0.002 alpar@1: w87 0.002 0.003 0.000 alpar@1: w89 0.001 0.001 0.002 alpar@1: w90 0.006 0.017 0.013 alpar@1: w91 0.002 0.010 0.013 alpar@1: w92 0.000 0.003 0.002 alpar@1: w93 0.002 0.006 0.007 alpar@1: w95 0.001 0.007 0.007 alpar@1: w96 0.000 0.000 0.000 alpar@1: w98 0.006 0.005 0.002 ; alpar@1: alpar@1: end;