《数字化供应链》仿真实验课件-供应链牛鞭效应的系统动力学_第1页
《数字化供应链》仿真实验课件-供应链牛鞭效应的系统动力学_第2页
《数字化供应链》仿真实验课件-供应链牛鞭效应的系统动力学_第3页
《数字化供应链》仿真实验课件-供应链牛鞭效应的系统动力学_第4页
《数字化供应链》仿真实验课件-供应链牛鞭效应的系统动力学_第5页
已阅读5页,还剩74页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

供应链牛鞭效应的系统动力学仿真实验浙大宁波理工学院商学院葛洪磊gehonglei33@126.com供应链牛鞭效应的系统动力学仿真实验一、基于系统动力学的单级库存系统建模二、供应链牛鞭效应的系统动力学仿真实验一、基于系统动力学的单级库存系统建模1.单级库存系统建模2.可能出现的错误3.使用测试函数4.参数分析实验5.敏感性(灵敏度)分析实验6.蒙特卡洛实验7.使用预测函数8.使用统计量,设置评价指标9.安全库存系数对缺货量的影响10.优化实验1.单级库存系统建模因果关系图系统流图参数与方程设置因果关系图系统流图模型时间设置为“天”。参数与方程设置需求量=50;期望库存=60;库存差异=期望库存-库存;库存差异调整时间=3;订货提前期=3;订货量=max(需求量+库存差异/库存差异调整时间,0)库存初值:60发货量=min(需求量,库存)收货量=delay(订货量,订货提前期,50)延迟函数(物质延迟)delay(flow,

delayTime,

initialValue)flow

可以是流变量(flowvariable),或数学表达式.如果初值为0,则为delay(input,

delayTime)。如

