安全在庫配置モデル - LOG OPT HOME

ロジスティクス工学
第5章
安全在庫配置モデル
サプライ・チェインの設計と管理
3.3節 リスク共同管理
第6章 戦略的提携
第8章 製品設計とサプライ・チェイン設計の統合
東京海洋大学
久保 幹雄
在庫配置の原則
• 在庫はまとめておいた方が少なくて済む!
<- 統計の基礎(「サプライ・チェインの設計と
管理」pp.24-25,Excel Table2-2.xls 参照)
統計量
年間需要の
期待値
年間需要の
標準偏差
変動係数
(標準偏差/平均)
顧客1
24,237
4,658
0.192
顧客2
20,905
3,427
0.173
合計
45,142
6,757
0.150
リスク共同管理(risk pooling)
• 「サプライ・チェインの設計と管理」p.64 3.3節,Excel
Table3-5.xls 参照(商品Aの需要)
(リード時間は1と仮定している.)
週
マサチューセッツ
ニュージャージー
計
平均
39.25
38.625
77.875
標準偏差
13.17736154
12.0467838
20.7118841
1
33
46
79
2
45
35
80
安全在庫
24.77343969
22.64795355
38.9383421
3
37
41
78
4
38
40
78
5
55
26
81
6
30
48
78
7
8
18 58
18 55
36 113
発注点
Q(発注量) 補充目標点
64.02343969 132.0774184 156.8508581
61.27295355 131.0216267 153.6695803
116.8133421 186.0406168 224.9789589
サプライ・チェインにおける
在庫削減の手法
• 複数拠点の在庫を1ヶ所に集約する!
-> リスク共同管理(risk pooling)
• 製品のバリエーションを増やすのを,なるべくサプライ・
チェインの下流(需要側)でやる!
->遅延差別化(delayed differentiation)
また,そのために製品設計(サプライ・チェインの設計)か
ら変える!
->製造のための設計(design for manufacturing) ,
ロジスティクスのための設計(design for logistics)
平均,安全,最大在庫量
• 需要の平均μ=100,標準偏差σ=100の正
規分布(正確には負の部分を切り取った分
布:切断正規分布)
• サービスレベル(品切れを起こさない確率)
95%->安全在庫係数 1.65
在庫量=  L+安全在庫係数   L
平均,安全,最大在庫量のExcelに
よる計算(demand1.xls)
=100*A2
リード時間(T)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
平均需要
100
200
300
400
500
600
700
800
900
1000
1100
1200
1300
1400
1500
1600
1700
1800
1900
=B2+1.65*100*SQRT(A2)
最大需要
265
433
586
730
869
1004
1137
1267
1395
1522
1647
1772
1895
2017
2139
2260
2380
2500
2619
安全在庫
165
233
286
330
369
404
437
467
495
522
547
572
595
617
639
660
680
700
719
=C2-B2
3000
2500
2000
平均需要
最大需要
安全在庫
1500
1000
500
0
0
5
10
リード時間
15
20
直列多段階モデル
発注後ちょうどL日後に品目(商品)
の補充を行うことを保証している.
保証リード時間
=0
部品
外部
工場
平均需要量=100個/日
標準偏差=100
の正規分布
保証リード時間
=0
小売店
工場
卸
2日
1日
1日
30円
40円
供給
生産時間
3日
在庫費用(商品の価値)
10円
20円
Excelによる表現1(scm1.xls)
保証リード時間:発注後から補充までの日数(アスクルなら1日)
0段目と4段目の保証リード時間は固定
変数(ここを変える!)
段階
生産時間
在庫保管比率×価値
保証リード時間
入庫リード時間
補充リード時間
正味補充時間
総在庫費用
外部
部品工場
工場
0
3
2
0
10
20
0
0
0
0
0
0
0
3
2
0
3
2
0 1732.050808 2828.427125
卸
小売り
1
30
0
0
1
1
3000
1
40
0
0
1
1
4000 11560.47793
Excelによる表現2
入庫リード時間:品目発注後に生産を開始できるまでの日数
=
段 階
生 産 時間
在 庫 費用
保証リード 時間
入庫リード 時間
補充リード 時間
正味補充時間
総在庫費用
0
1
2
0
3
2
0
10
20
0
0
0
0
0
0
0
3
2
0
3
2
0 1732.050808 2828.427125
3
4
1
30
0
0
1
1
3000
1段階目の入庫リード時間=0段目の保証リード時間
1
40
0
0
1
1
4000 11560.47793
Excelによる表現3
補充リード時間:品目発注後に生産が完了するまでの日数
+
=
段 階
生 産 時間
在 庫 費用
保証リード 時間
入庫リード 時間
補充リード 時間
正味補充時間
総在庫費用
0
1
2
0
3
2
0
10
20
0
0
0
0
0
0
0
3
2
0
3
2
0 1732.050808 2828.427125
3
4
1
30
0
0
1
1
3000
補充リード時間=入庫リード時間+生産時間
1
40
0
0
1
1
4000 11560.47793
Excelによる表現4
正味補充時間=補充リード時間ー保証リード時間
ー
=
段 階
生 産 時間
在 庫 費用
保証リード 時間
入庫リード 時間
補充リード 時間
正味補充時間
総在庫費用
0
1
2
0
3
2
0
10
20
0
0
0
0
0
0
0
3
2
0
3
2
0 1732.050808 2828.427125
3
4
1
30
0
0
1
1
3000
1
40
0
0
1
1
4000 11560.47793
正味補充時間(日)の間の最大需要量分だけ安全在庫を
もっていれば,在庫切れがおきない!
Excelによる表現5
総在庫費用=在庫費用*安全在庫係数(=1)*需要の標準偏差(=100)*√正味補充時間
=
段 階
生 産 時間
在 庫 費用
保証リード 時間
入庫リード 時間
補充リード 時間
正味補充時間
総在庫費用
0
*100*SQRT(
1
2
0
3
2
0
10
20
0
0
0
0
0
0
0
3
2
0
3
2
0 1732.050808 2828.427125
3
)
4
1
30
0
0
1
1
3000
1
40
0
0
1
1
4000 11560.47793
正味補充時間(日)の間の最大需要量分だけ安全在庫を
もっていれば,在庫切れがおきない!
Excelによる表現6(最適解)
段階
生産時間
在庫保管比率×価値
保証リード時間
入庫リード時間
補充リード時間
正味補充時間
総在庫費用
外部
部品工場
0
3
0
10
0
0
0
0
0
3
0
3
0 1732.050808
工場
卸
2
20
2
0
2
0
0
小売り
1
30
3
2
3
0
0
1
40
0
3
4
4
8000 9732.050808
最適解
4日間の最大需要量
3日間の最大需要量
保証リード時間 0 0 2 3 0
需要
部品工場
工場
卸売業者
小売店
生産時間
3 2 1 1
在庫保管比率×価値
10 20 30 40
直列多段階モデルに対する
動的計画法(DP: Dynamic Programming)
•
•
•
•
h(i): 第i段階の在庫費用
T(i): 第i段階の生産時間
D(t,i): t日間の第i段階の最大需要量
f(L,i): 第i段階における保証リード時間がLのときの最小
費用
• 再帰方程式
f(L,i)= min {f(LI,i-1)+h(i)*D(LI+T(i)-L,i)}
LI
• 初期条件
f(L,0)=0 for all L
i
i-1
0
1
LI
2
L
3
4
直列多段階モデルに対するDP(1)
宣言とデータ読み込み
n=4
'Number of Stages
Lmax = 10
'保証リード時間の最大値
Dim T() As Integer '生産時間
Dim h() As Integer '在庫費用
Dim f() As Long
'f(L,i):第i段階の保証リード時間がLのときの最小費用
Dim prev() As Integer 'prev(L,i): f(L,i)の最小値を達成するための第i-1段目の保証リード時間
'
ReDim T(n) As Integer
ReDim h(n) As Integer
ReDim f(Lmax, n) As Long
ReDim prev(Lmax, n) As Integer
'Read Data
For i = 0 To n
T(i) = Cells(2, i + 2).Value
h(i) = Cells(3, i + 2).Value
Next i
直列多段階モデルに対するDP(2)
初期化とDPアルゴリズム
'Initialize
For i = 1 To n
For L = 0 To 9
f(L, i) = 999999
Next L
Next i
'DP
For i = 0 To n - 1
For L = 0 To 9
For L2 = 0 To 9
If L + T(i + 1) - L2 >= 0 Then
dummy = f(L, i) + h(i + 1) * 100 * Sqr(L + T(i + 1) - L2)
If f(L2, i + 1) > dummy Then
f(L2, i + 1) = dummy
prev(L2, i + 1) = L
End If
End If
Next L2
Next L
Next i
結果
f(L,I)
L=0
L=1
L=2
L=3
L=4
L=5
L=6
L=7
prev(L,I)
L=0
L=1
L=2
L=3
L=4
L=5
L=6
L=7
1
1732
1414
1000
0
0
0
0
0
2
4472
3732
1732
1414
1000
0
0
0
3
6928
4472
3732
1732
1414
1000
0
0
4
9732
6928
4472
3732
1732
1414
1000
0
1
2
3
4
0
0
0
0
1
2
3
4
3
0
0
1
2
3
4
5
2
0
1
2
3
4
5
6
3
0
1
2
3
4
5
6
Min{
1832+h(2)*10*sqrt(2)
1414+h(2)*10*sqrt(3)
1000+h(2)*10*sqrt(4)
0 +h(2)*10*sqrt(5)}
=20*10*sqrt(5)
=4472
最適値 f(0,4)=9732
最適保証リード時間
4段階=0
(顧客の保証リード時間
は0だから)
3段階 prev(0,4)=3
2段階 prev(3,3)=2
1段階 prev(2,2)=0
の順に読む.
入庫リード時間
入庫リード時間:
品目発注後に生産を開始できるまでの日数
3日
保証リード時間
10日
入庫リード時間=max{3,10}=10日
10日
補充リード時間
補充リード時間:品目発注後に生産が完了
するまでの日数
3日
保証リード時間
10日
入庫リード時間=max{3,10}=10日
10日
1日
生産時間=1日
補充リード時間=10+1=11日
正味補充時間と安全在庫1
正味補充時間=補充リード時間ー保証リード時間
=11ー0=11日
安全在庫 = 11日間の最大需要ー11日間の平均需要
= 安全在庫比率×SQRT(11)
3日
保証リード時間=0日
安全在庫=11日分
保証リード時間
10日
1日
10日
補充リード時間=10+1=11日
正味補充時間と安全在庫2
正味補充時間=補充リード時間ー保証リード時間
=11ー5=6日
安全在庫 = 6日間の最大需要ー6日間の平均需要
= 安全在庫比率×SQRT(6)
3日
保証リード時間=5日
6日
保証リード時間
10日
10日
5日
1日
保証リード時間を増やすと...
(保証リード時間が)11日までは在庫が減少!
安全在庫も11日までは減少!
安全在庫量
3.5
3
2.5
2
1.5
1
0.5
0
0
11
保証リード時間
共同管理係数α
倉庫
需要地点1 N(100,100)
平均100
標準偏差100
正規分布
需要地点2
N(100,100)
最大需要量  平均需要量



 1/ 
