Designing an Inventory Demand Forecast System
Overstocked and understocked parts are becoming a problem for one of my clients. Purchase orders are submitted ~every two weeks. Delivery takes 1-2 weeks. My client keeps track of inventory records with a .NET-based system I built.
I want to enhance the inventory management system to continually advise on inventory levels by forecasting inventory demand and suggesting optimal purchase orders. I've read plenty of what I could find on forecasting algorithms, but I need help with designing a good algorithm (or weighting several algorithms) for an accurate forecast.
Understocked items carry a greater cost than overstocked items to this client, since m开发者_如何学Cost parts will eventually be used, but cash could have been used for something else.
It would be nice to represent demand with incrementing risk, which leans toward an initial Monte Carlo implementation.
How should I approach this problem? What are good/standard algorithms to use for this type of problem? Are there any good, free libraries for tackling the inventory demand problem?
This is a pretty well understood area. It also goes under the name "demand forecasting", "inventory management", or "inventory replenishment."
A simple technique that works well is called "exponential smoothing." It came out of research done in the 40s for the Navy - looking at how to keep shipyards stocked for building warships.
The original paper by Charles C. Holt, "Forecasting seasonals and trends by exponentially weighted moving averages," was reprinted in 2004 in the "International Journal of Forecasting," but I am sure you can find other tutorials and articles - it's become a standard technique.
There is a stackexchange which includes this topic: http://stats.stackexchange.com. "Forecasting" and "smoothing" are good tags to use. Rob Hyndman over there has given many good answers and written at least one book on the subject: "Forecasting: Methods and Applications".
Before you go and try to guess the future, you may be able to present your users with something that will be just as useful. Can they currently get a graph of past orders, with varying time periods, to get an idea of the cyclic nature of your business?
It sounds to me, that this is not a problem of the system not being able to predict the future demand, but more of a problem presenting current and past data trends to the user. Even a printed chart or graph which has extra space into "the future" would allow them to pencil in future demand themselves could prove to be a huge boon.
In the end I would be wary of putting too much trust into "risk management" algorithms, since these poorly understood algorithms (by the users) have caused the demise of more than just one business.
I realize this isn't answering your question, but perhaps the answer is found elsewhere? If you want I'll delete this answer, so others will think this question as still unanswered.
精彩评论