Department of Industrial Engineering
Department of Industrial Engineering
Supply Chains:
Planning with Dynamic
Demand
Jayant Rajgopal, Ph.D., P.E.
Department of Industrial Engineering
University of Pittsburgh
Pittsburgh, PA 15261
Department of Industrial Engineering
PRODUCTION / INVENTORY CONTROL OF
ITEMS WITH INDEPENDENT, DYNAMIC
DEMAND
• If the demand rate is not reasonably steady over time then the EOQ
model would not be appropriate.
• Suppose we have demand forecasts for the next n time periods as
D1, D2, …, Dn and these are very different
Example: (n=6) Given A=$50, h=$0.30/unit/unit time
t 1 2 3 4 5 6
D 10 40 80 60 30 20
© Jayant Rajgopal, 2016
Department of Industrial Engineering
DYNAMIC DEMAND MODELS
Simple (simplistic?) approaches:
1. Lot-for-lot: no holding cost; total cost 6*50=$300
2. Approximate EOQ based on average demand: (10+40+…+20)/6=40, so
EOQ≈(2*40*50/0.3)0.5=115. Produce in batches of around 115 at a time –
maybe (10+40+80) in period 1 and (60+30+20) in period 4.
3. Production order quantity (POQ): a common approach in practice where we
convert the approximate EOQ into a time supply and produces for this many
periods each time: EOQ/(average demand) = 115/40 ≈ 3. So produce for three
periods at a time.
None of these work too well in practice…
Q: When is dynamic demand “sufficiently dynamic” to preclude use of the EOQ
model?
A: When the coefficient of variation (std. dev. ÷ mean) is more than 20-25%. (For
our example c.v. = 26/40=65%)
© Jayant Rajgopal, 2016
Department of Industrial Engineering
PRODUCTION / INVENTORY
CONTROL WITH DYNAMIC DEMAND
Important Property: Each production run covers the
demand across some integer number of future periods. As
a consequence, if there is any inventory at the end of a
period, there can never be any production in the next
period, i.e., (It-1)*(Pt) = 0
• If It=0, then t is called a regeneration point
• If Pt>0, then t is called a replenishment point
© Jayant Rajgopal, 2016
Department of Industrial Engineering
PRODUCTION / INVENTORY
CONTROL WITH DYNAMIC DEMAND
EXAMPLE: Suppose we have 5 periods in our planning horizon. Some
possible production patterns are
P1 P2 P3 P4 P5
D1+D2+D3 0 0 D4+D5 0
D1 D2+D3 0 D4 D5
D1+D2 0 D3+D4 0 D5
D1 D2 D3 D4 D5
D1+D2+D3+D4+D5 0 0 0 0
Corresponding end-of-period inventory levels are:
I1 I2 I3 I4 I5
D2+D3 D3 0 D5 0
0 D3 0 0 0
D2 0 D4 0 0
0 0 0 0 0
D2+D3+D4+D5 D3+D4+D5 D4+D5 D5 0
© Jayant Rajgopal, 2016
Department of Industrial Engineering
Consider a production run. Let
• s ≡ Some replenishment period (in which the production run took place;
thus s-1 was a regeneration point)
• t ≡ Period until which demand is covered by the run, i.e. t is the next
regeneration point
HC(s,t) = Holding Cost incurred during the run due to the production (in period s)
of an amount equal to Ds+Ds+1+...+Dt
= hs×(Ds+1+Ds+2+...+Dt) + hs+1 ×(Ds+2+Ds+3+...+Dt)
+ hs+3 ×(Ds+3+Ds+4+...+Dt) + ... + ht-1 ×(Dt) + ht ×(0)
Then the total variable cost for the production run is equal to As+HC(s,t).
Note that Aj is the setup cost in period j and hj is the holding cost in period j
- if these are the same in all periods we can replace all Aj with A and hj with
h.
© Jayant Rajgopal, 2016
Department of Industrial Engineering
Heuristics: The general approach is:
1. Start with s=j=1
2. Increase j successively to s+1, s+2, etc., i.e., evaluate
production runs of Ds, (Ds+Ds+1), (Ds+Ds+1+Ds+2), etc.,
until we stop for some value of j; say j=t. Thus the
production run covers demand for periods s through
t. Different heuristics use different criteria to decide
when to stop
3. Reset s=j=t+1 and repeat Step 2. Continue the process
until the end of the planning horizon is reached
We will study three different heuristics that work well in
practice…
© Jayant Rajgopal, 2016
Department of Industrial Engineering
Part-Period Balancing Heuristic
End the run at j for which HC(s,j) is as close as possible to
As. Since HC(s,j) is monotone increasing in j, we find the
first j for which HC(s,j) exceeds As. Then t is equal to either
j or j-1, depending on whether HC(s,j) or HC(s,j-1) is closer
to As.
Note that this method tries to choose a run for which setup
and holding costs are balanced as far as possible.
© Jayant Rajgopal, 2016
Department of Industrial Engineering
Silver-Meal Heuristic
End the run at j for which the total variable cost per unit
time = TVCUT(s,j) first reaches a minimum, i.e., t is the
first value of j for which TVCUT(s,j+1)>TVCUT(s,j).
Here we define
TVCUT(s,j) = [As+ HC(s,j)] ÷ [j-s+1]
TVC for run No of periods covered by run
© Jayant Rajgopal, 2016
Department of Industrial Engineering
Least Unit Cost Heuristic
End the run at j for which the total variable cost per unit of demand =
TVCUD(s,j) first reaches a minimum, i.e., t is the first value of j for
which TVCUD(s,j+1)>TVCUD(s,j).
Here we define
TVCUD(s,j) = [As+ HC(s,j)] ÷ [Ds+Ds+1+...+Dj]
TVC for run Demand covered by run
© Jayant Rajgopal, 2016
Department of Industrial Engineering
DYNAMIC LOT SIZING - AN EXAMPLE
Given: A=$50, h=i*c= 0.2*18= 3.6 $/unit/year = 3.6/12= $0.30/unit/month.
t 1 2 3 4 5 6
D 10 40 80 60 30 20
Part Period Balancing Heuristic
s=1
j=1, Ps=10; HC(1,1) = 0.3*0 = 0 < 50
j=2, Ps=50; HC(1,2) = 0.3*(40+0) = 12 < 50
j=3, Ps=130; HC(1,3) = 0.3*(120+80+0) = 60 > 50!
Since 60 is closer (than 12 is) to 50, we have t=3
P1=130, P2=P3=0
Reset: s=4
j=4, Ps=60; HC(4,4) = 0.3*0 = 0 < 50
j=5, Ps=90; HC(4,5) = 0.3*(30+0) = 9 < 50
j=6, Ps=110; HC(4,6) = 0.3*(50+20+0) = 21 < 50
Would like to go on, but we've reached the end of the planning horizon – STOP, with t=6
P4=110, P5=P6=0
Variable Cost = 2×50 + 0.3 ×(120+80+0+50+20+0) = $181
(setups) ------(inventory)------
© Jayant Rajgopal, 2016
Department of Industrial Engineering
DYNAMIC LOT SIZING EXAMPLE (cont’d)
Silver-Meal Heuristic
s=1
j=1, Ps=10; TVCUT(1,1) = [50+0.3*0]÷1 = 50
j=2, Ps=50; TVCUT(1,2) = [50+0.3*(40+0)]÷2 = 31 (<50 - continue)
j=3, Ps=130; TVCUT(1,3) = [50+0.3*(120+80+0)] ÷3 = 36.33 (> 31 - reset!)
Thus t=2 and P1=60, P2=0
Reset s=3
j=3, Ps=80; TVCUT(3,3) = [50+0.3*0]÷1 = 50
j=4, Ps=140; TVCUT(3,4) = [50+0.3*(60+0)]÷2 = 34 (<50 - continue)
j=5, Ps=170; TVCUT(3,5) = [50+0.3*(90+30+0)] ÷3 = 28.67 (<34 - continue)
j=6, Ps=190; TVCUT(3,6) = 0+0.3*(110+50+20+0)]÷4 = 26 (<28.67 - continue)
Would go on, but reached end of planning horizon – STOP with t=6 and
P3=190, P4=P5=P6=0.
Variable Cost = 2*50 + 0.3*(40+0+110+50+20+0) = $166
(setups) ------(inventory)------
© Jayant Rajgopal, 2016
Department of Industrial Engineering
DYNAMIC LOT SIZING EXAMPLE (cont’d)
The Least Unit Cost Heuristic
s=1
j=1, Ps=10; TVCUD(1,1) = [50+0.3*0]÷10 = 5
j=2, Ps=50; TVCUD(1,2) = [50+0.3*(40+0)]÷ 50 = 1.24 (<5 - continue)
j=3, Ps=130; TVCUD(1,3) = [50+0.3*(120+80+0)]÷130 = 0.85 (<1.24 - continue)
j=4,Ps=190; TVCUD(1,4) = [50+0.3*(180+140+60+0)] ÷190 = 0.863 (>0.85 - reset)
Thus t=3 and P1=130, P2=P3=0
Reset s=4
j=4, Ps=60; TVCUD(4,4) = [50+0.3*0]÷60 = 0.833
j=5, Ps=90; TVCUD(4,5) = [50+0.3*(30+0)]÷90 = 0.655 (<0.833 - continue)
j=6, Ps=110; TVCUD(4,6) = [50+0.3*(50+20+0)] ÷110 = 0.645 (<0.655 - continue)
Would go on, but reached end of planning horizon – STOP with t=6 and
P4=110, P5=P6=0.
Variable Cost = 2*50 + 0.3*(120+80+0+50+20+0) = $181
(setups) ------(inventory)------
© Jayant Rajgopal, 2016
Department of Industrial Engineering
An Optimal Approach using Dynamic
Programming: The Wagner-Whitin Algorithm
P1 P2 Pn
I0 I1 I2 In-1 In
1 2 n
Define D1 D2 Dn
• F(t) = minimum cost of satisfying demands in periods 1 through t.
(So of course, we seek F(n)…)
• st* = the best period in which to start the production run that satisfies
demand for period t.
The general recursive equation is
F (t ) = Mins ≤t { F ( s − 1) + A + HC ( s , t )}
F (1) = A, s1* = 1
F (0) = 0
© Jayant Rajgopal, 2016
Department of Industrial Engineering
Wagner-Whitin Algorithm
t=1
∗
F(1) = 50, and =1
t=2
F(2) = Min {[F(0)+ A+ HC(1,2)], [F(1)+ A+HC(2,2)}
= Min {[0+50+0.3×40)], [50+50+0]} = Min {62, 100}=62;
s2*=1
t=3
F(3) = Min { [F(0)+ A+ HC(1,3)], [F(1)+ A+HC(2,3)], [F(2)+ A+HC(3,3)] }
= Min { [0+50+0.3×120+0.3×80)], [50+50+0.3 ×80], [62+50+0] }
= Min {110, 124, 112} = 110
s3*=1
© Jayant Rajgopal, 2016
Department of Industrial Engineering
t=4
F(4) = Min { [F(0)+ A+HC(1,4)], [F(1)+ A+HC(2,4)], [F(2)+ A+HC(3,4)],
[F(3)+ A+HC(4,4)] }
= Min { [0+50+0.3 ×180+0.3×140+0.3×60], [50+50+0.3×140+0.3×60],
[62+50+0.3×60], [110+50+0] }
= Min {164, 160, 130, 160} = 130
s4*=3
t=5
F(5) = Min { [F(0)+ A+HC(1,5)], [F(1)+ A+HC(2,5))], [F(2)+ A+HC(3,5))],
[F(3)+ A+HC(4,5)], [F(4)+ A+HC(5,5) }
= Min { [0+50+0.3*210+0.3*170+0.3*90+0.3*30)],
[50+50+0.3*170+0.3*90+0.3*30], [62+50+0.3*90+0.3*30],
[110+50+0.3*30], [130+50+0]}
= Min {200, 187, 148, 169, 180} = 148
s5*=3 © Jayant Rajgopal, 2016
Department of Industrial Engineering
t=6
F(6) = Min { [F(0)+ A+HC(1,6)], [F(1)+ A+HC(2,6)],
[F(2)+ A+HC(3,6)], [F(3)+ A+HC(4,6)]
[F(4)+ A+HC(5,6)], [F(5)+ A+HC(6,6)] }
=Min { [0+50+0.3*230+0.3*190+0.3*110+0.3*50+0.3*20)],
[50+50+0.3*190+0.3*110+0.3*50+0.3*20],
[62+50+0.3*110+0.3*50+0.3*20],
[110+50+0.3*50+0.3*20], [130+50+0.3*20], [148+50+0]}
= Min {230, 211, 166, 181, 186, 198} = 166
s6*=3
So the optimal plan has production in periods s6* (=3) and s2* (=1) so that
P3=D3+D4+D5+D6=190 and P1=D1+D2=50.
© Jayant Rajgopal, 2016
Department of Industrial Engineering
P3=D3+D4+D5+D6=190 and P1=D1+D2=50.
The DP algorithm implicitly evaluates all the paths shown in the graph
below, where each node represents a possible regeneration point
0 1 2 3 4 5 6
© Jayant Rajgopal, 2016
Department of Industrial Engineering
INCORPORATING LEAD TIMES
• Consider an independent demand item with dynamic
demand for which we have planned orders using one of
the methods we just saw. In this context, A would be the
order processing cost for each order.
• Suppose there is a lead time L for these orders to be
delivered from the source – say a factory (to a distribution
center), or perhaps a distribution center (to a store).
• We need to ensure that orders to the source are timed
correctly for the correct amounts in order to ensure timely
delivery
© Jayant Rajgopal, 2016
Department of Industrial Engineering
An example:
DISTRIBUTION REQUIREMENTS PLANNING (DRP)
EXAMPLE:
Consider a warehouse that supplies several stores every
week with some item. Demand for the item is highly
dynamic because of differences in what each store orders
ever week and because not all stores order every week.
The total demand at the warehouse over the next 12
weeks was considered and orders were planned using the
Silver-Meal heuristic. Suppose that the lead time to obtain
a shipment of items from the supplier in China is 2 weeks
© Jayant Rajgopal, 2016
Department of Industrial Engineering
DRP Example
ITEM RX-2100
Lead Time 2 weeks Order lot sizes based on
Safety Stock 20 Silver-Meal heuristic
Current Inventory 25
WEEK 1 2 3 4 5 6 7 8 9 10 11 12
Requirements 80 65 20 50 90 80 60 25 70 30 40 75
Scheduled 165
Receipts
Projected
Ending 25 110 45 25 110 20 80 20 120 50 20 95 20
Balance
Planned 135 140 125 115
Receipts
Planned Order 135 140 125 115
Release
© Jayant Rajgopal, 2016