牛鞭效应的模拟4

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

零、预备知识:不确定需求下的多周期单仓库订货和库存变化的模拟
1.基本情况:
考虑的周期:t=1,2,3,…100。

需求情况:每个周期t 的需求为()d t (已知)。

仓库的订货策略:基于库存水平的(s,S)策略,即当库存水平低于s 时,订货,将库存水平提高到S 。

也就是说,若当前库存水平为INV ,若INV < s,则订货量为S -INV ;若INV >= s,不订货。

若干库存量的定义:
在库库存量(On-hand Inventory):就是马上能满足需求的实际仓库中存在的货物量。

需求d(t)
订货量q(t)
净库存量(Inventory Level):净库存量等于在库库存量减去缺货拖后量,净库存量大于0时为在库库存量,小于0时为缺货拖后量。

净库存量=在库库存量-缺货拖后量
在途库存量(In-transit Inventory):表示已订货但尚未到达的货物量。

库存水平(Inventory Position):就是可望用于满足需求的库存量,其中包括已订货尚未到达的货物量;库存水平等于净库存量与在途库存量之和。

因为订货时不仅要考虑当前的在库库存量,同时也要考虑到在途量,所以通常情况下的订货策略是根据库存水平给出的。

库存水平=在库库存量+在途库存-缺货拖后量
库存水平=在途库存量+在库库存量-缺货拖后量
库存水平=在途库存量+净库存量;
净库存量=在库库存量-缺货拖后量;
仓库订货提前期:L=2周期。

仓库订货、到达等的时序关系:
1)预定的先期的订货到达
2)计算当前库存水平
3)确定订货量
期初
期中
期末
4)发出订单
5)实际需求发生
6)计算当前净库存量(在库库存量和缺货量)
每个周期内不同的事件和重要时刻点
每个周期的成本计算:不论缺货成本还是库存成本的计算都以本周期的期末净库存来计算,也就是需求发生后的时刻的净库存。

净库存大于零,记库存持有成本,否则记缺货惩罚成本。

库存持有费:h 元/周期、件
缺货惩罚费:p元/周期、件
因此每个周期的成本=库存持有费×在库库存量 + 缺货惩罚费×缺货量.
因此1,2,…,T周期内的总成本为上述每个周期的成本之和。

2 参数值:
当初始库存量为0(在库库存、在途库存量和缺货量均为0),
(s,S)策略中s=100,S=300。

c=1 元/周期、件
库存持有费:
h
c=2 元/周期、件
缺货惩罚费:
p
需求已知为(1)
d=95,…。

d=152,(3)
d=50,(2)
提前期为2周;
仓库的库存变化表:
周期
在库库存量在途量缺货量净库存量库存水平













本期初
订货
前B
期初
订货
后C


E
期初
订货
前B
期初
订货
后C

末E
期初
订货
前B
期初
订货
后C

末E
期初
订货
前B
期初
订货
后C
期末
E
期初
订货
前B
期初
订货
后C

末E
1 0 0 0 0 300 300 0 0 50 0 0 -50 0 300 250 50 300 0 100
2 0 0 0 300 300 300 50 50 202 -50 -50 -202 250 250 98 152 0 0 404
3 98 98 3 0 202 202 0 0 0 98 98 3 98 300 205 95 202 3 0
4 3 3 0 202 202 202 0 0 100 3 3 -100 20
5 205 102 103 0 0 200
5 102 102 0 0 0 0 0 0 10 102 102 -10 102 102 -10 112 0 0 20
……
说明:
我们关心的时刻点:
B时刻:期初订货前
C时刻:期初订货后
E时刻:期末
因此:
第一周期:
因为期初B时刻库存水平为0,故发出订单300;
此300的订单实际上要到第3周期的期初才到货,因此在本周期的B时刻、C时刻变为在途库存量300;
在本周期内没有到货,在库库存一直为0;
需求发生为50;
因此本周期的期末存在缺货量为50。

因此期末的净库存为-50;
按照定义,期末的库存水平=250。

第二周期:
因为期初B时刻库存水平(就等于第2周期期末的库存水平250)大于100,故不订;
期初C时刻库存水平保持为250,需求发生为152,因此本周期的期末库存水平为98。

