SOLVING ROBUST SUPPLY CHAIN PROBLEMS Daniel Bienstock Nuri Sercan Özbay Columbia University, New York November 13, 2005
Project with Lucent Technologies Optimize the inventory buffer levels in a complicated supply chain network. Business objective: meet the demand in a timely fashion and without excessive inventory buildup Limited demand data Poor quality of forecasts there is a paucity of data Short product life cycles Occasional boosts in demand Long lead-times with high uncertainty They need policies that are simple to implement How to handle uncertainty?
Robust Optimization Addresses the parameter uncertainty in optimization problems Developed in late 90 s Ben-Tal and Nemirovski (1998), (1999), (2000). El-Ghaoui et al. (1997), (1998). Bertsimas and Sim (2003). Ben-Tal et al.(2004). Application to supply chain management Bertsimas and Thiele (2003). Adversarial queueing Cruz (1991). Borodin et. al. (1996). Andrews et.al. (1996). Other work Gallego, Ryan and Simchi-Levi (1996).
Supply Chain Problem - Basic Model Single item, single station inventory problem over a finite time horizon t = 1, 2,..., T x t : inventory level at the beginning of period t, u t : amount of items ordered in period t, d t : demand in period t. u_t u_t+1 x_t x_t+1 x_t+2 t t+1 d_t d_t+1 Inventory level evolves according to the equation x t+1 = x t + u t d t
Supply Chain Problem - Basic Model Single item, single station inventory problem over a finite time horizon t = 1, 2,..., T x t : inventory level at the beginning of period t, u t : amount of items ordered in period t, d t : demand in period t. Inventory level at the beginning of period t x t+1 = x t + u t d t = x 1 + t i=1 (u i d i ) c t : unit ordering cost in period t, h t : unit holding cost in period t, b t : unit backlogging cost in period t. Inventory holding/shortage cost: max{h t (x t + u t d t ), b t (d t u t x t )} Ordering cost: c t u t Total cost of a given demand stream, d and order vector u t=1 C(u, d) = T c tu t + max{h t (x 1 + t (u i d i )), b t ( x 1 + t (d i u i ))} i=1 i=1
Demand Uncertainty No probability distribution is given. Demand can take any value from a set D First model we consider: Bertsimas and Thiele model, uses some ideas from Bertsimas and Sim In each period demand is in some interval d t [µ t δ t, µ t + δ t ] Risk in period t = d t µ t Budgets for risk: Γ t δ t d 1 µ 1 δ 1 + d 2 µ 2 +... + d t µ t Γ t δ 2 δ t D = { (d 1, d 2,..., d T ) : d 1 µ 1 δ 1 +... + d t µ t Γ t, 0 δ t d t µ t δ t 1, t {1, 2,..., T } }
Demand Uncertainty No probability distribution is given. Demand can take any value from a set D First model we consider: Bertsimas and Thiele model, uses some ideas from Bertsimas and Sim { } d 1 µ 1 D = (d 1, d 2,..., d T ) : δ +... + d t µ t 1 δ Γ d t µ t t, 0 t δ 1, t {1, 2,..., T } t Second model: Demands with peaks (adversarial queuing model) Interval or peak value: d t [µ t δ t, µ t + δ t ] {p t } Window size parameter w. At most one peak in w consecutive periods D = {(d 1,..., d T ) : d t = s t + I t p t, I t (µ t δ t ) s t I t (µ t + δ t ), I t {0, 1} for t = 1,..., T t+w 1 I t 1 for t = 1,..., T w + 1} i=t
Demand Uncertainty No probability distribution is given. Demand can take any value from a set D Bertsimas and Sim model { D = (d 1, d 2,..., d T ) : d 1 µ 1 δ 1 +... + d t µ t Γ t, 0 Demand model with peaks (adversarial queuing model) δ t d t µ t δ t 1, t {1, 2,..., T } } D = {(d 1,..., d T ) : d t = s t + I t p t, I t (µ t δ t ) s t I t (µ t + δ t ), I t {0, 1} for t = 1,..., T t+w 1 I t 1 for t = 1,..., T w + 1} i=t Robust Supply Chain Problem min u 0 max {C(u, d)} d D (C(u, d)= cost with orders u and demands d)
Static vs. Dynamic Policies Static policies: Inventory controller determines the exact order amounts, i.e. u t s in advance. Orders are fixed no matter how much inventory you have Poor performance when demand is uncertain Dynamic policies: In each period inventory controller specifies the orders as a function of the beginning inventory Handles the uncertainties in the demand since it gives the inventory controller freedom to change the orders according to the inventory level Very hard to implement if you don t have a closed form definition of the function Basestock Policies: Given a basestock level, σ, place an order of σ x t if your beginning inventory, x t, in period t is less than σ, do nothing otherwise. In between two extreme policies Gives some power to inventory controller to handle uncertainties Easy to implement, widely used in practice
Static Policies: LP Formulation Reformulating robust supply chain problem Min K s.t K max d D { C( u, d ) }. u 0
Static Policies: LP Formulation Reformulating robust supply chain problem Min s.t K + T t=1 K T t=1 c t u t max{h t (x 1 + t (u i d i )), b t ( x 1 + t (d i u i ))} d D i=1 i=1 u 0
Static Policies: LP Formulation Reformulating robust supply chain problem LP(D) Min s.t T t=1 c t u t + K K T Kt d t=1 Kt d h t (x 1 + t (u i d i )) t = 1, 2,..., T d D i=1 Kt d b t (x 1 + t (u i d i )) t = 1, 2,..., T u 0 i=1 LP with infinite number of constraints Benders like approach; maintain a working formulation Maintain a subset ˆD D. Solve the LP( ˆD) to get a candidate for the optimal solution. Optimal cost of LP( ˆD) gives a lower bound for the original problem.
Prototype Algorithm Given a vector u of orders, we solve the Adversarial Problem to generate a cut: Seperates the current u Gives an upper bound for the optimal cost max {C( u, d )}. d D Step 1. Let d D. Set ˆD = {d}. Set UB to infinity. Step 2. Solve LP( ˆD). Set LB to objective value of the LP( ˆD). Set u to the optimal solution to the LP( ˆD). Step 3. Solve Adversarial Problem using u. Update U B according to the objective value. Set d to the solution to the Adversarial Problem. Step 4. If LB UB, set ˆD = ˆD {d }. Go to Step 2. Step 5. Otherwise, u is optimal. Stop.
Adversarial Problem: Bertsimas and Thiele Demand Model d 1 µ 1 δ 1 +... + d t µ t δ t Γ t, d t [µ t δ t, µ t + δ t ] δ t, µ t, Γ t, parameters, d t = demand at t max d D { Tt=1 {c t u t + max{h t (x t + u t d t ), b t ( (x t + u t ) + d t )} } Assume that Γ t is integral for every t: then all extreme points of the polyhedral set D have DP formulation for adversarial problem d t µ t δ t integral, t. V t (x, k) = cost-to-go assuming inventory x and k units of risk used up V t (x, k) = ( max {c t u t + max{h t (x + u t d), b t (d u t x)} + V t+1 x + u t d, k + d {µ t,µ t +δ t,µ t δ t } d µ t δ t )} V T +1 (x, k) = 0 k V t (x, k) is convex piecewise linear in x with finite number of pieces. Construct the function V t (x, k) for each integral 0 k Γ t
Numerical Results 500 test runs for each class. Running Time (sec.) Number of Iterations # periods average max min average max min Periodic (with peaks) Periodic (with budgets) Discounted (with peaks) Discounted (with budgets) 50 0.07 0.17 0.01 4.03 7 3 200 3.00 11.90 0.35 4.26 9 3 500 42.10 149.00 3.85 3.74 7 3 50 0.04 0.85 0.01 4.33 26 3 200 0.61 10 0.26 4.13 17 3 500 5.99 33.70 3.19 3.85 11 3 50 0.07 0.19 0.01 4.03 7 3 200 3.47 16.20 0.42 4.83 11 3 500 55.40 336.00 4.68 4.76 15 3 50 0.03 0.42 0.01 4.28 20 3 200 0.92 38.70 0.32 4.37 35 3 500 9.32 238.00 2.71 4.56 26 3
Basestock Problem Recap: Basestock level is equal to sigma means, we order σ inventory level whenever the inventory level drops below σ System dynamics Ordering cost x t+1 = max{x t d t, σ d t } Inventory holding/shortage cost becomes c t max{0, σ x t } max{h t max{x t d t, σ d t }, b t max{x t d t, σ d t }} Problem: min σ max d D t (ordering cost at t + holding/shortage cost at t)
Static vs Basestock Policies Example Static Policy Basestock Policy Error (%) 1 10,115.00 12,242.17-17.38 2 9,097.50 9,255.44-1.71 3 172.94 175.83-1.64 4 615,000.00 132,000.00 365.91 5 2,800,000.00 538,000.00 420.45 6 354,000.00 48,900.00 623.93 7 3,440,000.00 76,500.00 4396.73 Basestock policies are significantly better when uncertainty is high
Numerical Results for Basestock Model Up to 45% error in the cost We generate budgets using Bertsimas and Thiele formula - Assuming we know first two moments of the demand dist. Cost changes linearly according to the variability of the demand
Impact of variance on optimal basestock P = peak size (constant), W = window size experiment: scale P and W by the same constant Scale Optimal Basestock 0.4 74.92 0.6 78.10 0.8 75.30 1.0 119.98 1.2 125.63 1.4 131.54 1.6 74.29 1.8 74.29 2.6 74.21 Matches results for stochastic models
Basestock Problem: Finite Number of Demand Patterns Decision maker s problem: We want to choose σ so as to minimize max d ˆD C(σ, d) Total cost C(σ, d) = T (c t max{0, σ x t } + max{h t max{x t d t, σ d t }, b t max{x t d t, σ d t }}) t=1 Second term is non-convex w.r.t σ due to shortage cost. However, C(σ, d) is piecewise-convex with a polynomial number of pieces. RESULT: If ˆD is a finite set we can solve using binary search min σ max {C(σ, d)} d ˆD
Adversarial Problem Remark: If beginning inventory drops below σ in some period t, then it will be below σ for all periods after t. Divides the horizon into two parts with different cost structure and dynamics Part 1: Inventory evolution: x t+1 = x t d t Ordering cost: 0 Inventory cost: h t (x 1 t i=1 d i ) Part 2: Inventory evolution: x t+1 = σ d t Ordering cost: c t (σ x t ) Inventory cost: max{h t (σ d t ), b t (σ d t )} For each t, solve each part separately
Comparison with Bertsimas and Thiele Model Min s.t K + T c t u t t=1 K T max{max {h t(x 1 + t (u i d i ))}, max {b t( x 1 + t (d i u i ))}} d D d D t=1 i=1 i=1 u 0 Maximizes RHS of each constraint seperately. More conservative. Example Robust Optimal B-T Objective B-T Real Cost Error 1 3429 3861 3798 10.76% 2 12266 14925 12991 5.91% 3 12161 14656 13509 11.08% 4 7668 9935 9195 19.91% 5 39250 40533 39763 1.31%