(最大需要量1  平均需要量1 )  (最大需要量2  平均需要量2 )
需要の相関
(共同管理係数による安全在庫の変化)demand2.xls
1600
安全在庫
共同管理係数=1
共同管理係数=2
共同管理係数=3
1400
1200
1000
800
600
400
200
0
0
5
10
15
20
木ネットワークモデルの例データ
(scm2new.xls)
=MAX(B6,C6)
=F6
=MAX(D6,E6)
地点番号
1 2 3 4
5
6
7
生産時間
6 2 3 3
3 3
3
在庫保管比率×価値
1 1 3 1
5 6
6
外部需要量
100
100
保証リード時間
4
1
保証リード時間
0 0 3 3
0 3
1
入庫リード時間
0 0 0 0
3 0
0
補充リード時間
6 2 3 3
6 3
3
正味リード時間
6 2 0 0
6 0
2計
総在庫費用
57 33 0 0 285.7883832 0 140.0071427 515.9532026
需要の標準偏差
14 14 14 14 14.14213562 10
10
=B7+B2 =B8-B6
=B3*1.65*B11*SQRT(B9)(右にコピー)
すべての地点に安全在庫を配置
(保証リード時間=0)
地点番号
生産時間
在庫保管比率×価値
外部需要量
保証リード時間
保証リード時間
入庫リード時間
補充リード時間
正味リード時間
総在庫費用
需要の標準偏差
1
2
6
1
0
0
6
6
57
14
3
2
1
4
5
6
3
3
3
1
3
5
0
0
0
0
2
3
2
3
33 121
14 14
0
0
3
3
40
14
0
0
3
3
202.0829038
14.14213562
3
6
100
4
3
0
3
0
0
10
7
3
6
100
1
1
0
3
2計
140.0071427 593.9140461
10
ネットワーク型モデルの例
6万円 ≦ 4日
≧ 0日
≧ 0日
6
1万円
3
1万円 ?日
?日
3
?日 3万円
≧ 0日
2
1万円
4
3
?日
5万円
付加価値=1万円
3
平均=100
標準偏差=10
?日
6万円 ≦ 1日
1
3
平均=100
標準偏差=10
ネットワーク型モデルの例
(保証リード時間=0;593万円)
0日
0日
6
6
3
3
3
3
0日
0日
3
3
0日
2
2
3日
3
0日
3
0日
0日
1 1日
2
3
ネットワーク型モデル(最適解;515万
円)
0日
0日
6
6
4 2
3
1
3日
0日
3
6
4日
4
3
3
4日
3
5
3日
3
1
3
1日
0日
3
1
1 1日
3
在庫シミュレーション(各在庫地点にお
ける日々の在庫管理方策)
=INT(1.65*3*SQRT(4))+1
=INT(NORMINV(RAND(),10,3))
期(日)
1
2
3
4
5
6
7
8
9
10
需要量(平均
10,標準偏差3
の正規乱数)
10
10
10
10
14
12
13
11
8
14
注文到着量
(リード時間4)
発注量
10
10
10
10
14
12
13
11
8
14
=B6
10
10
10
10
14
12
=C2
=E6+F6
安全在庫量(1.65
期末在庫ポジション
×標準偏差×
注文未到着量 (=安全在庫量+注
sqrt(リード時間)
(期末)
文未到着量)
10
6
4
1
0
6
4
44
46
49
50
44
46
50
50
50
50
50
50
=C3+C4+C5+C6
=E5-B6+D6
ペケトン社の例
(遅延差別化と押し出しと引っ張りの境界)
3円
2円
在庫保管費用
=1円
1
2
3
4
生産時間=1日
5
6 需要 N(1,1)
平均1,標準偏差1
の正規分布
7
8
9
練習問題5-2
• ペケトン社の例において,保証リード時間
を変化させたときの在庫費用を計算するた
めのExcelファイルを作成せよ.
• 保証リード時間を色々と変えることによっ
て(What If分析によって)良好な解(総在
庫費用を小さくするような各在庫地点の保
証リード時間)を求めよ.
ペケトン社の例(遅延差別化)
工程の順序を変えることによって
在庫が低減->遅延差別化
(delayed differentiation, postponement)
在庫保管費用
=1円
3円
3
2円
4
1
2
5
6
需要 N(1,1)
練習問題5-3
• 遅延差別化を適用した後のペケトン社の例にお
いて,保証リード時間を変化させたときの在庫費
用を計算するためのExcelファイルを作成せよ.
• 保証リード時間を色々と変えることによって
(What If分析によって)良好な解(総在庫費用を
小さくするような各在庫地点の保証リード時間)
を求めよ.
• 顧客に対する保証リード時間を1日から0日に変
化させた場合を考えよ.
押し出しと引っ張りの境界
保証リード時間
=1日
布調達
トレーナー
製造
染め工程
押し出し型(push)生産
押し出しと引っ張りの境界
デカップリング地点
保証リード時間
=0日
布調達
トレーナー
製造
トレーナーの在庫を2日分にするための見込み生産
押し出し型(push)生産
染め工程
注文を確認後に染め工程開始
引っ張り型(pull)生産