在本周期内没有到货,在库库存一直为0;
第一周期发出的订单仍然在途,因此在途库存保持为300;
缺货量期初仍然维持上周期的值50,但到期末由于需求发生了152,因此增加到202。

第三周期:
因为期初B时刻库存水平为98,小于100,故订货,将库存水平提高到300,实际订货量为202。

期初时刻A时,在库库存即为上一周期期末的在库库存0,缺货量为202。

到期初时刻B,第一周期发出的订单300到达,此刻马上满足原缺货拖后量202(装运发出),因此还剩下98作为此刻的在库库存。

本期的需求为95,因此期末满足需求(装运发出)后,还剩下3个是在库库存。

因此类推,… …
3. Excel编制的技巧:
从上述分析可以发现各个变量之间的关系:
时刻点B时的库存水平是关键。

周期t的订货量=if(周期t时刻点B时的库存水平 < s,S -周期t时刻点B时的库存水平,0);
周期t时刻点C时的库存水平=周期t时刻点B时的库存水平 + 周期t的订货量;
周期t时刻点E时的库存水平=周期t时刻点C时的库存水平 -周期t的需求量;
当运输提前期L=2周时:
周期t时刻点B时的在途量=周期t-1的订货量;
周期t时刻点C时的在途量=周期t-1的订货量+周期t的订货量;
周期t时刻点E时的在途量=周期t-1的订货量+周期t的订货量;
净库存=库存水平-在途量;
因此
周期t时刻点B时的净库存=周期t时刻点B时的库存水平-周期t时刻点B时的在途量;
周期t时刻点C时的净库存=周期t时刻点C时的库存水平-周期t时刻点C时的在途量;
周期t时刻点E时的净库存=周期t时刻点E时的库存水平-周期t时刻点E时的在途量;
在每个周期的每个时刻点都成立。

在库库存=if (净库存>0, 净库存,0); 在每个周期的每个时刻点都成立。

缺货量=if (净库存>0, 0,-净库存); 在每个周期的每个时刻点都成立。

4.复杂情况
需求:每个周期t 的需求为t d ,都满足同样的随机分布,比如正态分布
22(,)(100,10)N N μσ=。

按照随机数生成方法,可以利用公式12)x R π=生成(0,1)正态分布的伪随
机数,然后变换为
22
(,)(100,10)N N μσ=,即: d(t)= ROUND(100+10*SQRT(-2*LN(RAND())*COS(2*PI()*RAND())),0)
或者使用Excel 的专用函数:
d(t)=round(norminv(rand(),100,10),0)
问题:需求是上述不确定情况下,怎样确定(s,S )的值,才可以使得100个周期的总成本最小?实际上就是求每个周期的平均成本最小化。

简化问题:若仓库采取S 策略,S 的值怎样取? 一般地,仓库最大库存水平S 的计算
:
(1)S L z μσ=+⨯+⨯
其中: Z ——是一个与服务水平有关的常量
一、供应商和零售商不共享需求预测数据情况下的牛鞭效应的模拟
1.系统结构
考虑的周期:t=1,2,3,…100。

需求情况:每个周期t 的需求为()d t 。

()(1)d t d t μρε=+⋅-+,μ为非负常数,取150;ρ为自相关系数,取0.2;
零售商和供应商的订货策略:基于库存水平的S 策略,即当库存水平低于S 时,订货,将库存水平提高到S 。

也就是说,若当前库存水平为INV ,若INV < S,则订货量为S -INV ;若INV >= S,不订货。

零售商为1S ,供应商为2S 。

需求d(t)
订货量
供应商的提前期为2L ,零售商提前期为1L
2.实际需求的模拟
()(1)d t d t μρε=+⋅-+,μ为非负常数,ρ是自相关系数,满足1ρ<; ε是误差随机变量,服从正态分布(均值为0,方差为2σ)。

