practical tools for or, ml and ds - cornell university · 2020. 2. 16. · the eoq model kept cycle...
TRANSCRIPT
![Page 1: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/1.jpg)
Practical Tools for OR, ML and DS
Lecture 9: Inventory #3 (Q,R)-Policies
February 18th, 2020
![Page 2: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/2.jpg)
EOQ model: demand occurs at a fixed known rate
![Page 3: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/3.jpg)
Today
Random demand, multiple periods
(non-perishable goods)
![Page 4: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/4.jpg)
Here’s what demand looks like over time when the
demand rate is random
![Page 5: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/5.jpg)
Recall goal: keeping costs low
We usually consider 3 kinds of costs when managing inventory:
• Holding costs
• Order costs
• Penalty costs (these were 0 in EOQ, because there were
no stock-outs — we could determine exactly when to
order so that inventory was always nonnegative)
![Page 6: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/6.jpg)
Model of random demand
λt = mean of demand in time t
σ2t = variance of demand in time t
• Demand is independent in each time period
• These two parameters are a reasonable way to
characterize demand
• Most of our analysis will assume λt and σ2t don’t change
with t. When we do this, we’ll write them as λ and σ2.
![Page 7: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/7.jpg)
Notation
Dt = demand in time t
C (t) = total demand by time t
C (t) = D1 + D2 + . . . + Dt
![Page 8: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/8.jpg)
Example
• Mean demand is λ = 30 units per week
• Variance of the weekly demand is σ2 = 15
• Suppose the lead time is τ = 5 weeks.
What is E[C (τ)]?
1. 15× 5 = 75
2. 30× 5 = 150
3. 15× 52 = 375
4. 30× 52 = 750
5. 30/2 = 15
![Page 9: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/9.jpg)
Example
• Mean demand is λ = 30 units per week
• Variance of the weekly demand is σ2 = 15
• Suppose the lead time is τ = 5 weeks.
What is Var[C (τ)]?
1. 15× 5 = 75
2. 30× 5 = 150
3. 15× 52 = 375
4. 30× 52 = 750
5. 30/2 = 15
![Page 10: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/10.jpg)
(Q,R) policy
• The policies we will consider are (Q,R) policies.
• In a (Q,R) policy, we set two parameters:
• the replenishment inventory level R
• the size of each replenishment order Q.
• The EOQ model also had these parameters
In EOQ we could calculate one from the other because the demand
was deterministic, and we could just aim for having 0 inventory
when the new order arrived
• In the (Q,R) model will set Q and R to deal with
random demand, also including penalties for having not
enough inventory
![Page 11: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/11.jpg)
Here’s how a (Q,R) policy works
![Page 12: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/12.jpg)
Here’s how a (Q,R) policy works
![Page 13: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/13.jpg)
Continuous review can be a lot of work in the real
world
• (Q,R) policies assume the inventory level is reviewed
continuously
• To implement we either must have:
• A computer system with point-of-sale scanners that
updates inventory levels after every sale
• A person assigned to monitor inventory every hour of
every day
• As soon as we run out, we have to order more
• This can be annoying, and a lot of work
![Page 14: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/14.jpg)
We allow stockouts, but pay a penalty
![Page 15: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/15.jpg)
Intuitively, here’s what we are doing when we set Q
and R
![Page 16: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/16.jpg)
Bigger R means more inventory, and fewer stockouts
![Page 17: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/17.jpg)
Bigger R means more inventory, and fewer stockouts
The average value of these minimum inventory values is called
the “safety stock” and is indicated by “s”
More safety stock reduces stockouts.
![Page 18: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/18.jpg)
Bigger Q means more inventory and fewer orders
![Page 19: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/19.jpg)
Bigger Q means more cycle stock and fewer orders
The inventory in excess of s is called the “cycle stock”
This stock is depleted at the end of the cycle, and replenished
at the beginning of the cycle
![Page 20: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/20.jpg)
Intuitively, here’s what we are doing when we set Q
and R
• Q controls the tradeoff between order frequency and
average inventory levels.
If Q is large, there are fewer orders and larger inventory
levels.
• R controls the tradeoff between inventory levels and
likelihood of stockouts.
If R is large, there is a low probability of stocking out,
but the average inventory level will be higher.
![Page 21: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/21.jpg)
Intuitively, here’s what we are doing when we set Q
and R
• Q affects cycle stock, the inventory held to avoid
excessive replenishment costs.
• R affects safety stock, the inventory held to avoid
stockouts.
• The EOQ model kept cycle stock but no safety stock.
![Page 22: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/22.jpg)
Optimizing the total cost
We will derive an expression for the expected cost per unit
time in terms of our decision variables Q and R , and then find
optimal values of Q and R to minimize this cost.
![Page 23: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/23.jpg)
We’ll model our cost like this
• Ordering cost: An order for Q units costs K + cQ (same
as EOQ)
• Holding cost: Holding cost are incurred at a rate of h per
unit inventory per unit time (same as EOQ)
• Penalty: If we run out of inventory, we place the demand
we cannot satisfy on backorder and pay a cost of p for
each backordered unit (this is new)
Note that when items are backordered, our inventory position
is negative, and there is no holding cost
![Page 24: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/24.jpg)
We model our demand like this
Dt = demand in time t, independent across t
E[Dt ] = λ (same for every t)
Var[Dt ] = σ2 (same for every t)
C (t) = D1 + D2 + . . . + Dt
![Page 25: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/25.jpg)
Order Cost
• To compute the order cost, we want to know the number
of orders per unit time
• This will be more complex than in EOQ because the time
between orders varies
![Page 26: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/26.jpg)
Order Cost
• I (t) = inventory on hand at time t
• O(t) = number of orders before time t
• I (t) = I (0) + Q × O(t)− C (t)
• O(t) =C (t) + I (t)− I (0)
Q
• E(O(t)) =λt + E[I (t)]− I (0)
Q
• E(O(t)/t) = λ/Q +E[I (t)]− I (0)
tQ→ λ/Q (as t →∞)
• This is the expected number of orders per unit time in the
long run — we will call it the cycle frequency
We define T = Q/λ and call it the (expected) cycle
period or cycle length
![Page 27: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/27.jpg)
Expected Order Cost per Unit Time
Each cycle requires one order, and has a cost of K + cQ.
Therefore, the expected cost of ordering per unit time is
(K + cQ)× (λ/Q) = Kλ/Q + cλ
![Page 28: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/28.jpg)
Expected Holding Cost per Unit Time
![Page 29: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/29.jpg)
Expected Holding Cost per Unit Time
![Page 30: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/30.jpg)
Expected Holding Cost per Unit Time
![Page 31: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/31.jpg)
Expected Holding Cost per Unit Time
![Page 32: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/32.jpg)
Expected Holding Cost per Unit Time
Amazingly enough, the long-run average inventory level is also
Q/2 + s when demand is stochastic
Knowing why is outside of the scope of this course.
Unfortunately, explaining it in a compact way requires tools from more
advanced courses.
![Page 33: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/33.jpg)
What is the safety stock?
What is the safety stock s?
1. R − λT2. Q − λT3. R − λτ4. Q − λτ5. Q/2
![Page 34: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/34.jpg)
Expected Holding Cost per Unit Time
The (long-run) average inventory level is:
s +Q
2= R − λτ +
Q
2.
![Page 35: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/35.jpg)
Expected Holding Cost per Unit Time
• Next, we find the expected holding cost per unit time by
multiplying the long-run average inventory by the holding
cost per unit and per unit time.
• The problem is that we have not restricted the inventory
to positive values, and our next step assumes positive
values of inventory at all times!
• However, stockouts and the resulting backorders are
usually rare, so this approximation is not likely to result in
major errors.
![Page 36: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/36.jpg)
Expected Holding Cost per Unit Time
Our approximation to holding cost assumes we pay negative
holding costs here, where we actually pay zero holding costs.
![Page 37: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/37.jpg)
Expected Holding Cost per Unit Time
h(R − λτ +
Q
2
)+≈ h(R − λτ +
Q
2
)Our approximation to holding cost will be good enough
because we will allow only a small number of stockouts.
![Page 38: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/38.jpg)
Stockout Cost
• While we allow backorders, they are undesirable and we
should limit them.
• To do this, we include a penalty cost in the model for
each stockout.
• Each unit of demand that cannot be met from stock will
incur a penalty cost of p.
![Page 39: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/39.jpg)
How many stockout incidences we expect to see (per
unit time)?
• We are exposed to stockout risk during the lead time.
• Before placing the replenishment order, we have at least
R units in stock, and there is no risk of running out.
• Once the replenishment order is placed, we know that we
will have to wait a known and fixed amount of time
before any more stock comes in. We get a stockout if the
demand over the lead time exceeds the reorder
quantity R .
![Page 40: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/40.jpg)
Stockout Cost
• Let N be the number of items short in a particular cycle.
• We emphasize that N is a function of R by writing it as
N(R).
• Let t be the time when inventory hits R in this cycle.
• S = Dt+1 + Dt+2 + . . . + Dt+τ is the demand during the
lead time in this cycle
• N(R) = max{S − R , 0} = (S − R)+ (for this particular
cycle)
![Page 41: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/41.jpg)
Stockout Cost
• Assuming demand is independent and identically
distributed (over time), we have
S = C (τ) (the total amount of demand in τ time units)
• Now we can talk about the expected number of stock
outs in any cycle (because demand is time independent).
We denote this by n(R):
n(R) = EN(R) = E[(S − R)+] = E[(C (τ)− R)+]
• So the expected number of units short per unit time is
n(R)/E(length of a cycle) =
n(R)/T =
n(R)/(Q/λ) = λn(R)/Q
• Stockout cost: penalty for a stockout is p per unit.
• Thus, the expected total stockout cost per unit time is
pλn(R)
Q
![Page 42: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/42.jpg)
Stockout Cost
• Assuming demand is independent and identically
distributed (over time), we have
S = C (τ) (the total amount of demand in τ time units)
• Now we can talk about the expected number of stock
outs in any cycle (because demand is time independent).
We denote this by n(R):
n(R) = EN(R) = E[(S − R)+] = E[(C (τ)− R)+]
• So the expected number of units short per unit time is
n(R)/E(length of a cycle) = n(R)/T =
n(R)/(Q/λ) = λn(R)/Q
• Stockout cost: penalty for a stockout is p per unit.
• Thus, the expected total stockout cost per unit time is
pλn(R)
Q
![Page 43: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/43.jpg)
Stockout Cost
• Assuming demand is independent and identically
distributed (over time), we have
S = C (τ) (the total amount of demand in τ time units)
• Now we can talk about the expected number of stock
outs in any cycle (because demand is time independent).
We denote this by n(R):
n(R) = EN(R) = E[(S − R)+] = E[(C (τ)− R)+]
• So the expected number of units short per unit time is
n(R)/E(length of a cycle) = n(R)/T =
n(R)/(Q/λ) = λn(R)/Q
• Stockout cost: penalty for a stockout is p per unit.
• Thus, the expected total stockout cost per unit time is
pλn(R)
Q
![Page 44: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/44.jpg)
Stockout Cost
• Assuming demand is independent and identically
distributed (over time), we have
S = C (τ) (the total amount of demand in τ time units)
• Now we can talk about the expected number of stock
outs in any cycle (because demand is time independent).
We denote this by n(R):
n(R) = EN(R) = E[(S − R)+] = E[(C (τ)− R)+]
• So the expected number of units short per unit time is
n(R)/E(length of a cycle) = n(R)/T =
n(R)/(Q/λ) = λn(R)/Q
• Stockout cost: penalty for a stockout is p per unit.
• Thus, the expected total stockout cost per unit time is
pλn(R)
Q
![Page 45: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/45.jpg)
Total Cost
The total cost per unit time is found by summing the previous
expressions:
G (Q,R) =Kλ
Q+ cλ︸ ︷︷ ︸
expected order cost per unit time
+ h(R − λτ +
Q
2
)︸ ︷︷ ︸
expected holding cost per unit time (≈)
+pλn(R)
Q︸ ︷︷ ︸expected stockout cost per unit time
This is what we want to minimize
The decision variables are Q and R
![Page 46: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/46.jpg)
Total Cost
The total cost per unit time is found by summing the previous
expressions:
G (Q,R) =Kλ
Q+ cλ︸ ︷︷ ︸
expected order cost per unit time
+ h(R − λτ +
Q
2
)︸ ︷︷ ︸
expected holding cost per unit time (≈)
+pλn(R)
Q︸ ︷︷ ︸expected stockout cost per unit time
This is what we want to minimize
The decision variables are Q and R
![Page 47: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/47.jpg)
Total Cost
The total cost per unit time is found by summing the previous
expressions:
G (Q,R) =Kλ
Q+ cλ︸ ︷︷ ︸
expected order cost per unit time
+ h(R − λτ +
Q
2
)︸ ︷︷ ︸
expected holding cost per unit time (≈)
+pλn(R)
Q︸ ︷︷ ︸expected stockout cost per unit time
This is what we want to minimize
The decision variables are Q and R
![Page 48: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/48.jpg)
Optimizing G (Q,R)
Find critical points:∂G (Q,R)
∂Q= 0 and
∂G (Q,R)
∂R= 0.
This will be a minimizer, because the cost is convex (no
proof).
![Page 49: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/49.jpg)
Optimizing G (Q,R)
G (Q,R) =Kλ
Q+ cλ + h
(R − λτ +
Q
2
)+
pλn(R)
Q∂G (Q,R)
∂R=
![Page 50: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/50.jpg)
Optimizing G (Q,R)
G (Q,R) =Kλ
Q+ cλ + h
(R − λτ +
Q
2
)+
pλn(R)
Q∂G (Q,R)
∂R= h +
pλ
Q
dn(R)
dR
![Page 51: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/51.jpg)
What isdn(R)
dR?
Recall: n(R) = E[(C (τ)− R)+]
dn(R)
dR=
d
dRE[(C (τ)− R)+]
= E[d
dR(C (τ)− R)+] (under certain assumptions)
= E[−1{C(τ)>R}]
= −P(C (τ) > R)
= −(1− F (R))
= F (R)− 1
where F (·) is the cdf of C (τ), i.e., F (x) = P(C (τ) ≤ x).
![Page 52: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/52.jpg)
What isdn(R)
dR?
Recall: n(R) = E[(C (τ)− R)+]
dn(R)
dR=
d
dRE[(C (τ)− R)+]
= E[d
dR(C (τ)− R)+] (under certain assumptions)
= E[−1{C(τ)>R}]
= −P(C (τ) > R)
= −(1− F (R))
= F (R)− 1
where F (·) is the cdf of C (τ), i.e., F (x) = P(C (τ) ≤ x).
![Page 53: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/53.jpg)
Optimizing G (Q,R)
G (Q,R) =Kλ
Q+ cλ + h
(R − λτ +
Q
2
)+
pλn(R)
Q∂G (Q,R)
∂R= h +
pλ
Q
dn(R)
dR
= h +pλ
Q(F (R)− 1).
![Page 54: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/54.jpg)
Optimizing G (Q,R)
∂G (Q,R)
∂R= h +
pλ
Q(F (R)− 1)
So∂G (Q,R)
∂R= 0 means R is so that
F (R) = −h Q
pλ+ 1.
![Page 55: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/55.jpg)
Optimizing G (Q,R)
When we know the inverse of F (x) = P(C (τ) ≤ x), then we
have an explicit expression for R such that∂G (Q,R)
∂R= 0:
R = F−1(1− hQ
pλ)
provided we know Q.
![Page 56: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/56.jpg)
Optimizing G (Q,R)
When we know the inverse of F (x) = P(C (τ) ≤ x), then we
have an explicit expression for R such that∂G (Q,R)
∂R= 0:
R = F−1(1− hQ
pλ)
provided we know Q.
![Page 57: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/57.jpg)
Optimizing G (Q,R)
When we do not know the inverse of F (x) = P(C (τ) ≤ x),
then we can still use bisection search to find R such that
F (R) = 1− hQ
pλ
provided we know Q.
![Page 58: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/58.jpg)
Optimizing G (Q,R)
When we do not know the inverse of F (x) = P(C (τ) ≤ x),
then we can still use bisection search to find R such that
F (R) = 1− hQ
pλ
provided we know Q.
![Page 59: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/59.jpg)
Optimizing G (Q,R)
Find critical points:∂G (Q,R)
∂Q= 0 and
∂G (Q,R)
∂R= 0.
![Page 60: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/60.jpg)
Optimizing G (Q,R)
G (Q,R) =Kλ
Q+ cλ + h
(R − λτ +
Q
2
)+
pλn(R)
Q∂G (Q,R)
∂Q=
![Page 61: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/61.jpg)
Optimizing G (Q,R)
G (Q,R) =Kλ
Q+ cλ + h
(R − λτ +
Q
2
)+
pλn(R)
Q∂G (Q,R)
∂Q= −Kλ
Q2+
h
2− pλn(R)
Q2
![Page 62: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/62.jpg)
Optimizing G (Q,R)
∂G (Q,R)
∂Q= −Kλ
Q2+
h
2− pλn(R)
Q2= 0
Solving for Q:
Q2 =2
h
(Kλ + pλn(R)
)So
Q =
√2
h
(Kλ + pλn(R)
)provided we know R (or more precisely n(R)).
![Page 63: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/63.jpg)
Optimizing G (Q,R)
∂G (Q,R)
∂Q= −Kλ
Q2+
h
2− pλn(R)
Q2= 0
Solving for Q:
Q2 =2
h
(Kλ + pλn(R)
)So
Q =
√2
h
(Kλ + pλn(R)
)
provided we know R (or more precisely n(R)).
![Page 64: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/64.jpg)
Optimizing G (Q,R)
∂G (Q,R)
∂Q= −Kλ
Q2+
h
2− pλn(R)
Q2= 0
Solving for Q:
Q2 =2
h
(Kλ + pλn(R)
)So
Q =
√2
h
(Kλ + pλn(R)
)provided we know R (or more precisely n(R)).
![Page 65: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/65.jpg)
Optimizing G (Q,R)
Want Q and R so that
F (R) = 1− hQ
pλ
Q =
√2
h
(Kλ + pλn(R)
)are true simultaneously.
Solve iteratively!
![Page 66: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/66.jpg)
Optimizing G (Q,R)
Want Q and R so that
F (R) = 1− hQ
pλ
Q =
√2
h
(Kλ + pλn(R)
)are true simultaneously.
Solve iteratively!
![Page 67: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/67.jpg)
Optimizing G (Q,R)
Want Q and R so that
F (R) = 1− hQ
pλ
Q =
√2
h
(Kλ + pλn(R)
)
Start with Q0 =
√2Kλ
h.
Find R0 so that
F (R0) = 1− hQ0
pλ
(using bisection search, or F−1 if you know it.)
![Page 68: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/68.jpg)
Optimizing G (Q,R)
Want Q and R so that
F (R) = 1− hQ
pλ
Q =
√2
h
(Kλ + pλn(R)
)
Start with Q0 =
√2Kλ
h.
Find R0 so that
F (R0) = 1− hQ0
pλ
(using bisection search, or F−1 if you know it.)
![Page 69: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/69.jpg)
Optimizing G (Q,R)
Want Q and R so that
F (R) = 1− hQ
pλ
Q =
√2
h
(Kλ + pλn(R)
)
Calculate Q1 =
√2
h
(Kλ + pλn(R0)
).
Find R1 so that
F (R1) = 1− hQ1
pλ
(using bisection search, or F−1 if you know it.)
![Page 70: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/70.jpg)
Optimizing G (Q,R)
Want Q and R so that
F (R) = 1− hQ
pλ
Q =
√2
h
(Kλ + pλn(R)
)
Calculate Q1 =
√2
h
(Kλ + pλn(R0)
).
Find R1 so that
F (R1) = 1− hQ1
pλ
(using bisection search, or F−1 if you know it.)
![Page 71: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/71.jpg)
Optimizing G (Q,R)
Want Q and R so that
F (R) = 1− hQ
pλ
Q =
√2
h
(Kλ + pλn(R)
)
Calculate Q2 =
√2
h
(Kλ + pλn(R1)
).
Find R2 so that
F (R2) = 1− hQ2
pλ
(using bisection search, or F−1 if you know it.)
![Page 72: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/72.jpg)
Optimizing G (Q,R)
Want Q and R so that
F (R) = 1− hQ
pλ
Q =
√2
h
(Kλ + pλn(R)
)
Calculate Q2 =
√2
h
(Kλ + pλn(R1)
).
Find R2 so that
F (R2) = 1− hQ2
pλ
(using bisection search, or F−1 if you know it.)
![Page 73: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/73.jpg)
Optimizing G (Q,R)
Want Q and R so that
F (R) = 1− hQ
pλ
Q =
√2
h
(Kλ + pλn(R)
)
Calculate Q3 =
√2
h
(Kλ + pλn(R2)
).
Find R3 so that
F (R3) = 1− hQ3
pλ
(using bisection search, or F−1 if you know it.)
![Page 74: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/74.jpg)
Optimizing G (Q,R)
Want Q and R so that
F (R) = 1− hQ
pλ
Q =
√2
h
(Kλ + pλn(R)
)
Calculate Q3 =
√2
h
(Kλ + pλn(R2)
).
Find R3 so that
F (R3) = 1− hQ3
pλ
(using bisection search, or F−1 if you know it.)
![Page 75: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/75.jpg)
Optimizing G (Q,R)
Etcetera! Keep going around in circles!
![Page 76: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/76.jpg)
Optimizing G (Q,R)
Stop when Qn+1 ≈ Qn and Rn+1 ≈ Rn (up to some specified
accuracy)
![Page 77: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/77.jpg)
Done!
We developed a method to find optimal Q and R in this
model, with assumptions
• Holding costs: rate of h
• Order costs: fixed component K and variable component
c
• Penalty costs: p per unit stock out
![Page 78: Practical Tools for OR, ML and DS - Cornell University · 2020. 2. 16. · The EOQ model kept cycle stock but no safety stock. Optimizing the total cost ... Assuming demand is independent](https://reader035.vdocuments.us/reader035/viewer/2022071408/60ff897964931560e5010062/html5/thumbnails/78.jpg)
Done?
We developed a method to find optimal Q and R in this
model, with assumptions
• Holding costs: rate of h
• Order costs: fixed component K and variable component
c
• Penalty costs: p per unit stock out
How to specify p?