When Uncertainty Matters: Stochastic Programming for Inventory Model with Python - PyCon SG 2019

Published on: Monday, 11 November 2019

Speaker: Novia Listiyani, Data Scientist

Difference between selling price and cost price really matters – especially in retail industry. In fact, the ability to exploit that gap has been an integral part of their competitive advantage. Some companies are committed to maintain lower selling price to attract more customers, even if maintaining lower cost price is not easy. We should remember that the challenge is due to the dynamic nature of demand. Having high inventory means higher flexibility to fulfill demand but it comes with higher warehouse cost. The cost will be higher if there is expiry date for the sold goods as its selling price will be zero once such goods pass the expiry date. In the opposite, lower inventory will trigger sunk cost where we lose profit from unfulfilled demand. The simplest approach for this problem is to do a prediction modeling for the demand of the goods. Given that a company needs to decide a final number in daily basis – to trigger its inventory replenishment process accordingly – the next question to answer is whether it is enough to take the prediction number into consideration since every prediction comes with certain level of error. What if taking a slightly lower (or slightly higher) number can result in a lower total cost? Inspired by a real-world problem, we will discuss on the potentials of stochastic programming when implemented in our problem setup. Instead of doing prediction, we will focus on scenario generation: possible demand that may happen in the future and its probabilities. Then, we adopt linear programming formula from the famous newsvendor problem [1]. This formulation allows us to get number of goods to purchase from vendor with minimization of total cost as the main objective. Not only such approach will allow us to contribute directly to the business objective, but it can also provide flexibility to business stakeholders as they can propose different possible scenarios depending on the nature of the business. This approach can be implemented easily in Python with PuLP as the optimization library. [1] Alexander Shapiro, Andy Philpott, 2007, A Tutorial on Stochastic Programming, https://www2.isye.gatech.edu/people/faculty/Alex_Shapiro/TutorialSP.pdf.

About the speaker:

Novia L Wirhaspati met Python when she was working as production planner in a cigarette filter manufacture five years ago. She found it fun to learn Python during weekend. Obviously, back then, she had no idea on how it will affect her life in the future. Moving forward – after completing masters degree in Operations Research, University of Edinburgh – she is working as a data scientist where she uses Python in daily basis. She really enjoys working on her projects, which can be from different domains like product ranking, budget optimization, demand forecasting, topic clustering, and many others. Whether it is related to predictive analytics or prescriptive analytics, she thinks it is always mentally rewarding if she can implement things she has learned in real life. In her spare time, she likes to read and learn new things. She is also interested in mixed integer linear programming, stochastic programming, Bayesian regression, and reinforcement learning.

Event Page: https://pycon.sg/

Produced by Engineers.SG