若μ=100,ρ=0.2,2σ=102
在excel 中生成:
d(t)= 100+0.2*d(t-1)+int(10*sqrt(-2*ln(rand())*cos(2*pi()*rand())).
d(t)= 100+0.2*d(t-1)+int(norminv(rand(),0,10))).
3.零售商的订货和库存变化情况模拟
零售商的最大库存水平1S 的确定:
一般地,零售商的最大库存水平S1的计算
: 1111(1)S L z μσ=+⨯+⨯⨯ 其中: Z ——是一个与服务水平有关的常量,假设服务率为95%,则Z =1.65.
由于零售商实际上不知道需求的确切值,而是根据需求的历史数据进行估计,将它估计为
一个正态分布211(,)N μσ ,即每个周期的需求均值为1μ ,标准差为1σ 。

零售商通过对实际需求的历史数据进行观测来估计1μ 和1σ 的值——移动平均法:
1
11()()t i t p
d i t p μ-=-=∑ , 121211ˆ[()()]()1t i t p d i i t p μσ-=--=-∑ ,
其中1p 为移动平均的周期数。

这些估计值在随周期t 变化,因此零售商的最大库存水平S1也是一个随周期t 变化的量:
1111()(1)()()S t L t z t μσ=+⨯+⨯
零售商订货量1()q t 的确定
周期t的订货量
1()
q t=if(周期t时刻点B时的库存水平 <
1()
S t,
1()
S t-周期t时刻点B时的库存水平,0);
复杂问题:实际上零售商的订货量
1()
q t并不是总可以在t周期从供应商发出。

考虑如下情况,如果当前(t周期)供应商只有50的库存量(在库库存量),而零售商提出订货量为100,则此订货量中的一半可以得到发运,而另外的50要记为供应商向零售商供应的缺货拖后,要以后(比如t+1周期)供应商有现货(在库库存)时才可以安排发运。

零售商的库存变化模拟
T 周期向零售商的本期订单装运量1ˆ()q
t =min (期初时刻C 的供应商的在库库存,零售商的订货1()q t )
; T 周期向零售商的缺货拖后满足量=min (期初时刻A 的供应商对零售商的缺货量,期初时刻A 的供应商接受到的从上游来的订货22()q t L -);
因此:
T 周期供应商向零售商的总的货物装运量=本期订单装运量1ˆ()q t +向零售商的缺货拖后满足量。

因此:零售商
当运输提前期L =2周时:
周期t 时刻点B 时的在途量 = 周期t -1供应商向零售商的总的货物装运量;
周期t 时刻点C 时的在途量 = 周期t -1供应商向零售商的总的货物装运量 + 周期t 供应商向零售商的总的货物装运量;
周期t 时刻点E 时的在途量 =周期t -1供应商向零售商的总的货物装运量 + 周期t 供应商向零售商的总的货物装运量;
4.供应商的订货及库存变化模拟
供应商对零售商订货量的观测和预测
供应商看不到最终的客户需求d(t),但是他可以对零售商的订货量1()q t 进行观测和估计。

假设
供应商也认为1()q t 满足正态分布222(,)N μσ ,即每个周期的1
()q t 的均值为2μ ,标准差为2σ 。

零售商通过对实际需求的历史数据进行观测来估计1μ 和1σ 的值——移动平均法:
21122
()()t i t p
q i t p μ-=-=∑ ,
212
12
222ˆ[()()]()1t i t p q i i t p μσ-=--=-∑ ,
其中2p 为移动平均的周期数。

这些估计值在随周期t 变化,因此零售商的最大库存水平S2也是一个随周期t 变化的量:
2222()(1)()()S t L t z t μσ=+⨯+⨯⨯
供应商订货量2()q t 的确定
周期t 的订货量=if (周期t 时刻点B 时的库存水平 <2()S t ,2()S t - 周期t 时刻点B 时的库存水平,0);
供应商的库存变化模拟
重要关系:
T 周期向零售商的本期订单装运量1ˆ()q
t =min (期初时刻C 的供应商的在库库存,零售商的订货1()q t )

供应商t 周期发出的总
T 周期向零售商的缺货拖后满足量=min (期初时刻A 的供应商对零售商的缺货量,期初时刻A 的供应商接受到的从上游来的订货22()q t L -);
因此:
T 周期供应商向零售商的总的货物装运量=本期订单装运量1ˆ()q t +向零售商的缺货拖后满足量。

