Five hot takes from my supply chain class: Opinions that might get me in trouble
I just wrapped up my Chain Modeling and Analysis class. I had 37 Industrial Engineering undergrads (mostly seniors) and a few master’s students who sat in. We covered network design, inventory, routing, the famous 7-11 Japan case, risk, and the bullwhip effect. We played Gurobi’s Burrito Game and the Kinaxis Supply Chain Game.
Since I’m hoping that some of these students work for people in my network, I wanted to share some of my hot takes (my unconventional opinion) with them.
Here they are, in order:
One: Optimization isn't that valuable in multi-echelon inventory optimization (MEIO).
I told the students that they should not tell anyone they believe this until they’ve spent many years in the field, and maybe not even then.
My friend and now a professor at Purdue, Stephan Biller, described a type of math model good for insights: Once you work through the math and the model, you get an insight. But you don’t need to rerun the model to use the insight.
I think MEIO is (mostly) like this. The insight is great: look at the entire supply chain to determine where you need safety stock buffers.
However, you don’t need to worry about the complicated optimization. In most supply chains, the choice of potential buffers is small, the realistic options for service times (the decision variable in MEIO) are limited, and you can’t change these buffers often.
Of course, you still need a tool to determine the best inventory level across echelons1. You also need to think about your buffer strategy (like creating a buffer of raw materials). Just don’t worry about running an optimization algorithm to determine where the buffer should be.
Two: Don’t worry about the assumption of a normal distribution in inventory models
Most textbook inventory models rely on an assumption of the normal distribution. This worries people because supply chain variability is not normally distributed.
I told my class that they shouldn’t worry about this assumption.
First, we think of the normal distribution with a nice bell-shaped curve. But you get the bell shape when the relative variation is low. When variation is high, the curve flattens and tends to be conservative.
Second, and more importantly, I feel like there are many things to worry about first:
Can you feed in relatively accurate data (like updated supplier lead times)?
Is your model reasonable?
Can you implement the solution with the right features for your planners (like overrides)?
Do you have a system for monitoring the performance of the algorithms?
Are you using machine learning to complement the model by predicting stock-outs, late shipments, unexpectedly large orders, and so on?
Three, I don’t like solving the vehicle routing problem with a direct integer program.
We cover the Traveling Salesman Problem. This gives us an excuse to talk about integer programs to solve it (and their drawbacks), handy heuristics (like nearest neighbor), and local search techniques (which are good to know).
But, when we get into how to solve a vehicle routing problem, there is a temptation to show an integer program that directly solves the problem. By directly, I mean an integer program with decision variables specifying if a particular vehicle travels from point A to point B (for all combinations of A and B).
I don’t like this approach. I haven’t seen it work well in practice. Most routing problems have too many hard-to-model constraints like time windows or driver rest requirements.
This opinion backs me into a corner. I need to teach some exact (or very sophisticated) approaches. I can’t just talk about simple heuristics. So, I taught the set-partitioning approach and introduced them to constraint programming (and Hexaly)2.
Four, the classic academic facility location models aren’t that special
Some classic academic facility location problems are UFLP, CFLP3, p-Median, Set Covering Location, and others. These tend to have specialized algorithms to solve.
To students, these look like very different models.
One of my favorite in-class exercises was to show them that the models weren’t that different. To do this, I introduced each of the classic models and asked how they would solve it using one of the models they knew about from our book, Supply Chain Network Design (think of these models as what you see in a commercial package). The trick was to figure out what inputs you could set to zero or some large number or if you had to run a few scenarios to get the answer.
Even though I created the exercise to show them that these models weren’t that different, it had the side benefit of teaching the art of modeling. It showed them you can creatively use a model to solve many problems.
Five, avoid inventory models with a cost of lost sale or backorder cost.
There are so many different inventory models. I had to narrow down what I taught.
Besides the classic News Vendor model, I told them to avoid inventory models with a cost of lost sale or backorder cost.
My reasoning is that these numbers are hard (impossible?) to get. And, even if you could get those costs, fill rate is a better input. Fill rate is easily measured and understood. It also implicitly estimates those costs. That is, if you have a desired fill rate of 99%, it means you think the cost of lost sales or backorders is high.
If I’ve led students astray with these takes, let me know!
Here, the word “optimization” is confusing. Good single-echelon inventory models optimize the level of inventory. When we talk about optimization in MEIO, we also mean optimizing where the safety stock buffers are. I’m suggesting that optimizing the location of safety stock buffers is better viewed as an insight rather than needing the math to figure out where to do this.
As an extension of constraint programming, the team at Hexaly was kind to let us see their solution. In the future, I’ll spend more time with that to give the students a sense of solvers tailored to problems like the VRP.
After doing facility location work since 1998, I first heard about UFLP about two years ago. The way it was talked about, I knew I was supposed to know it. When I looked it up, I was like, “Oh, that’s just a simple facility location problem.” UFLP = Uncapacitated Facility Location Problem. CFLP = Capacitated Facility Location Problem.