delay(AdoptionRate,

ProductLifeTime)的输出结果如下图所示。仿真结果系统稳定,收货量=发货量所有曲线都是直线,所有变量要么是50,要么是60。平静如镜,毫无波澜改变收货量延迟函数的初值收货量=delay(订货量,订货提前期,15)前3天收货量为15,导致库存降低,库存差异增大,订货量增加。2.可能出现的错误混淆参数与动态变量模型时间设置为秒输入全角半角转换流量未连接存量可能出现的错误1:混淆参数与动态变量将动态变量设为参数,构建可能不会出问题,但是仿真结果不正确。如将订货量设为参数的仿真结果如下:可以看到订货量为0.可能出现的错误1:混淆参数与动态变量动态变量可以作为自变量,也可以作为因变量,即它可以影响其他变量,也可以被其他变量(参数)所影响,其值可以动态变化。也即其可以作为链接的起点,也可以作为链接的终点。但是不能用于进行参数分析实验、蒙特卡洛实验等一系列实验。参数只能作为自变量,不能作为因变量被其他变量或参数影响,其取值一般不变。也即其只能作为链接的起点,不能作为链接的终点。可以用于进行参数分析实验、蒙特卡洛实验等一系列实验。动态变量与变量系统动力学面板中的动态变量可以时变,而智能体中的变量不能时变,但可以通过赋值语句重新赋值。100+ramp(100,20,30)+ramp(1500,30,40)+ramp(1600,40,50)+ramp(1000,50,60)动态变量与变量下面是对比分析,totalSupply为参数,totalSupply1为动态变量,totalSupply2为变量,其赋值函数相同,如下:100+ramp(100,20,30)+ramp(1500,30,40)+ramp(1600,40,50)+ramp(1000,50,60)可见,参数和变量始终为初值100,只有动态变量动态变化。可能出现的错误2:模型时间设置为秒模型停止在365秒,图中没有曲线。因为图中的横坐标为天。可能出现的错误2:模型时间设置为秒模型停止在365秒,图中没有曲线。因为图中的横坐标为天。可能出现的错误3:输入全角半角转换此类错误大多数是全角状态下输入了符号,如括号,逗号等。有时在英文输入法下也可能是全角。此时,可以在中文输入法,变换半角试一下。可能出现的错误4:流量未连接存量收货量(流入量)未连接库存(存量),库存量迅速下降,但有持续的订货量和收货量。仿真时,存量中出现云朵(云朵表示边界之外)。系统流图中云朵被存量覆盖了。可能出现的错误5:流量未连接存量(流出量)发货量未连接库存(存量),库存量迅速上升,订货量逐渐变成0,但有持续的发货量。仿真时,存量中出现云朵(云朵表示边界之外)。3.使用测试函数使用随机分布或测试函数点击变量赋值栏,选择概率分布,设置分布函数。使用随机分布或测试函数需求量=normal(7,50)需求量=50+10*sin(2*3.14159*time()/52)需求量=50+step(10,50)需求量=50+pulse(50,1)需求量=50+ramp(1,40,60)使用这些测试函数,运行仿真试验后,对比实验结果,可以发现负反馈系统的相对稳定性(寻的),具有一定的抗干扰能力。4.参数分析实验首先,将需求量改为常数值50,库存初值改为10。然后,创建数据集,点击变量(因变量)右键,创建数据集。这里以库存为因变量。4.参数分析实验在工程中选择模型,右键-新建-实验-参数变化4.进行参数分析实验在参数变化实验的属性中点击“创建默认用户界面”4.参数分析实验在参数变化实验的视图中拉入一个折线图,设定其标题。不要设置两个轴的值。4.参数分析实验在参数变化实验的属性中设置参数的变化范围。4.参数分析实验在参数变化实验的属性中的Java行动(仿真运行后)中,输入以下代码,用于画图。plot.addDataSet(root.库存DS,"库存差异调整时间="

+format(root.库存差异调整时间));将数值型转化为字符型4.参数分析实验运行参数变化实验。库存调整时间为1时,库存会发生震荡,但不会发散。说明不是一个一阶负反馈系统。因为delay函数隐含了一个水平变量(延迟时间段的累积)。库存调整不是越快越好。特别是在存在延迟的系统中。当然可以重新调整订货量决策,改进这一问题,即考虑在途库存和应发货量。4.参数分析实验两个参数变化在该实验中加入一个新的折线图,图名默认为plot1Java行动(仿真运行后)中,加入以下代码:plot1.addDataSet(root.库存DS,"库存差异调整时间="

+format(root.库存差异调整时间)+"订货提前期="

+format(root.订货提前期));4.参数分析实验两个参数变化5.敏感性(灵敏度)分析实验新建-实验-敏感性分析5.敏感性(灵敏度)分析实验选择参数,设置变化范围和步长。步长表示每步增加多少。5.敏感性(灵敏度)分析实验设置图表标题、数据集。数据集要使用root标识路径。也可以使用其他数据集,如收货量数据集等。5.敏感性(灵敏度)分析实验希望添加参数名称,或改变设置5.敏感性(灵敏度)分析实验可以在实验属性中重新设置参数及其变化范围。5.敏感性(灵敏度)分析实验format(root.订货提前期)增加字符串及运算符:"订货提前期="+没有按照从1-5的顺序,需要取消并行评估5.敏感性(灵敏度)分析实验实验属性-高级-取消允许并行评估按照从1-5的顺序。其他实验亦复如是。6.蒙特卡洛实验蒙特卡罗(MonteCarlo)方法,又称随机抽样或统计试验方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象征性地表明这一方法的概率统计特征,故借用赌城蒙特卡罗命名。6.蒙特卡洛实验当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。6.蒙特卡洛实验新建-实验-蒙特卡洛6.蒙特卡洛实验设置随机参数和固定取值的参数。可以设置多个随机参数。uniform(20,70)表示均匀分布uniform_discr(1,5)表示离散均匀分布迭代次数应该足够大,就像掷硬币的次数一样。6.蒙特卡洛实验通过画直方图表达相关结果的概率分布。表达式使用变量。确定间隔数(方块的数量)和初始间隔大小(方块的宽度)。方块的数量*初始间隔大小即为结果的取值范围。右侧设置,则库存最小值为0,最大值为200.6.蒙特卡洛实验通过画二维直方图表达相关结果在两个维度的概率分布如时间和数量,也即在不同时间段内,库存的分布情况。表达式使用DS数据。水平间隔的数字10,表示分成10个时间段,从1-100,表示横轴的时间从1-100。纵轴的含义也是类似,有20个数字段,每段数字间隔为10。这里注意是统计数据的间隔,作图时并不是坐标轴间隔,而是小方块间隔。6.蒙特卡洛实验直方图,拷贝出数据到Excel20个方块,每个方块间隔为1020组数据,每组数据间隔为106.蒙特卡洛实验二维直方图,拷贝出数据到Excel20组数据,每组数据间隔为10水平10个方块,垂直20个方块,共200个小方块。6.蒙特卡洛实验二维直方图,拷贝出数据到Excel库存量数据:垂直的20段数据,每组数据间隔为10。时间数据:水平10段数据,每段数据间隔10。共200组数据,每一行概率加总为1。即表达某一时间段内库存的概率分布。模型存盘,并另存为一个文件下面的操作会将期望库存改为动态变量,因此,会引起原来的参数分析或蒙特卡洛实验出错(如果这些实验使用了期望库存作为变化的参数)。如果执意为之,或不小心为之,报错后,可以将实验界面中期望库存后面的“?”选中,然后删除即可。7.使用预测函数添加一个动态变量“需求量预测”,使用预测函数,将其变为与需求量相关的变量,用于订货决策。将需求量改为随机函数,如三角分布triangular(30,65,50)7.使用预测函数增加一个时间折线图,用于显示需求量和需求量预测的差异,同时加入期望库存,一并进行比较。7.使用预测函数作为对比使用预测函数为需求量预测赋值如使用forecast函数或使用smooth函数需求量预测=forecast(需求量,12,3)需求量预测=smooth(需求量,6,50)运行仿真模型,观察需求量预测、订货量的变化,及其对库存的影响。预测函数forecast()forecast(input,

averageTime,horizon)averageTime表示用于预测的历史时段;horizon表示需要预测的未来时点。如输入=10+step(10,10)

