Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 1 1-to-1 Distribution John H. Vande Vate Spring, 2001.

Similar presentations


Presentation on theme: "1 1 1-to-1 Distribution John H. Vande Vate Spring, 2001."— Presentation transcript:

1 1 1 1-to-1 Distribution John H. Vande Vate Spring, 2001

2 2 2 When Demand Varies Predictably D(t) = cumulative demand to time t D’(t) = rate of demand at time t. Two cases: –Only Rent Costs matter –Only Inventory Costs matter

3 3 3 To Minimize the Maximum... Make them all the same size If we have n shipments in time t, make them all size D(t)/n Question reduces to n –Trade off shipment cost (smaller n) vs –Inventory cost (larger n)

4 4 4 That’s just an EOQ problem Total cost with n shipments is –Transportation cost (ignore variable portion) fixed*n –Inventory Cost Rent Cost is $/unit/year Rent * (D(T)/n)*T –Average Cost per unit Rent*T/n + fixed*n/D(T) –So n is  Rent*T*D(T)/fixed

5 5 5 More realistic - Ignore Rent Wagner-Whitin Dynamic programming approach. Computationally intensive How accurate is the forecast of demand? How sensitive is the cost to the answer?

6 6 6 Wagner-Whitin Discuss Later

7 7 7 The Continuous Approximation Approach t0t0 t1t1 t2t2 t3t3 Fixed shipment cost + c i *area t’ Area  (t 3 -t 2 )height/2 There is some t’ where Area = (t 3 -t 2 ) 2 D’(t’)/2 height  (t 3 -t 2 )D’(t’)

8 8 8 Step Function H(t) = (t i - t i-1 ) if t i-1  t < t i So total cost =  ( Fixed + c*area i ) =  ( Fixed + c*(t i - t i-1 ) 2 D’(t i ’)/2) =  ( Fixed + c*H(t i ’) 2 D’(t i ’)/2) =  (Fixed /H(t) + c*H(t)D’(t’)/2)dt An abuse of notation

9 9 9 Equivalence =  ( Fixed + c*H(t i ’) 2 D’(t i ’)/2) =  (Fixed /H(t) + c*H(t)D’(t’)/2)dt Why?  Fixed /H(t)dt =   t i t i-1 Fixed /H(t)dt =   t i t i-1 Fixed /(t i - t i-1 )dt =  Fixed  c*H(t)D’(t’)/2dt =   t i t i-1 c*H(t)D’(t i ’)/2dt =   t i t i-1 c*(t i - t i-1 ) D’(t i ’)/2dt =  c*(t i - t i-1 ) 2 D’(t i ’)/2 =  c*H(t’ i ) 2 D’(t i ’)/2

10 10 Approximation Total cost =  ( Fixed + c*H(t i ’) 2 D’(t i ’)/2) =  (Fixed /H(t) + c*H(t)D’(t’)/2)dt   (Fixed /H(t) + c*H(t)D’(t)/2)dt Find a smooth function H(t) that minimizes the cost (an EOQ formula) H(t) =  (2Fixed/cD’(t))

11 11 H(t) and Headways

12 12 What is H(t)? If Demand is constant with rate D’ We dispatch every t time units Cost per time = Fixed/t + ctD’/2 Best headway is t =  (2Fixed/cD’) Compare with H(t) H(t) =  (2Fixed/cD’(t))

13 13 Back to the Discrete World We have a continuous approximation H(t) to the discrete (step function) headways. How do we recover implementable headways from H(t)?

14 14 Consistent Headways Finding Headways consistent with H(t) Headway = Avg of H(t) in [0, Headway] Avg = Integral of H(t) over the Headway/Headway Headway 2 = Integral of H(t) over the Headway Find Headways so that the squares approximate the area under H(t)

15 15 Example

16 16 H(t) and Headways

17 17 Example Cont’d

18 18 How’d we do? Inventory Cost 25.34 Shipment Cost 10 Total Cost 35.34 Is that any good?

19 19 Optimum Answer set Periods; param Demand{Periods}; table DemandTable IN "ODBC" "DSN=Wagner" "Demand": Periods<-[Period], Demand; read table DemandTable; param FixedTransp := 1; param VarTransp := 1; param Holding := 1; /* $/unit/period */ var Inv{Periods} >= 0; /* Shipment quantity */ var Ship{Periods} binary; /* Whether or not we ship */ var Q{Periods} >= 0; /* Shipment size */

20 20 One Model minimize TotalCost: sum{t in Periods} FixedTransp*Ship[t] + sum{t in Periods} VarTransp*Q[t] + sum{t in Periods} Holding*Inv[t]; s.t. InitialInventory: Q[1] - Inv[1] = Demand[1]; s.t. DefineInventory{t in Periods: t > 1}: Inv[t-1] + Q[t] - Inv[t] = Demand[t]; s.t. SetupOrNot{t in Periods}: Q[t] = t} Demand[k];

21 21 Comparison Optimum Solution 25.5 Answer from CA Method 35.3

22 22 Why so Bad? D’(t) changes pretty wildly

23 23 More on the Optimization Model set Periods; param Demand{Periods}; table DemandTable IN "ODBC" "DSN=Wagner" "Demand": Periods<-[Period], Demand; read table DemandTable; param FixedTransp := 1; param VarTransp := 1; param Holding := 1; /* $/unit/period */ var Ship{Periods} binary; /* Amount we ship in period s that meets demand in period t */ var Q{s in Periods, t in Periods: t >= s} >= 0;

24 24 A Better Model minimize TotalCost: sum{t in Periods} FixedTransp*Ship[t] + sum{s in Periods, t in Periods: t >= s} VarTransp*Q[s,t] + sum{s in Periods, t in Periods: t >= s} (t-s)*Q[s,t]; s.t. MeetDemand{t in Periods}: sum{s in Periods: s <= t} Q[s,t] = Demand[t]; s.t. ShipOrNot{s in Periods, t in Periods: t >=s}: Q[s,t] <= Ship[s]*Demand[t];

25 25 Why’s it Better Solves faster LP relaxation closer to MIP solutions Didn’t aggregate constraints Q[s,t] <= Ship[s]*Demand[t] Implies sum{t in Periods: t >= s} Q[s,t] = s} Demand[t]; Q[s] = s} Demand[t];

26 26 Back To Wagner - Whitin A Computationally intensive Dynamic Programming Procedure for solving Why? Advantage/Disadvantage of CA over MIP

27 27 Aside on Importing Data ODBC = Open Data Base Connectivity ODBC Administrator : Control Panel DSN = Data Source Name Driver = Method for reading the DSN, e.g., Excel 97 Security and other features

28 28 With AMPL Table > IN “ODBC” “DSN= >” “tablename”: definedset <- [index], parametername~columnname, …; IN, OUT, INOUT SQL= sql statement


Download ppt "1 1 1-to-1 Distribution John H. Vande Vate Spring, 2001."

Similar presentations


Ads by Google