5.牛鞭效应的计算
根据100个周期内的模拟数据,分别计算()d t 、1()q t 、2()q t 的平均值AVG 和方差STD 计算
1(())(())STD q t STD d t ,21(())(())
STD q t STD q t ,2(())(())STD q t STD d t 的值。

二、供应商和零售商共享需求预测数据情况下的牛鞭效应的模拟
零售商对需求的估计正态分布211(,)N μσ ,即每个周期的需求均值为1μ ,标准差为1σ 。

零售商通过对实际需求的历史数据进行观测来估计1μ 和1σ 的值——移动平均法:
1
11()
()t i t p d i t p μ-=-=∑ , 121211ˆ[()()]()1t i t p d i i t p μσ-=--=-∑ ,
其中1p 为移动平均的周期数。

这些估计值在随周期t 变化,因此零售商的最大库存水平S1是一个随周期t 变化的量:
1111()(1)()()S t L t z t μσ=+⨯+⨯
供应商如果能够直接得到这些估计值1μ 和1σ 的值,则供应商的最大库存水平S2计算为:
2211()(1)()()S t L t z t μσ=+⨯+⨯
在上述情况下,重新分析牛鞭效应。

三、讨论
1.通过模拟100个周期的库存变化情况,得出的牛鞭效应情况与Hau Lee的理论模型的结
论:
2
2
1
()22
(1)
()
k
k i i
i
Var q L L
Var D p p
=
≥++
∏有什么相同和不同?
2.通过改变参数,分析牛鞭效应的强弱:
●移动平均的p1和p2的不同取值;
●提前期L1、L2的不同取值;
●需求模式的变化,需求均值和方差的不同取值,μ、ρ、ε的不同取值;
3.人为制造一个需求的突变,比如在第20周期的需求是1000,基本上是平均值的10倍,
观察系统对此突变需求的响应过程,零售商和供应商要到第几周期才会对此突变需求做出实质的反应?不同的需求共享情况下有如何?
4.计算实际的需求满足率是多少?
●100周期的缺货总量/100周期的需求总量=?
●100个周期中发生缺货的周期数量/100=?
5.更加多级的情况,比如再增加一级,供应商还有一级上游供应商;分配形和装配形供应链的情况如何?
附录:Excel技巧
1.每个格子的名称:
A10―――表示A列10行对应的一个格子
A10:A20————表示从A10一直到A20的一系列格子
2.每个格子的值
显示在每个格子中,可以是数字,文本,关系式
对一个格子A10赋值,鼠标点到此格子中,在工具栏里输入
比如:
12 ↓——A10格子的值为数值12
SSS ↓——A10格子的值为文本SSS
=A20 ——公式:A10格子的值等于A20格子的值
=sheet2!A20 ——公式:A10格子的值等于页面2中A20格子的值
=sin(A20) ——公式:A10格子的值等于A20格子的值的sin函数值。

=rand(A20)
正态分布的模拟:
可以用到的函数:
sum(), max(), min(), avg(), std();
sin(),cos(),tan(),pi();
查找函数:lookup(),count(),match(),
3. 格子的复制
演示.
经过拖动复制后, 列复制时, 格式的列编号会自动增加; 行复制时, 格式的行编号会自动增加.
如果希望公式中的某个格子的行/列序号不变,可以为: $A$10
$A10
A$10
例: 实现1 2 3…的一个列
A10=1
A11=A10+1
拖动A11,到A20.
4 数据的处理
排序
分列---处理外部文本数据, 将文本格式存储的数据表分开为行列的数据表
例:
1 2 0 3 4 5 6 6 7 8 8 10 10 10 10 10 0
0 0 0 0 0 0 7 7 8 9 9 0 0 0 0 11 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
大量数据的拷贝
与notepad之间的无格式拷贝
拷贝格式的选择:
完全拷贝
仅仅拷贝值
原矩阵数据拷贝为转置
5 与外部数据的交换
与SQL数据库的交换.,导入和导出数据
6 线性优化与非线性优化工具
7 图表工具。

相关文档
最新文档