输出=forecast(输入,

averageTime,horizon)当averageTime越大,

且horizon越小时,越接近输入值。预测函数forecast()输入=normal(3,50)

输出=forecast(输入,

averageTime,horizon)。结果如右图。输入=normal(3,50)

输出=forecast(输入,10,5)使用forecast函数仿真结果虽然订货量变化很大,但是库存水平相对稳定。一阶平滑函数smooth()smooth(input,

delayTime,

initialValue)smooth(input,

delayTime)

其中,delayTime表示平滑时间,表示采用几期的数据进行平滑。initialValue为初值如:输入=10+step(10,10);输出=smooth(输入,30,30)此函数与delay1()函数相近。delay1()函数使用smooth函数仿真结果订货量比较稳定,库存水平相对稳定。平滑结果很棒。8.使用统计量,设置评价指标将期望库存改为动态值设置评价指标及其统计-缺货量设置评价指标及其统计-利润设置评价指标及其统计-订单满足率将期望库存改为动态值依据之前几天需求量的样本均值和安全库存系数设定动态的期望库存是更加合理的。将期望库存由参数改为动态变量添加动态变量:需求量均值添加参数:安全库存系数=1.1建立新链接。将期望库存改为动态值要得到需求量均值,需要将需求量的值保存下来,可以使用数据集。建立需求量DS,设置保留的样本数(取决于你用之前几天的需求量均值)。将期望库存改为动态值设置需求量均值,使其等于需求量DS数据集中Y轴数据的均值。(X轴为时间数据)需求量均值=需求量DS.getYMean()[输入需求量DS.,然后可以用代码完成热键辅助输入。]设置期望库存:期望库存=需求量均值*安全库存系数其中安全库存系数取1.1,表示包含10%的安全库存动态期望库存的仿真结果可以看到期望库存是动态变化的。设置评价指标及其统计-缺货量设置缺货量指标(动态变量):缺货量=需求量-发货量获得缺货量统计指标:从“分析”面板,拉入一个统计,名称改为:缺货量统计设置其值为:缺货量获取评价指标统计值-缺货量运行仿真实验,查看缺货量统计设置一个或多个变量,用于获得缺货量统计指标(变量):缺货量均值=缺货量统计.mean()【输入缺货量统计.,之后可以用代码完成功能,辅助输入】总缺货量=缺货量统计.sum()缺货量标准差=缺货量统计.deviation()设置评价指标及其统计-利润设置利润指标(变量):

利润=发货量*20-库存*1-6*(需求量-发货量)设置平均利润指标(变量):首先建立利润DS(数据集合),平均利润=利润DS.getYMean()可见,获取平均值,有两种方法:使用数据集DS的getYMean();或使用统计值的.mean()。

其中使用数据集DS可以设定样本数;统计值方法是所有运行的样本(无法设定样本数)。同样可以借鉴缺货量的统计方法,得到总利润:利润统计.sum()。设置评价指标及其统计-订单满足率参考缺货量和利润的设置方法,自己尝试设置订单满足率指标(动态变量):

订单满足率=发货量/需求量评价指标的设定不影响模型的运行,但可以用于模型设置的评价和优化;平均值可以通过数据集的getYMean()或统计的mean()函数来实现。合计值可以通过统计的.sum()函数来实现。数据集的相关函数可以在帮助中查询9.安全库存系数对缺货量的影响设置安全库存系数的控件,观察该系数对缺货量的影响。安全库存系数对缺货量的影响设置安全库存系数,及其控件,观察该系数对缺货量的影响。也可以用参数分析实验,灵敏度分析,或优化实验。安全库存系数对缺货量的影响灵敏度分析10.优化实验新建一个实验,优化实验,用于求解利润(平均利润或总利润)最大时的安全库存系数。模型右键-新建-实验-优化实验设置优化实验的属性:目标:最大化,root.总利润或root.平均利润设置迭代数:500或其他次数建议值可以填写经验值,也可以不填。点击创建默认用户界面,在优化实验编辑窗口会出现默认界面。当改变参数数量时,需要重新点击创建默认用户界面进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论