Multi-echelon Supply Chain Inventory Optimization
Vložit
- čas přidán 13. 07. 2024
- Determining appropriate inventory levels at each node of a multi-echelon supply chain in order to guarantee customer service levels is a challenging task for supply chain planners because of the complexities that arise due to various sources of uncertainties. In this seminar, I will discuss various concepts and ideas we have explored while working on such problems at Dow Chemical. Starting with single-echelon systems, I will demonstrate how conventional type-II service level models become inaccurate for practical systems that review inventory periodically, though frequently but not perpetually, because they fail to capture the undershoot caused by such periodic inventory monitoring, and will present an improved model. Various challenges presented by the multi-echelon systems for inventory assessment will be highlighted. Mathematical programming based multi-echelon inventory optimization models developed in the literature quantify uncertain demand or lead time assuming a Normal or Poisson distribution. I will demonstrate how such assumptions can severely impact and underestimate optimal inventory, and discuss the drawbacks of mathematical programming approaches. A novel simulation-optimization framework will be presented that not only generates more accurate results by bootstrapping historical data, but is also versatile to capture non-standard inventory policies and decisions. The discussion will be supported using a few business case studies from Dow Chemical.
Biography:
Anshul Agarwal is an Associate Research Scientist in Core R&D in The Dow Chemical Company with his research focused on application of computational methods, statistical data analysis, discrete event simulation, and operations research to production planning, batch scheduling, supply chain optimization, and various other R&D and manufacturing problems. He is a certified Six Sigma Green Belt Project Leader. Dr. Agarwal earned his PhD in Chemical Engineering from Carnegie Mellon in 2010 and his Bachelor of Technology from the Indian Institute of Technology Delhi. - Věda a technologie
Great work .. I liked how Dr. Anshul explained the pitfalls of assuming Normal Distribution of demand ..
yes very interesting !
Mantap
I had to use Google translate to figure out that this means "Great" in Indonesian. If that is the case, I'm glad you enjoyed it.
@@apm Can you make a video about this:
A single buyer single vendor supply chain system faces lumpy demand that follows normal distribution with (µ,δ)= (150,30). Holding cost in the buyer and vendor is IDR 7000 /unit/month and IDR 5000/unit/month respectively. Retailing profit in buyer per unit is IDR 30000, while profit per unit in the vendor is IDR 20000. Ordering cost in the buyer when place an order to the vendor is IDR 100000/order. Based on that description, develop a spread sheet-based simulation based on periodic review order (or production) up to R policy in order to minimize the total supply chain cost (total cost of the buyer and vendor).
@@user-wh4ke3rd5u I got this from ChatGPT:
To simulate the periodic review order (R) policy for the single buyer single vendor supply chain system, we can use discrete-event simulation. In this simulation, we'll model the supply chain system, simulate the lumpy demand using a normal distribution, and calculate the total supply chain cost over a specified period.
Let's start by implementing the Python program:
```python
import numpy as np
import simpy
# Parameters
SIMULATION_PERIOD = 12 # Simulation period in months
REVIEW_PERIOD = 1 # Review period (R) in months
# Demand distribution parameters
mean_demand = 150
std_demand = 30
# Costs
buyer_holding_cost = 7000
vendor_holding_cost = 5000
retailing_profit_buyer = 30000
profit_vendor = 20000
ordering_cost_buyer = 100000
def generate_lumpy_demand(mean, std):
"""Generate lumpy demand based on normal distribution."""
return max(0, np.random.normal(mean, std))
class Buyer:
def __init__(self, env):
self.env = env
self.inventory = 0
self.total_cost = 0
self.order_quantity = 0
self.next_review_time = REVIEW_PERIOD
def place_order(self):
"""Place an order to the vendor."""
order_qty = max(0, self.order_quantity)
self.order_quantity = 0
self.total_cost += ordering_cost_buyer
yield self.env.timeout(0) # Time taken to place the order
def review_inventory(self):
"""Review inventory level and place an order if needed."""
while True:
yield self.env.timeout(self.next_review_time)
demand = generate_lumpy_demand(mean_demand, std_demand)
self.inventory -= demand
# Calculate total holding cost for the current month
holding_cost = self.inventory * buyer_holding_cost
self.total_cost += holding_cost
if self.inventory = demand:
self.inventory -= demand
self.total_cost += self.inventory * vendor_holding_cost
self.env.process(self.fulfill_order())
else:
demand -= self.inventory
self.inventory = 0
self.total_cost += self.inventory * vendor_holding_cost
# Calculate total profit for the current month
profit = min(demand, self.buyer.inventory) * (
retailing_profit_buyer - profit_vendor
)
self.total_cost += profit
self.buyer.inventory -= demand
def run_simulation():
env = simpy.Environment()
buyer = Buyer(env)
vendor = Vendor(env, buyer)
env.process(buyer.review_inventory())
env.process(vendor.check_inventory())
env.run(until=SIMULATION_PERIOD)
total_cost = buyer.total_cost + vendor.total_cost
return total_cost
if __name__ == "__main__":
num_simulations = 1000
total_costs = []
for _ in range(num_simulations):
total_cost = run_simulation()
total_costs.append(total_cost)
average_cost = np.mean(total_costs)
print("Average Total Supply Chain Cost:", average_cost)
```
This program uses the `simpy` library for discrete-event simulation. It models the behavior of a single buyer and a single vendor over the specified simulation period. The simulation is run multiple times to get an average total supply chain cost over multiple runs.
Please note that the simulation might take some time to complete, especially when running a large number of simulations. Adjust the `num_simulations` variable based on the desired accuracy of the average cost estimation.
The output will give you the average total supply chain cost over the specified simulation runs, which should be the result of using the periodic review order (R) policy to minimize the total cost of the supply chain.
@@apm Can you explain it with Excel, I do not know anything about Excel Sir. 😅
If you can make a video about it in channel, using Excel would be great.
@@user-wh4ke3rd5u Please see the introductory videos to Excel here: apmonitor.com/che263/ Unfortunately, I can't help will the many individual requests for support that I receive each week, but I can point you to some resources.
Did not tell How did he bootstrap. And why even bootstrapping is required as long as you know demand is not normal.
not a very interactive lecture
+arup das It would be great to have a TED talk style lecture but unfortunately we are limited to slides and audio with this platform. Please join live sessions at apmonitor.com/wiki/index.php/Main/ApplicationWebinars for more interactive sessions.
These lectures are delivered over webinar. There is opportunity for interaction during the webinars through the chat window or through the Q+A at the end.
Very poor expression that is making grasping poor to participant.
I'm sorry that you didn't like the webinar. The sound quality is not like a studio recording because it is done with WebEx web recorder. See apmonitor.com/wiki/index.php/Main/ApplicationWebinars for additional content in Process Systems Engineering.