A stochastic multi-item lot-sizing problem with bounded number of

www.argon-consult.com
A stochastic multi-item lot-sizing problem with bounded
number of setups
Séminaire des doctorants
February 8th, 2017
Etienne de Saint Germain
joint work with Frédéric Meunier and Vincent Leclère
Outline
• Business problem and model
• Deterministic model
• Stochastic model
• Numerical experiments
Business problem
• Context: production function of the Supply Chain for one assembly line
• Objective: reduction of holding costs
• Main constraints: industrial flexibility and “high service level”
• Typical horizon: 10 to 15 weeks
• Typical time step: 1 week
• Input data:
I
I
I
a set of references r ∈ R
capacity of the line
demand for each reference and each week
2 / 20
Classical problem: Capacitated Lot-Sizing Problem (CLSP)
min
T X
X
(htr str + ctr xtr )
t=1 r ∈R
r
r
r
r
s.t. sX
t = st−1 + qt − dt
qtr ≤ 1
r ∈R
qtr ≤ xtr
xtr ∈ {0, 1}
qtr , str ≥ 0
∀t, ∀r
∀t
∀t, ∀r
∀t, ∀r
∀t, ∀r
• with (r ∈ R for references, t ∈ [T ] for weeks):
htr
ctr
dtr
input data
holding cost
setup cost
demand
str
qtr
xtr
3 / 20
variables
inventory level
produced quantity
setup variable
(CLSP)
Disadvantage of CLSP formulation (according to Argon Consulting)
• Hard to compare holding costs and setup costs
• Number of setups is a “technical” constraint
I
I
Given by operational level
Represent scheduling constraints (which are neglected at tactical level)
4 / 20
Multi-item lot-sizing problem with bounded number of setups
min
T X
X
r
(htr str + H
ctr x
H
t)
H
t=1 r ∈R
r
r
r
r
s.t. sX
t = st−1 + qt − dt
qtr ≤ 1
r ∈R
r
qX
t ≤
∀t, ∀r
∀t
(P)
xtr
xtr ≤ N
∀t, ∀r
∀t
r ∈R
xtr ∈ {0, 1}
qtr , str ≥ 0
∀t, ∀r
∀t, ∀r
• Bounded number of setups per week (N)
• Easier for industrials to quantify holding costs and N
5 / 20
Outline
• Business problem and model
• Deterministic model
• Stochastic model
• Numerical experiments
The deterministic model is hard
• (P) is N P-hard (reducing 3-PARTITION)
I
I
Decide if there is a solution when N = 1 is polynomial
Cases N = 1 and N = 2 still open
• Continuous relaxation of (P) does NOT depend on N
• 2 natural extended formulations:
I
I
1 binary variable xp,t where p ∈ R
N per possible plan for a week
1 binary variable yq,r where q ∈ 2[T ] per possible plan for a reference
references
weeks
yq,r
xp,t
I
Same continuous relaxations than compact formulation
6 / 20
Outline
• Business problem and model
• Deterministic model
• Stochastic model
• Numerical experiments
Need for backlog
• Mathematical reason:
I
I
In general, there is no feasible solution
Simple example:
• bounded capacity C
• demand = Gaussian noise around forecast
probability of realization
infeasible region
forecast
demand
capacity
• Industrial reason:
I
I
Negative inventories are commercial constraints
=⇒ “soft” constraints
Firms can deliver late
7 / 20
Stochastic model
min E
s.t.
with:
" T
XX
#
(htr s̃ rt
+
γb rt )
t=1 r ∈R
s rt = s̃ rt − b rt
∀t, ∀r
r
r
r
r
sX
∀t, ∀r
t = s t−1 + q t − d t
r
qt ≤ 1
∀t
r ∈R
r
r
q
∀t, ∀r
t ≤ xt
X
x rt ≤ N
∀t
r ∈R
x rt ∈ {0, 1}
∀t, ∀r
q rt , s̃ rt , b rt ≥ 0
∀t, ∀r
σ (q rt ) , σ (x rt ) ⊂ σ (d r0 , . . . , d rt )r ∈R
∀t, ∀r
γ backlog penalization, s̃ rt inventory level,
b rt backlog quantity
8 / 20
(S)
Stochastic model: size difficulty
• Extensive formulation leads to a huge number of variables
0
t=0
1
2
1
1
I
I
2
2
1
t=1
1
2
1
2
2
1
t=2
2
t=3
example: for each references, 2 independent possibilities for demand
|R|
=⇒ number of variables multiplied by 2T
for T = 10, |R| = 10, numbers of variables ≈ 1030
• Need for heuristics to solve (S)
I
I
I
lot-size and cover-size
open-loop feedback approach
repeated two-stage stochastic programming approach
9 / 20
Aside: computing lot-size and cover-size
• Simplified model:
I
I
Constant demand for each reference over time
Aggregated demand
inventory level
Inventory level of reference r :
s̄r =
min
−d
r
cover-size
Tr
Corresponding program to solve:
1
d T2
2 r r
lot-size
2Tr
s.t.
time
X1
hr dr Tr
2
r ∈R
X 1
=N
Tr
r ∈R
∀r
Tr > 0
• Closed-form expressions of solutions
νr∗ =
√
1
N hr dr
p
=
P
Tr∗
hp dp
p∈R
and
Cost =
1
2N
!2
Xp
r ∈R
• Closed-form expressions of solutions for stochastic case
10 / 20
hr dr
Strategy: lot-size and cover-size
• Heuristic parameters: safety stock for each reference
foreach r ∈ R do
Compute cover-size Tr / lot size `r = dr Tr ;
for week from 1 to T do
foreach r ∈ R do
Observe inventory level of r ;
if current inventory level < safety stock then
case lot-size: produce quantity `r ;
case cover-size: produce the cumulated expected demand for the Tr
next weeks;
• Example:
I
I
For a reference r , Tr = 2 weeks
Expected demand is:
week t
expected demand ft
I
1
2
2
3
3
5
4
4
5
1
If current inventory level < safety stock at week 1, we must produce:
f1 + f2 = 2 + 3 = 5 units of reference r
11 / 20
Strategy: open-loop feedback approach
• At week t:
I
I
Observe current inventory level
Solve deterministic version of (S) where the random variable d rt is
replaced by the deterministic expected demand
• It is a Mixed Integer Program
• Almost program (P) but with backlog
I
Set production decisions for week t
12 / 20
Strategy: repeated two-stage stochastic programming approach
• At week t:
I
I
Observe current inventory level
Construct a fan of demand scenarios to approximate the tree of scenarios
in (S)
0
1
2
t=0
3
t=1
0
1
2
t=2
t=3
Complete tree of scenarios
I
I
Fan of scenarios
Solve (S)
Set production decisions for week t
13 / 20
3
There is a lot of possible forecasts
• Static deterministic forecast
I
Expectation, median...
• Adaptative deterministic forecast
I
Autoregressive process, time series...
• Stochastic forecast
I
Tree of scenario, fan of scenarios...
Every strategy works even if we do not know distribution laws.
We just need a forecast function!
14 / 20
Outline
• Business problem and model
• Deterministic model
• Stochastic model
• Numerical experiments
Simulations
Demand realization
Simulator
Strategy
Forecast
• Start at week t = 0
• Cycle service
level
current
past
time
I
I
I
• Holding costs
• Backlog costs
• For each week t:
Data
Key performance
indicators:
Observe inventory level
Use strategy and forecast to
compute the production planning
Set production for current week
• Return KPI
15 / 20
• Fill rate service
level
• ...
Data of the instances
• We use historical data from industrial
• Numerical values:
I
I
I
I
I
I
Horizon T = 13 weeks
|R| = 30 references
Demands 0 ≤ dtr ≤ 4000 units
Weekly capacity C ≈ 13000 units
Weekly number of setups N = 10
Holding costs 50 ≤ htr ≤ 80 per units
16 / 20
Building the distribution of the demand
• Autoregressive Process (AR1).
For each reference r ,
α = 50%
σ = 80%
dt+1 = ft+1 + αet + (1 − α) t+1
|
{z
}
et+1
I
I
I
I
dt is the demand
ft is the forecast
et is the forecast error
t ∼ N (0, σft ) is a white
noise
demand
where (at week t):
forecast
• 2 parameters:
I
I
α ∈ [0, 1] proportion
error/noise
σ is the volatility.
time
17 / 20
Results: holding costs for several realizations of demand
Cover-size Open-loop feed back
Lot-size
Two-stages stochastic
Holding costs
4 · 106
α = 50%
σ = 80%
3 · 106
2 · 106
1 · 106
0
0.2
0.4
0.6
0.8
1
1.2
Fill rate service shortage
18 / 20
1.4
1.6
Results: holding costs for several values of volatility
3 · 106
0.8
Holding costs
2.5 · 106
1.5
0 0.5
0.2
2 · 106
0.8
1.5 · 10
2
0.8
2
00.8 0.5
0.5 0.2
6
1 · 106
0
1.5
1.5
1.5 2
2
0.5
0.2
0
0
0.2
0.2
0.4
Cover-size
Lot-size
0.6
0.8
1
1.2
Fill rate service shortage
19 / 20
Open-loop feed back
Two-stages stochastic
1.4
1.6
1.8
2
Results: holding costs for several values of volatility
Thanks for your attention!
20 / 20