计算机仿真计算机仿真清华大学自动化系清华大学自动化系2009-20102009-2010学年度秋学期学年度秋学期C o m p u t e r S i m u l a t i o n第第5 5讲讲 库存系统建模库存系统建模与仿真与仿真范文慧范文慧开开 始始结结 束束正确否正确否正确否正确否是是是是确定仿真算法确定仿真算法输出仿真结果输出仿真结果并分析并分析否否系统建模系统建模运行仿真程序运行仿真程序建立仿真模型建立仿真模型设计仿真程序设计仿真程序否否1.1.系统建模系统建模 如何由观测数据确定随机变量的分布和参数如何由观测数据确定随机变量的分布和参数?? 如何产生所需求的随机变量如何产生所需求的随机变量??2.2.确定仿真算法确定仿真算法 采用什么方法仿真(仿真策略采用什么方法仿真(仿真策略) ) ??3.3.建立仿真模型建立仿真模型 建立计算机模型(变量定义及程序流程建立计算机模型(变量定义及程序流程)) 描述系统状态转移描述系统状态转移( (事件、活动和进程等事件、活动和进程等)) 4.4.设计仿真程序设计仿真程序 采用高级语言编程实现,掌握各种语句采用高级语言编程实现,掌握各种语句 采用仿真语言编程实现,掌握各种采用仿真语言编程实现,掌握各种语句语句5.5.运行仿真程序运行仿真程序 仿真发动,进行仿真发动,进行仿真仿真 6.6.仿真结果输出与分析仿真结果输出与分析 仿真结果的可信性如何仿真结果的可信性如何? ? 如何提高仿真结果的置信度如何提高仿真结果的置信度? ? 每次仿真运行所得到的结果仅仅是随机变量的一次取样每次仿真运行所得到的结果仅仅是随机变量的一次取样Page 2Page 3目录目录5.1 5.1 离散事件系统仿真实例离散事件系统仿真实例5.2 5.2 库存系统建模与仿真库存系统建模与仿真5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言Page 4狭义的库存系统狭义的库存系统•商品库商品库•器材库器材库•银行的现金管理系统银行的现金管理系统•水库的库存水量管理水库的库存水量管理广义的库存系统广义的库存系统•人才储备系统人才储备系统5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(1 1))Page 61.1.报纸经销商问题报纸经销商问题 报纸的定购与销售的问题是经典的库存问题。
报纸的定购与销售的问题是经典的库存问题 ☆☆报摊每张报纸报摊每张报纸3333分分买进,买进,5050分分卖出;卖出; ☆ ☆当日销售不完的报纸作为废品处理卖当日销售不完的报纸作为废品处理卖5 5分分钱;钱; ☆☆报纸以报纸以1010份为一捆,报摊可买份为一捆,报摊可买5050份或份或6060份等;份等; ☆☆报纸有三种类型,报纸有三种类型,““良良””、、““中中””和和““差差””,它们的概率分别是,它们的概率分别是0.350.35、、0.450.45和和0.200.205.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(1 1))Page 7需求需求需求概率分布需求概率分布良良中中差差4050607080901000.030.050.150.200.350.150.070.100.180.400.200.080.040.000.440.220.160.120.060.000.00表表1 1 每天报纸需求量的分布每天报纸需求量的分布计算报摊应该购买报纸的最优数量计算报摊应该购买报纸的最优数量! !进行进行2020天的仿真并记录每天的利润天的仿真并记录每天的利润! !5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(1 1))Page 8利润按照以下公式计算:利润按照以下公式计算: 利润=利润= (销售收入)(销售收入) -(报纸成本)-(报纸成本) --(额外需求的(额外需求的利润损失)利润损失) +(报废报纸的+(报废报纸的回收费)回收费) 5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(1 1))Page 9报纸类型报纸类型概率概率累积概率累积概率随机数字分配随机数字分配良良中中差差0.350.450.200.350.801.0001-3536-8081-00表表2 2报纸类型的随机数字分配报纸类型的随机数字分配5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(1 1))Page 10需求需求累积分布累积分布随机数字分配随机数字分配良良中中差差良良中中差差4050607080901000.030.080.230.430.780.931.000.100.280.680.880.961.001.000.440.660.820.941.001.001.0001-0304-0809-2324-4344-7879-9394-0001-1011-2829-6869-8889-9697-00--01-4445-6667-8283-9495-00----表表 3 3 报纸需求的随机数字分配报纸需求的随机数字分配5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(1 1))Page 11 根据问题的描述,每张报纸的销售收入是根据问题的描述,每张报纸的销售收入是5050分,购买每份报纸的成本是分,购买每份报纸的成本是3333分分;;未满足需求的额未满足需求的额外需求的利润损失每份是外需求的利润损失每份是1717分;报废报纸的回收收分;报废报纸的回收收入为每份入为每份5 5分。
分 用仿真解决这一问题,设每天买一定数量用仿真解决这一问题,设每天买一定数量报纸的策略,然后进行报纸的策略,然后进行2020天时间周期天时间周期的报纸需求的的报纸需求的仿真来确定总利润仿真来确定总利润5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(1 1))Page 12天天报纸类型的随报纸类型的随机数字机数字报纸报纸类型类型需求的需求的随机随机数字数字需需求求销售销售收入收入超额需求超额需求的的利润利润损失损失废品废品回收回收收入收入每日每日利润利润12345678910111213141516171819205817214543362773861993454730124165571898中中良良良良中中中中中中良良中中差差良良差差中中中中良良良良中中中中中中良良差差936331199175843723025396338616076494551380807050807090604040508060906040608080403535352535353530202025353035302030353520$600.001.71.7----1.7--3.4--------1.7--3.4------1.71.7--$17.00------1------0.51.51.51--0.5--0.51.50.5----1.5$10.0010.2010.2011.902.9010.2011.908.507.40-1.60-1.602.9010.207.408.507.40-1.607.4010.2010.20-1.60$131.00表表3 3订购7070份份报纸的仿真表格的仿真表格Page 13 在在第一天第一天,需求量是,需求量是8080份报纸,供应小于需求,仅有份报纸,供应小于需求,仅有7070份报纸可卖。
份报纸可卖7070份报纸的销售收入是份报纸的销售收入是$35$35,额外需求的,额外需求的1010份报纸份报纸的利润损失是的利润损失是$1.70$1.70利润计算如下:利润计算如下: 利润=利润=$35.00-$23.10$35.00-$23.10(($0.33$0.33××7070))-$1.70+0.00-$1.70+0.00==$10.20$10.20 在在第四天第四天,供应大于需求卖出,供应大于需求卖出5050份报纸的收入是份报纸的收入是$25$25,,2020份报纸按每份份报纸按每份$0.05$0.05回收回收, ,共得共得$1.00$1.00,当天的利润确定如下:,当天的利润确定如下: 利润=利润=$25.00-$23.10-0+$1.00$25.00-$23.10-0+$1.00==$2.90$2.90 2020天周期的天周期的总利润是每天利润的总和,共计总利润是每天利润的总和,共计$131$131也可以由仿真的以由仿真的2020天的总数进行计算如下:天的总数进行计算如下: 总利润=总利润=$600.00-$600.00-$462.00-$462.00-$17.00+$10.00$17.00+$10.00==$131.00$131.00 式中,式中,2020天报纸的总成本为(天报纸的总成本为(2020××$0.33$0.33××7070)=)=$462$462。
仿真仿真400400次,每次次,每次2020天结果如何?天结果如何?5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(1 1))Page 14 ◇◇400400次、每次次、每次2020天、策略为每天订购天、策略为每天订购7070份报纸的试验结果份报纸的试验结果 ◇ ◇平均总利润(平均总利润(2020天)为天)为$137.61$137.61,,2020天最小的利润为天最小的利润为$64.70$64.70,最大利润为,最大利润为$186.10$186.10 ◇ ◇在在400400次试验中,仅有次试验中,仅有4545次的次的2020天利润超过了天利润超过了$160$1605.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(1 1))Page 15 一个一个2020天的结果天的结果$131.00$131.00和和400400次试验的平均值次试验的平均值$137.61$137.61元差别不大,但是一个元差别不大,但是一个2020天仿真的结果有可能天仿真的结果有可能出现最大值和最小值出现最大值和最小值证明了进行多次试验的有证明了进行多次试验的有用性用性。
5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(1 1))Page 162.2.上限订货库存系统的仿真上限订货库存系统的仿真 一个公司销售冰箱,为维护库存,系统每过一段固定的时一个公司销售冰箱,为维护库存,系统每过一段固定的时间检查销售情况然后决定下一步的行动策略是间检查销售情况然后决定下一步的行动策略是上限订货(上限上限订货(上限订货水平订货水平M M)),依据下述关系:,依据下述关系: 订购量=上限订货水平-盘点库存量+短缺量订购量=上限订货水平-盘点库存量+短缺量 上限订货水平(上限订货水平(M M)为)为1111,盘点库存是,盘点库存是3 3;检查周期是;检查周期是5 5天,天, ◇ ◇在一个周期的第五天,从供货商那里订购在一个周期的第五天,从供货商那里订购8 8台冰箱 ◇ ◇如果第五天有如果第五天有2 2台冰箱的短缺,盘点库存是台冰箱的短缺,盘点库存是0,0,则订购则订购1313台 ◇ ◇如果有如果有3 3台冰箱的短缺,则收到的第一批台冰箱的短缺,则收到的第一批3 3个冰箱将会首先个冰箱将会首先提供给订货已经到达的客户。
这称作为提供给订货已经到达的客户这称作为““延期交货延期交货”” ◇◇当消费者有需求而库存量又不满足时就会出现当消费者有需求而库存量又不满足时就会出现失销失销情况5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(2 2))Page 17需求需求概率概率累积概率累积概率随机数字分配随机数字分配012340.100.250.350.210.090.100.350.700.911.0001-1011-3536-7070-9192-00表表4 4 每日需求的随机数字分配每日需求的随机数字分配每天冰箱需每天冰箱需求求量是随机的量是随机的,,其分布见表其分布见表4 45.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(2 2))Page 18提前期(天)提前期(天)概率概率累积概率累积概率随机数字分配随机数字分配1230.60.30.10.60.91.01-67-90表表5 5提前期的随机数字分配提前期的随机数字分配订单交给供货商后订单交给供货商后, ,供货到达前的天数供货到达前的天数,或者叫提前,或者叫提前期是随机的期是随机的5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(2 2))Page 19 假设每天结束以后才进行订购。
假设每天结束以后才进行订购 如果提前期为如果提前期为0 0,则第二天早上供应商的冰箱,则第二天早上供应商的冰箱就会运到,并且当天可以销售就会运到,并且当天可以销售 如果提前期是如果提前期是1 1天,则冰箱在第二个早晨运到,天,则冰箱在第二个早晨运到,并且当天可以销售并且当天可以销售 仿真第一天,库存水平是仿真第一天,库存水平是3 3,订购了,订购了8 8台冰箱,台冰箱,在在2 2天后到达天后到达 仿真第二天,仿真第二天, 仿真表格见表仿真表格见表6 65.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(2 2))Page 20日日期期周周期期周期内周期内的天数的天数初始初始库存存需求的随需求的随机数字机数字需需求求盘点点库存存短缺短缺量量订购量量提前期提前期随机随机数字数字提前提前期期到到货天数天数1 12 23 34 45 56 67 78 89 9101011111212131314141 11 11 11 11 12 22 22 22 22 23 33 33 33 31 12 23 34 45 51 12 23 34 45 51 12 23 34 43 32 28 87 75 52 21 19 95 53 30 00 011116 6262668683333393986861818646479795555747421214343494991911 12 21 12 23 31 12 23 32 23 31 12 22 23 32 20 07 75 52 21 10 05 53 30 00 00 06 63 30 00 00 00 00 00 01 10 00 00 01 13 30 00 0--------9 9--------1111----------------8 8--------7 7----------------2 2--------2 2--------1 1------2 21 1------2 21 1------表表 6 6((M M,,N N))库存系存系统的仿真表格(的仿真表格(1111,,5 5))5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(2 2))Page 21日期日期周周期期周期内周期内的天数的天数初始初始库存存需求的随需求的随机数字机数字需需求求盘点点库存存短缺短缺量量订购量量提前期提前期随机随机数字数字提前提前期期到到货天数天数15151616171718181919202021212222232324242525总数数平均平均3 34 44 44 44 44 45 55 55 55 55 55 51 12 23 34 45 51 12 23 34 45 53 32 211117 75 52 20 012128 84 43 3353508089898616185858181535315159494191944441 10 04 42 23 33 32 21 14 41 12 2202042 22 27 75 52 20 00 08 84 43 31 168682.720 00 00 00 00 01 13 30 00 00 00 09 90.369 9--------1212--------10102 2--------3 3--------1 11 1--------1 1--------1 11 1--------1 1--------1 1表表 6 6((M M,,N N))库存系存系统的仿真表格的仿真表格5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(2 2))Page 22 跟踪仿真表格来观察这个过程是如何运行的。
跟踪仿真表格来观察这个过程是如何运行的 在在第一个周期第三天的早上第一个周期第三天的早上,订购的,订购的8 8台冰箱到台冰箱到货,将库存水平从货,将库存水平从0 0提升到提升到8 8台冰箱 在第一个周期剩余的几天期间在第一个周期剩余的几天期间,,需求将库存减少,需求将库存减少,到第五天,盘点库存降到了到第五天,盘点库存降到了2 2台冰箱,所以要订购台冰箱,所以要订购9 9台台冰箱 该订单的提前期是该订单的提前期是2 2天,天,9 9台冰箱在台冰箱在第第2 2个周期个周期的第三天早晨的第三天早晨加到库存加到库存5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(2 2))Page 23 在第四个周期的第五天在第四个周期的第五天的初始库存是的初始库存是2 2,当天的订货是,当天的订货是3 3,所以就产生了短缺情况当天,所以就产生了短缺情况当天1 1台冰箱需要延期交货这台冰箱需要延期交货这样,当天的订购量就是(样,当天的订购量就是(11+111+1),提前期是),提前期是1 1天 在第二天的需求是在第二天的需求是2 2 ,增加了短缺。
增加了短缺 再下一天早上,订货到达,再下一天早上,订货到达,3 3台冰箱用于满足延期交货,台冰箱用于满足延期交货,当天的需求是当天的需求是1 1台所以最后的库存是台所以最后的库存是8 8 经过经过5 5个周期的仿真个周期的仿真,平均盘点库存近似为,平均盘点库存近似为2.722.72((6868//2525)个,在)个,在2525天中有天中有5 5天出现了短缺现象天出现了短缺现象5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(2 2))Page 24 在例中,供货商不能出现多于一个未完成的订单,但在例中,供货商不能出现多于一个未完成的订单,但是,存在提前期长情况,前面给出的关系式需要修改如下是,存在提前期长情况,前面给出的关系式需要修改如下: : 订购量=上限订货水平-盘点库存量-订购量=上限订货水平-盘点库存量-已定购量已定购量+短缺量+短缺量 这个关系保证了不会出现多余的订购为了估计在库这个关系保证了不会出现多余的订购为了估计在库存盘点时冰箱平均数的情况,应该进行许多次的仿真试验存盘点时冰箱平均数的情况,应该进行许多次的仿真试验。
对输入的数值进行更改,策略(比如对输入的数值进行更改,策略(比如M M和和N N的值)能改的值)能改变,每天的需求及提前期在有限范围内能改变变,每天的需求及提前期在有限范围内能改变————即需求即需求可以是每天可以是每天0 0,,1 1,,2 2,,3 3,,4 4台冰箱,而提前期可以是台冰箱,而提前期可以是1 1,,2 2,,3 3天重新计算表格对前述问题所给出的值,会发现同样天重新计算表格对前述问题所给出的值,会发现同样的问题会有不同的结果的问题会有不同的结果5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(2 2))Page 255.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(2 2)) 实验次数为实验次数为100100,并重新计算,平均库存有一些变化并重新计算,平均库存有一些变化对上述定义的问题,取相同的值,对上述定义的问题,取相同的值,变化范围通常在变化范围通常在2.692.69到到3.013.01之间之间平均盘点库存的分布没有太大的变化平均盘点库存的分布没有太大的变化Page 263.3.提前期需求库存系统仿真提前期需求库存系统仿真 提前期是指订单发出到订购货物达到之间的时期。
假设提前提前期是指订单发出到订购货物达到之间的时期假设提前期是一个随机变量在提前期期间,需求仍随机的发生因此,提期是一个随机变量在提前期期间,需求仍随机的发生因此,提前期需求是随机变量,定义为在提前期中发生的需求量的总和,即前期需求是随机变量,定义为在提前期中发生的需求量的总和,即式中式中::I I是提前期中的时间周期,是提前期中的时间周期,i=0i=0,,1 1,,2 2,,3 3……;;是在第是在第i i个周期的需求,个周期的需求, T T是提前期是提前期5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(3 3))Page 275.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(3 3))每日需求(卷)每日需求(卷)3456概率概率0.200.350.300.15提前期提前期概率概率分布:分布:提前期(天)提前期(天)123概率概率0.360.420.22有一家企业经营报纸用的卷纸有一家企业经营报纸用的卷纸::需求概率分布:需求概率分布:Page 28提前期(天)提前期(天)概率概率累积概率累积概率随机数字分配随机数字分配10.360.3601-3620.420.7837-7830.221.0079-00表表12 12 需求的随机数字分配需求的随机数字分配5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(3 3))每日需求每日需求概率概率累积概率累积概率随机数字分配随机数字分配30.200.2001-2040.350.5521-5550.300.8556-8560.151.0086-00表表13 13 提前期的随机数字分配提前期的随机数字分配 第一个周期的随机数字是第一个周期的随机数字是5757,生成的提前期是,生成的提前期是2 2天。
有两对天有两对随机数字用来生成每日需求第一对是随机数字用来生成每日需求第一对是1111,对应的需求是,对应的需求是3 3,,接下来是接下来是5 5第一周期的提前期需求是第一周期的提前期需求是8 8Page 29周期周期提前期的随提前期的随机数字分配机数字分配提前期提前期(天)(天)需求的随机需求的随机数字分配数字分配需求需求提前提前期期需求需求123457334691212311643713802766473543545484813表表 1414提前期需求的仿真表格(提前期需求的仿真表格(不完全)不完全)5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(3 3))Page 30在仿真多个周期后,生成了直方图在仿真多个周期后,生成了直方图5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(3 3))Page 314.4.可靠性问题可靠性问题 指产品在规定的时间内,在规定的条件下,指产品在规定的时间内,在规定的条件下,完成规定任务的概率和可能性完成规定任务的概率和可能性က က 在规定的条件下:在规定的条件下:各种产品的应用条件各不相同,如各种产品的应用条件各不相同,如空调主要是温湿度的影响;汽车电子,不仅温湿度变化空调主要是温湿度的影响;汽车电子,不仅温湿度变化很大,而且震动很大,机械冲击也很大。
很大,而且震动很大,机械冲击也很大က က 在规定的时间内:在规定的时间内:各种电子产品的使用寿命要求也不各种电子产品的使用寿命要求也不一样,如,寿命一样,如,寿命1 1--3 3年;而汽车电子、通讯设备的年;而汽车电子、通讯设备的寿命要求很高寿命要求很高5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(4 4))Page 32设计失败案例设计失败案例Page 33轴承寿命(小时)轴承寿命(小时)概率概率累积概率累积概率随机数字分配随机数字分配10001100120013001400150016001700180019000.100.130.250.130.090.120.020.060.050.050.100.230.480.610.700.820.840.900.951.0001-1011-2324-4849-6162-7071-8283-8485-9091-9596-00表表7 7 轴承寿命的分布承寿命的分布5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(4 4))一个铣床有三个不同轴承,他们在服务时会失效每个轴承一个铣床有三个不同轴承,他们在服务时会失效。
每个轴承的寿命的分布是一样的,见表的寿命的分布是一样的,见表7 7Page 34延迟时间(分钟)延迟时间(分钟)概率概率累积概率累积概率随机数字分配随机数字分配510150.60.30.10.60.91.01-67-90表表8 8 延延迟时间分布分布当一个轴承失效时铣床停止工作,然后就会打要当一个轴承失效时铣床停止工作,然后就会打要求维修,安装新的轴承维修人员到达铣床的延迟时求维修,安装新的轴承维修人员到达铣床的延迟时间也是一个随机变量,其分布见表间也是一个随机变量,其分布见表8 85.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(4 4))Page 35 铣床的停工期损失的费用是每分钟铣床的停工期损失的费用是每分钟$10$10,维修,维修工人在现场的费用是每小时工人在现场的费用是每小时$30$30 换一个轴承需要换一个轴承需要2020分钟,换两个轴承需要分钟,换两个轴承需要3030分钟,分钟,三个轴承需要三个轴承需要4040分钟 每每1000010000运转小时的总费用可以作为评价的准则运转小时的总费用可以作为评价的准则。
5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(4 4))是否应该在任何一个轴承坏掉的情况下是否应该在任何一个轴承坏掉的情况下更换所有的轴承更换所有的轴承??Page 36轴承承1轴承承2轴承承3随机随机数字数字寿命寿命(小(小时))随机随机数字数字延延迟(分(分钟))随机数随机数字字寿命寿命(小(小时))随机数随机数字字延延迟(分(分钟))随机数随机数字字寿命寿命(小(小时))随机随机数字数字延延迟(分(分钟))1 12 23 34 45 56 67 78 89 9101011111212131314141515合合计676755559898767653536969808093933535020299996565535387879090140014001300130019001900150015001300130014001400150015001800180012001200100010001900190014001400130013001700170017001700223007 73 31 16 64 48 85 57 70 05 59 94 47 71 12 210105 55 55 55 510105 5101015155 510105 510105 55 5110110717121217979888893937777080821211313030314140505292907072020150015001100110015001500170017001800180015001500100010001100110011001100100010001000100010001000120012001000100011001100187008 83 33 31 10 06 69 98 83 32 21 10 02 24 43 310105 55 55 515155 5101010105 55 55 515155 55 55 5110110181817176565030354541717191909096161848411112525868665654444110011001100110014001400100010001300130011001100110011001000100013001300160016001100110012001200170017001400140012001200186006 62 22 29 98 83 36 67 71 10 05 52 28 83 34 45 55 55 5101010105 55 510105 515155 55 510105 55 5105105表表9 9 当前方法下的当前方法下的1515个个轴承更承更换仿真仿真过程程Page 37 多个轴承同时发生故障的情况,这与实际发生的情况不同?多个轴承同时发生故障的情况,这与实际发生的情况不同? 因为轴承寿命比较粗,按因为轴承寿命比较粗,按100100小时为一档。
小时为一档 本例假设失效时间不会完全相同,也就是说最多只有一个轴承本例假设失效时间不会完全相同,也就是说最多只有一个轴承是在停机的时候被更换是在停机的时候被更换 当前系统的费用估计如下:当前系统的费用估计如下:轴承的费用轴承的费用==4545个轴承个轴承××$32$32/轴承=/轴承=$1440$1440延误时间的费用延误时间的费用=(=(110110++110110++105105)分钟)分钟××$10$10/分钟=/分钟=$3250$3250停机修复时间内的损失停机修复时间内的损失==4545个轴承个轴承××2020分钟/轴承分钟/轴承××$10/$10/分钟=分钟=$9000$9000修理人员的费用修理人员的费用==4545个轴承个轴承××1010分钟/轴承分钟/轴承××$30$30//6060分钟=分钟=$450$450总费用总费用==$1440$1440++$3250$3250++$9000$9000++$450$450==$14140 $14140 轴承的总寿命是轴承的总寿命是==2230022300++1870018700++1860018600==5960059600小时。
小时所以所以1000010000个轴承小时的总费用是个轴承小时的总费用是((1414014140//5.965.96)=)=$2372$2372 5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(4 4))Page 38对第一组轴承,最早的故障时间是在对第一组轴承,最早的故障时间是在10001000小时在那个时刻,所有在那个时刻,所有的轴承都被更换,虽然其余轴承还有更长的寿命的轴承都被更换,虽然其余轴承还有更长的寿命比如,轴承比如,轴承1 1就就还会有还会有700700个小时的寿命个小时的寿命5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(4 4))轴承轴承1 1寿命寿命(小时)(小时)轴承轴承2 2寿命寿命(小时)(小时)轴承轴承3 3寿命寿命(小时)(小时)第一次故障第一次故障(小时)(小时)延误延误(分钟)(分钟)1 12 23 34 45 56 67 78 89 9101011111212131314141515合计合计17001700100010001500150013001300120012001000100015001500130013001800180013001300140014001500150015001500100010001300130011001100180018001700170011001100110011001200120017001700170017001200120013001300130013001300130018001800190019001700170010001000120012001300130018001800130013001200120012001200100010001100110011001100190019001400140012001200140014001700170010001000100010001300130011001100110011001000100012001200100010001100110011001100130013001300130012001200100010001300130010105 55 55 55 510105 5101015155 510105 510105 55 5110110表表10 10 建建议方案的方案的轴承更承更换((随机数字没有显示)随机数字没有显示)Page 39费用估计如下:费用估计如下:轴承的费用轴承的费用==4545个轴承个轴承××$32$32/轴承=/轴承=$1440$1440延误时间的费用延误时间的费用==110110分钟分钟××$10$10/分钟=/分钟=$1100$1100停机修复时间内的损失停机修复时间内的损失==1515组组××4040分钟/组分钟/组××$10$10元=元=$6000$6000修理人员的费用修理人员的费用==1515组组××4040分钟/组分钟/组××$30$30元/元/6060分钟=分钟=$300$300总费用总费用==$1440$1440++$1100$1100++$6000$6000++$300$300==$8840 $8840 轴承的总生命是=轴承的总生命是=1700017000××3 3==5100051000小时。
小时所以所以1000010000个小时的轴承总费用是个小时的轴承总费用是((88408840//5.15.1)=)=$1733$1733新的策略在轴承寿命每新的策略在轴承寿命每1000010000个小时内节省了个小时内节省了$634$634(( $2372 $2372 --$1733$1733)如果机器连续不停的运转,则每年大约)如果机器连续不停的运转,则每年大约节省节省$555.38$555.38((2424××365365==87608760))5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(4 4))Page 40 用户可以改变轴承寿命的分布(需要保证累积用户可以改变轴承寿命的分布(需要保证累积概率正好为概率正好为1.001.00)和延误时间的分布(也要保证累积)和延误时间的分布(也要保证累积概率正好为概率正好为1.001.00)等等 各种参数也可以进行改变(每轴承单位的成本等)各种参数也可以进行改变(每轴承单位的成本等)试验次数能从试验次数能从1 1到到400400之间变化之间变化 最后,能改变直方的端点以观察轴承寿命最后,能改变直方的端点以观察轴承寿命1000010000个小时的总费用的频率。
个小时的总费用的频率5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(4 4))Page 41Page 425.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))5.5.项目管理仿真项目管理仿真((1 1)设计结构矩阵()设计结构矩阵(design structure matrix,DSMdesign structure matrix,DSM))•是描述和分析任务依赖性的一个很有用的工具,是描述和分析任务依赖性的一个很有用的工具,•最初由最初由 StewardSteward于于19811981年在分析设计参数描述时提出;年在分析设计参数描述时提出;•最近在任务级上被用于分析开发项目(最近在任务级上被用于分析开发项目(Eppinger, Eppinger, 19941994)5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))5.5.项目管理仿真项目管理仿真((1 1))E,F,LE,F,L输入输入D D;; ((2 2))B B输出给输出给CFGJKCFGJK ((3 3)信息流容易捕捉;()信息流容易捕捉;(4 4)输入比输出容易捕捉)输入比输出容易捕捉I IO O5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))•耦合任务可以被识别耦合任务可以被识别•强调了过程流的特征强调了过程流的特征 5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))I IO O5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))((2 2)甘特图)甘特图•甘特图(甘特图(GanttGantt chartchart)是在)是在2020世纪初由亨利世纪初由亨利··甘特开发甘特开发的。
的•一种控制工具,帮助管理者发现实际进度偏离计划的情况一种控制工具,帮助管理者发现实际进度偏离计划的情况5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))((3 3))PERT PERT 图(项目评审技术,又称网络图法)图(项目评审技术,又称网络图法)•国外在项目管理中用的最多的是国外在项目管理中用的最多的是PERTPERT图图即计划评审法即计划评审法(Program Evaluation and Review Techniques(Program Evaluation and Review Techniques,,PERT)PERT)和关键路线法和关键路线法(Critical Path Method(Critical Path Method,,CPM)CPM) 5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))Page 51((4 4)项目管理仿真)项目管理仿真 项目项目可以用可以用活动活动的的网络网络来表示 弧表示活动弧表示活动,,节点表示活动的起点或终点节点表示活动的起点或终点。
在一条路径上,在一条路径上,完成所有活动的时间就是沿这条路径活动时间的总和,项目完成时完成所有活动的时间就是沿这条路径活动时间的总和,项目完成时间就是所有路径完成时间的最大值间就是所有路径完成时间的最大值5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))Page 52最上面的路径:最上面的路径: 起点起点 →A打碎鸡蛋打碎鸡蛋A→B搅拌鸡蛋搅拌鸡蛋B→终点终点煎鸡蛋煎鸡蛋中间的路径中间的路径:起点起点 →C做面包做面包C→终点终点涂黄油涂黄油底部的路径底部的路径起点起点 →终点终点炸咸肉炸咸肉 最上面的路径是沿着起点最上面的路径是沿着起点→→A→B→A→B→终点中间路径是沿着终点中间路径是沿着起点起点→→C→C→终点底部路径是起点终点底部路径是起点→→终点 例如例如, , 有三个朋友想做咸肉、鸡蛋和面包以作为一些周末有三个朋友想做咸肉、鸡蛋和面包以作为一些周末访问者早餐每个朋友准备三个项目中的一个,则活动如下:访问者早餐每个朋友准备三个项目中的一个,则活动如下:5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))Page 53 完成准备该早餐的每个活动的时间是变量,可用完成准备该早餐的每个活动的时间是变量,可用均均匀分布匀分布表示,在上限和下限之间变化表示,在上限和下限之间变化。
活动的时间表示在活动的时间表示在活动网络的弧上活动网络的弧上 例如,起点例如,起点→→A A(打碎鸡蛋)活动的时间假设是一(打碎鸡蛋)活动的时间假设是一个个2 2到到4 4分钟内均匀分布的,这意味着,分钟内均匀分布的,这意味着,2 2~~4 4分钟间的所有分钟间的所有时间是等机会地发生该活动的期望值或均值是时间是等机会地发生该活动的期望值或均值是3 3分钟 5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))Page 54 按照这个逻辑,沿最上面路径的期望值是按照这个逻辑,沿最上面路径的期望值是9 9分钟,分钟,这是将三个期望值加起来(这是将三个期望值加起来(3 3++3 3++3 3)得到的)得到的 最短可能完成时间,这是将最小值相加,也就是最短可能完成时间,这是将最小值相加,也就是6 6分钟(分钟(2 2++2 2++2 2)) 沿最上面路径最大可能完成时间是沿最上面路径最大可能完成时间是1212分钟(分钟(4 4++4 4++4 4))5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))Page 55 通过中间路径的期望值是通过中间路径的期望值是9 9分钟,而最小和最大分钟,而最小和最大时间分别是时间分别是6 6分钟和分钟和1212分钟。
分钟 底部路径具有相同的期望值和极值底部路径具有相同的期望值和极值 项目完成时间是通过任意路径的最大时间(鸡项目完成时间是通过任意路径的最大时间(鸡蛋、面包、咸肉)蛋、面包、咸肉)5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))能否确定哪一个是关键路径?能否确定哪一个是关键路径?为什么?为什么?活动时间有随机性,通过路径活动时间有随机性,通过路径的时间不是一个常量的时间不是一个常量Page 56 如何利用活动时间独立重复仿真办法来分析这种项目如何利用活动时间独立重复仿真办法来分析这种项目对于均匀分布,仿真活动时间如下:对于均匀分布,仿真活动时间如下: 仿真活动时间=下限+(上限-下限)仿真活动时间=下限+(上限-下限)* *随机数随机数 利用随机数表,每个被仿真的活动的时间可以手工计利用随机数表,每个被仿真的活动的时间可以手工计算出来 例如,对起点例如,对起点→→A A的活动,若随机数是的活动,若随机数是0.79430.7943,则,则被仿真的活动时间是被仿真的活动时间是2 2+(+(4 4--2 2))* *0.79430.7943==3.58863.5886分钟。
分钟对对400400次试验,采用缺省的种子,结果如下:次试验,采用缺省的种子,结果如下:中值中值10.1210.12分钟;最小值分钟;最小值6.856.85分钟;最大值分钟;最大值12.0012.00分钟分钟5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))Page 57 所谓的关键路径是指最长时间的路径,也就是,该所谓的关键路径是指最长时间的路径,也就是,该时间是该项目的完成时间对于时间是该项目的完成时间对于400400次的每个试验,实验次的每个试验,实验确定了哪一条路径是关键的,其结果如下:确定了哪一条路径是关键的,其结果如下: 上面的路径(鸡蛋):上面的路径(鸡蛋):3030%% 中间的路径(面包):中间的路径(面包):31.2531.25%% 底部的路径(咸肉):底部的路径(咸肉):38.7538.75%% 结论是:咸肉项最后准备好的机会是结论是:咸肉项最后准备好的机会是38.7538.75%5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5))Page 585.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(5 5)) 项目完成时间表示在频率图上,如果进行大规模的试验,项目完成时间表示在频率图上,如果进行大规模的试验,则频率图(或直方图)的基本形状会大致相同。
则频率图(或直方图)的基本形状会大致相同 13.5 13.5%的时间(%的时间(400400中的中的4545)早餐将会在)早餐将会在9 9分钟之内准备分钟之内准备好;好; 20.5 20.5%的时间(%的时间(400400中的中的8282),需要),需要1111到到1212分钟Page 596.6.轰炸机摧毁一座弹药库轰炸机摧毁一座弹药库 轰炸机水平飞行,携带了轰炸机水平飞行,携带了1010枚炸弹,瞄准点是(枚炸弹,瞄准点是(0 0,,0 0)爆炸点被认为是以瞄准点为中心的正态分布爆炸点被认为是以瞄准点为中心的正态分布,有飞行方,有飞行方向向400400米标准偏差、垂直方向米标准偏差、垂直方向200200米标准偏差米标准偏差 仿真这一轰炸过程,然后预测命中目标的炸弹数仿真这一轰炸过程,然后预测命中目标的炸弹数 5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(6 6))Page 60对于均值为对于均值为0 0和标准差为和标准差为1 1的标准正态变量的标准正态变量Z Z,其分布为:,其分布为:式中,式中,X X是正态分布的随机变量,是正态分布的随机变量,是是X X分布的均值,分布的均值,是标准差。
是标准差式中,式中,X X,,Y Y是炸弹落下的坐标,是炸弹落下的坐标,,,,有:,有:那么:那么:5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(6 6))Page 61炸弹炸弹X坐标坐标((400 ))Y坐标坐标((200 ))结果结果 a123456789102.2296-2.0035-3.1432-0.79681.07410.12650.06111.2182-0.80260.7324891.8-801.4-1257.3-318.7429.650.624.5487.3-321.0-293.0-0.19321.30340.3286-1.14170.7612-0.3098-1.10660.2487-1.00980.2552-38.6260.765.7-228.3152.2-62.0-221.349.7-202.051.0MissMissMissMissHitHitHitHitMissHit表表11 11 投投弹仿真运行仿真运行a总计::5 5枚命中,枚命中,5 5枚未命中枚未命中5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(6 6))表示表示““计算计算x x坐标的正态分布随机数坐标的正态分布随机数””,与,与助记符助记符相对应。
相对应Page 62 加下标加下标i i和和j j以表示以表示Z Z的值是不同的这些的值是不同的这些Z Z值是什么?值是什么?哪里能得到?哪里能得到? Z Z值是正态分布随机数,可以从均匀分布随机数得到值是正态分布随机数,可以从均匀分布随机数得到 单轰炸机运行的例子将表明这个仿真是如何执行的单轰炸机运行的例子将表明这个仿真是如何执行的 表表1111显示了一次仿真运行的结果,显示了一次仿真运行的结果, 表表1111中的正态分布随机数精确到了小数点后四位中的正态分布随机数精确到了小数点后四位5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(4 4))Page 63在在x x方向方向400400米和米和y y方向方向200200米的标准差,目标的形状不变米的标准差,目标的形状不变的情况下,作了的情况下,作了400400次试验(每次试验次试验(每次试验1010枚炸弹)枚炸弹)5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(6 6))从从2 2次击中到次击中到1010次击中的范围内都有,平均是次击中的范围内都有,平均是6.726.72次击中。
次击中Page 64如果只是运行一次任务(试如果只是运行一次任务(试验),则可能发生非常令人验),则可能发生非常令人误解的结果,但是图提供了误解的结果,但是图提供了一个很好的描述性的信息一个很好的描述性的信息 44 44%[(%[(175175//400400))××100100%]的投弹运行%]的投弹运行有有6 6次或少于次或少于6 6次的击中次的击中 71 71%%[(283[(283//400400))××100100%]有%]有6 6、、7 7、、8 8次击中 5.1 5.1 离散事件系统仿真实例(离散事件系统仿真实例(6 6))Page 651 1 库存系统的基本概念库存系统的基本概念 ☆ ☆ 两个最基本的概念两个最基本的概念 需求需求:顾客的需求,满足需求,库存量减少;:顾客的需求,满足需求,库存量减少; 订货订货:为了保证供应,需补充库存为了保证供应,需补充库存 由于需求与订货的不断发生由于需求与订货的不断发生, , 库存量呈现动态变化库存量呈现动态变化 ☆ ☆ 研究研究目的目的 一般是要确定或比较各种一般是要确定或比较各种库存策略库存策略, , 它包括在不同它包括在不同的需求情况下的需求情况下, , 何时订货何时订货, , 订多少货为宜等。
订多少货为宜等 P.170P.1705.2 5.2 库存系统仿真库存系统仿真Page 66☆ ☆ 评价库存策略的优劣一般则采用评价库存策略的优劣一般则采用““费用费用””高低来高低来衡量衡量 ○○保管费保管费(库存费):仓库设备、人力、货物保存、(库存费):仓库设备、人力、货物保存、损坏变质等费用,折算成每件每日费,每件每月费用等损坏变质等费用,折算成每件每日费,每件每月费用等 ○○订货费订货费:货物本身的费用、定货手续费和运输费货物本身的费用、定货手续费和运输费 ○○缺货损失费缺货损失费:货物不足造成的供不应求,错过销:货物不足造成的供不应求,错过销售机会或停工待料等造成的损失售机会或停工待料等造成的损失5.2 5.2 库存系统仿真库存系统仿真Page 67((1 1)确定性库存系统)确定性库存系统•需求需求量是确定性的量是确定性的•需求需求发生时间是确定性的发生时间是确定性的•订货订货量是确定性的量是确定性的•订货订货发生发生时间时间是确定性的是确定性的 •订货订货到到货物入库的时间货物入库的时间是确定性的是确定性的最最简单的确定性的确定性库存系存系统Q0Q/2入入库量量Q T 2T 3T 4T5.2 5.2 库存系统仿真库存系统仿真Page 68 0 T T ((1++ ))T 2T (2++ )T 3T (3++ )T 4T 提前期提前期R订货量量订货量量库存量存量随机随机库存系存系统((2 2)随机库存系统:)随机库存系统:•需求需求量是随机的量是随机的•需求需求发生时间是随机的发生时间是随机的•订货订货量是随机的量是随机的•订货订货发生发生时间时间是随机的是随机的•订货订货到到货物入库的时间货物入库的时间是随机的是随机的5.2 5.2 库存系统仿真库存系统仿真Page 692 2 确定性确定性库存系统库存系统库存初始水平库存初始水平--------------------------Q Q0 0 单位时间需求量单位时间需求量----------------------常常 值值年订货量年订货量--------------------------------D D为常值为常值订订 货货--------------------------------------无滞后无滞后Q0Q/2入入库量量Q T 2T 3T 4T每次订货量每次订货量Q--Q--与初始水平与初始水平Q Q0 0相同相同 N---N---订货次数,即订货次数,即N N==D/Q;D/Q;T---T---订货周期,即订货周期,即T T==12/N12/N。
库存策略库存策略--------采用安全库存策略,即不出现缺货采用安全库存策略,即不出现缺货 订货的策略订货的策略――-用完后即重新订货-用完后即重新订货5.2 5.2 库存系统仿真库存系统仿真Page 70则总费用则总费用C C为:为:由上式可计算得到最佳订货量由上式可计算得到最佳订货量Q Q* *为为按总费用最小原则:按总费用最小原则:为为相应地,最小总费用相应地,最小总费用无提前期、无滞后、无缺货无提前期、无滞后、无缺货•每次订货量每次订货量•年订货量年订货量•每次订货费用每次订货费用•每件货物的保管费每件货物的保管费5.2 5.2 库存系统仿真库存系统仿真Page 71有有订货滞后的最滞后的最简单的确定性的确定性库存系存系统Q0Q/2入入库量量Q T T (1+ )T 2T (2+ )T 3T (3+ )T 4T提提前前期期R 采用上述模型,只需要确定订货的提前期采用上述模型,只需要确定订货的提前期(1-(1- )T)T。
在考虑提前期的情况下,订货发生的时刻为在考虑提前期的情况下,订货发生的时刻为 T T,此,此时的库存水平用时的库存水平用R R来表示,称为来表示,称为订货点订货点 在这两种情况下,采用安全库存订货策略,平均在这两种情况下,采用安全库存订货策略,平均库存量均为库存量均为0.5Q0.5Q 考虑订货滞后:考虑订货滞后:5.2 5.2 库存系统仿真库存系统仿真Page 72 若若允许缺货允许缺货,设一周期内,设一周期内不缺货不缺货时间时间的的百分比百分比为为 ,(考虑提前期)的库存模型可用下图表示考虑提前期)的库存模型可用下图表示Q入入库量量Q提前期提前期R T T T (1+ )T 2T 3T (1-- ))Q 如果在某一提前期下所订货物不能在如果在某一提前期下所订货物不能在nT(n=1,2,nT(n=1,2,……) )时刻到达,则可能出现两种情况:时刻到达,则可能出现两种情况: 发生缺货发生缺货 库存加大库存加大5.2 5.2 库存系统仿真库存系统仿真Page 73总费用总费用C C::•每次订货费用为每次订货费用为C C0 0•每件货物的保管费每件货物的保管费C C1 1•每件缺货损失费每件缺货损失费C C2 2•年订货量年订货量D D•每次订货量每次订货量Q Q平均库存量:平均库存量:平均缺货量:平均缺货量: T T T (1+ )T 2T 3T (1-- ))QQ入入库量量Q提前期提前期R5.2 5.2 库存系统仿真库存系统仿真Page 74按最小总费用原则,首先确定订货时间:按最小总费用原则,首先确定订货时间:在允许缺货在允许缺货时时每次每次订货量要订货量要加大加大在在 T T点订货,确定最优订货量:点订货,确定最优订货量:不允许缺货不允许缺货最小总费用最小总费用为:为:不允许缺货不允许缺货5.2 5.2 库存系统仿真库存系统仿真在允许缺货在允许缺货时时最小最小总费用比不允许缺货时的最小总费用小总费用比不允许缺货时的最小总费用小Page 753 3 随机随机库存系统库存系统提前期(提前期(1-1- ))T T,,------------是随机的是随机的单位时间的需求量单位时间的需求量------------是随机的是随机的 0 T T ((1++ ))T 2T (2++ )T 3T (3++ )T 4T 提前期提前期R订货量量订货量量库存量存量随机库存系统随机库存系统最简单的随机库存系统:每次最简单的随机库存系统:每次订货量订货量Q Q不变不变,订货点,订货点R R不变不变。
求:总费用最小的最优订货点、每次最优订货量及总费用求:总费用最小的最优订货点、每次最优订货量及总费用5.2 5.2 库存系统仿真库存系统仿真Page 76设每周期期望库存量为设每周期期望库存量为I I,则,则 其中:其中:•R R++Q/2Q/2无提前期时每周期的期望库存量无提前期时每周期的期望库存量•y y为提前期内的随机需求量为提前期内的随机需求量•E(y)E(y)是是y y的期望值的期望值•设每周期期望缺货数为设每周期期望缺货数为S Sh h( (y y) )是提前期需求量是提前期需求量y y的的概率密度函数概率密度函数5.2 5.2 库存系统仿真库存系统仿真 订货量订货量Q Q不变不变 订货点订货点R R不变不变Page 77将将I I,,S S表达式代入,可表达式代入,可得:得: 求最佳订货点求最佳订货点R R::令令,得,得,即,即选择选择R R,使随机变量,使随机变量Y>RY>R的概率为的概率为在此基础上求在此基础上求确定最优订货量确定最优订货量,即令,即令,可,可得:得:每年所需费用为每年所需费用为C C::5.2 5.2 库存系统仿真库存系统仿真Page 784 4 随机随机库存系统仿真-单类产品库存系统仿真-单类产品 需求时间需求时间为均值为均值0.10.1个月的指数随机变量:个月的指数随机变量:如何产生?如何产生? 需求量需求量也是随机变量也是随机变量, , 其概率质量函数:其概率质量函数:如何产生?如何产生? 若订货若订货, , 从从订货到货物入库的时间订货到货物入库的时间是是0.50.5和和1.01.0月之间的均匀分布的月之间的均匀分布的随机随机变量:变量:如何产生?如何产生? 订货策略:订货策略:按月订货按月订货, , 每月月初检查库存水平每月月初检查库存水平, , 若库存水平若库存水平I I超过下限超过下限 不订货不订货 若低于下限若低于下限 订订 货货 订货量订货量Z Z::库存上限库存上限S S与与I I之间之间 5.2 5.2 库存系统仿真库存系统仿真Page 791 1)库存管理的定货模式)库存管理的定货模式: :•定时定货(本例):定时定货(本例):经过确定的时间段,进行补经过确定的时间段,进行补充定货,充定货,定货时间是确定的,定货量是不确定的定货时间是确定的,定货量是不确定的。
定货次数一定;便于定货管理定货次数一定;便于定货管理•定量定货:定量定货:当货物的库存量低于安全库存量时候,当货物的库存量低于安全库存量时候,便向供应商定货,定货数量等于货物的库存容量便向供应商定货,定货数量等于货物的库存容量减去货物的安全库存,减去货物的安全库存,订货的时间不确定,但定订货的时间不确定,但定货量是一定的货量是一定的优点是不会发生缺货现象,但是优点是不会发生缺货现象,但是定货管理较难定货管理较难5.2 5.2 库存系统仿真库存系统仿真Page 80 假定假定一开始一开始I(0)I(0)==6060,并且没有欠付的订货,并且没有欠付的订货仿真n=120n=120个月情况,个月情况,采用每月平均总费用(月平均订货费、月平均库存费采用每月平均总费用(月平均订货费、月平均库存费、平均、平均缺货损失总和)缺货损失总和) 比较比较如下如下9 9种订货策略种订货策略, , 以便确定何种策略费用以便确定何种策略费用最少最少202020202020202040404040404060606060S S404060608080100100606080801001008080100100库存下限库存下限库存上限库存上限S S5.2 5.2 库存系统仿真库存系统仿真Page 812 2)考虑如下几种费用)考虑如下几种费用: :表示每件缺货损失费表示每件缺货损失费, , 只有当只有当时才需计算时才需计算, , 平均每月平均每月缺货损失费为缺货损失费为• 缺货损失费缺货损失费, , 用用库存水平库存水平I I• 保管费保管费: : 用用表示每件每月的保管费表示每件每月的保管费, , 显然显然, , 只有当库存水平只有当库存水平时才需要计算保管费时才需要计算保管费: :其中其中: :为仿真运行的月数为仿真运行的月数, , 为为平均每月平均每月的保管费。
的保管费库存水平库存水平I I每月平均总费用(月平均订货费、月平均库存费、平均缺货损失总和)每月平均总费用(月平均订货费、月平均库存费、平均缺货损失总和)设每件订货费用为设每件订货费用为, , 订货附加费用为订货附加费用为( (若未订货若未订货, , 则则则每月订货费为则每月订货费为),),订货量订货量Z Z• 订货费订货费5.2 5.2 库存系统仿真库存系统仿真Page 82a a)模型中的事件定义)模型中的事件定义 事件事件定义依赖于系统状态的描述,定义依赖于系统状态的描述,库存量库存量可描述系可描述系统的的状态统的的状态3 3)库存系统模型)库存系统模型类型类型1 1::订货到达,订货到达,本系统中所订货物到达仓库,引本系统中所订货物到达仓库,引 起库存量增加,因此,应定义起库存量增加,因此,应定义““订货到达订货到达”” 为一类事件为一类事件类型类型2 2::需求到达,需求到达,顾客需求会引起库存量减少,也顾客需求会引起库存量减少,也 应定义应定义““需求到达需求到达””为一类事件为一类事件5.2 5.2 库存系统仿真库存系统仿真Page 83 仔细分析引起仔细分析引起系统状态变化系统状态变化的各种条件及其相互关系,的各种条件及其相互关系,以保证系统状态变化描述是完备的,即能以保证系统状态变化描述是完备的,即能充分地对系统中的充分地对系统中的事件加以定义事件加以定义。
分析本系统,除了分析本系统,除了货物入库及需求到达货物入库及需求到达会引起库存量发会引起库存量发生变化外,其它似乎不需要考虑了生变化外,其它似乎不需要考虑了 实际上,发生实际上,发生““货物入库货物入库””的条件是必须首先的条件是必须首先订货订货,,因此,还应定义因此,还应定义““订货订货””为一类事件为一类事件模型的完备性?模型的完备性?5.2 5.2 库存系统仿真库存系统仿真Page 84类型类型4 4::订货订货 订货事件是条件事件订货事件是条件事件 根据模型要求,在每月月初时要进行库存计算,如根据模型要求,在每月月初时要进行库存计算,如果库存量大于下限,则不需要订货,只有库存量小于下果库存量大于下限,则不需要订货,只有库存量小于下限时才需订货限时才需订货 订货事件的完整描述应为,订货事件的完整描述应为,每月月初进行库存计算,每月月初进行库存计算,根据库存量及订货策略决定是否订货根据库存量及订货策略决定是否订货5.2 5.2 库存系统仿真库存系统仿真Page 85类型类型3 3:仿真运行长度:仿真运行长度 在仿真模型中,可将仿真控制定义为在仿真模型中,可将仿真控制定义为程序事件程序事件。
在本模型中,我们可以将在本模型中,我们可以将仿真运行长度仿真运行长度定义为程序事件定义为程序事件 设对每种策略仿真运行设对每种策略仿真运行120120个月,则当仿真钟的值个月,则当仿真钟的值等于等于120120个月时该事件发生,定义为第个月时该事件发生,定义为第3 3类事件为什么要将程序事件定义为第为什么要将程序事件定义为第3 3类事件呢类事件呢? ?事件上调度法中的事件上调度法中的““解结规则解结规则””问题5.2 5.2 库存系统仿真库存系统仿真Page 86 出现多个事件同时发生的情形,用户在建模时必须规定出现多个事件同时发生的情形,用户在建模时必须规定同时发生事件的处理顺序,一般可同时发生事件的处理顺序,一般可按事件类型数从低到高的顺序按事件类型数从低到高的顺序来处理来处理( (这样便于程序的处理这样便于程序的处理) ) 本系统中,本系统中,““仿真运行仿真运行120120个月结束个月结束””的程序事件与的程序事件与““每月月初计算库存以决定订货每月月初计算库存以决定订货””的系统事件可能同时发生,那么的系统事件可能同时发生,那么应先执行应先执行““仿真结束仿真结束””事件,因为此时再计算库存已无实际意义。
事件,因为此时再计算库存已无实际意义事件类型事件类型事件说明事件说明1 1订货从供应商到达公司订货从供应商到达公司2 2顾客对产品的需求顾客对产品的需求3 3仿真运行长度仿真运行长度定义为程序事件定义为程序事件4 4订货订货5.2 5.2 库存系统仿真库存系统仿真4 4)离散随机变量)离散随机变量的反变换法:的反变换法:分别以概率分别以概率, , , , ……, , 取值取值其中其中且且根据根据u u的值落在何区间的值落在何区间, , 相应区间对应的随机变量就是相应区间对应的随机变量就是所所 需要的随机变量需要的随机变量 设离散随机变量设离散随机变量将将[0, 1][0, 1]区间按区间按, , , , ……, , 的值分成的值分成n n个子个子区间区间产生在产生在[0, 1][0, 1]区间上均匀分布的独立的随机数区间上均匀分布的独立的随机数u u87875.2 5.2 库存系统仿真库存系统仿真由随机数发生器由随机数发生器产生产生的的,若,若, , 则令则令, , 若若, , 则令则令 令令 依次下去写成一般形式:依次下去写成一般形式:速度:速度:主要决定于区间搜索方法。
主要决定于区间搜索方法图12.2 12.2 离散分布的反离散分布的反变换法法先要将先要将按从小到大的顺序进行排序按从小到大的顺序进行排序, , 即即, , 得到分布函数子区间的分界点得到分布函数子区间的分界点 , ,实现办法:实现办法:88885.2 5.2 库存系统仿真库存系统仿真例例 设离散随机变量设离散随机变量x x的质量函数及累积分布函数如下:的质量函数及累积分布函数如下:xi012345p(x)00.10.510.190.150.05F(x)00.10.610.800.951.00用反变换法产生随机变量用反变换法产生随机变量x x3)(3)条件不满足,再判断条件不满足,再判断(4) (4) 仍不满足,再判断仍不满足,再判断(5) (5) 满足满足(6) (6) 从而从而得到得到(1)(1)先由随机数发生器产生先由随机数发生器产生[0[0,,1]1]区间上均匀分布的随机变量区间上均匀分布的随机变量u u,, 设设u u=0.72 =0.72 ( (2 2) )按按反变换法,先判断是否反变换法,先判断是否5.2 5.2 库存系统仿真库存系统仿真离散随机变量反变换法可描述如下:离散随机变量反变换法可描述如下: (4) (4) 令令 成成递增顺序排列递增顺序排列(1) (1) 按按(2) (2) 产生产生U(0U(0,,1)1)(3) (3) 求非负整数求非负整数I I,满足,满足(12.10)(12.10)反变换法是最直观的方法反变换法是最直观的方法, , 但但却不一定是最有效的方法。
却不一定是最有效的方法90905.2 5.2 库存系统仿真库存系统仿真Page 915 5))随机变量模型随机变量模型 需求时间需求时间随机变量服从均值为随机变量服从均值为0.10.1个月的指数分布,即其概率密度个月的指数分布,即其概率密度函数为:函数为:可用反变换法得到,即:可用反变换法得到,即:(10.36)(10.36)为需求时间间隔为需求时间间隔(10.37)(10.37)5.2 5.2 库存系统仿真库存系统仿真Page 92随机变量需求量随机变量需求量 是离散随机变量,下面讨论如何产生是离散随机变量,下面讨论如何产生我们先根据我们先根据(10.31)(10.31)式做出式做出的分布函数图的分布函数图( (见图见图10.9)10.9)如下:如下:(10.31)(10.31)5.2 5.2 库存系统仿真库存系统仿真Page 93如果我们产生一个如果我们产生一个[0,1][0,1]区间上均匀分布的随机数区间上均匀分布的随机数 ,,,则令,则令如果如果,则令,则令而当而当时令时令若若,则令,则令显然,由于显然,由于是在是在[0[0,,1]1]上均匀分布的随机变量,用它对上均匀分布的随机变量,用它对的分布函数进行取样,那么的分布函数进行取样,那么落在落在各子区间上的概率正比于上述各区间的长度,即分别为各子区间上的概率正比于上述各区间的长度,即分别为,这就是我们所要求的随机变量,这就是我们所要求的随机变量这种产生随机变量的方法称为离散反变换法。
这种产生随机变量的方法称为离散反变换法若若5.2 5.2 库存系统仿真库存系统仿真Page 946 6)确定统计变量)确定统计变量 通过上述对模型的定义,我们不难编制出仿真程序,然后进行通过上述对模型的定义,我们不难编制出仿真程序,然后进行仿真运行下面是各种库存策略的仿真结果输出:仿真运行下面是各种库存策略的仿真结果输出:======Single Product Inventory SystemSingle Product Inventory System======Initial Inventory LevelInitial Inventory Level:: 60 Items60 ItemsNumber of Demand SizesNumber of Demand Sizes:: 4 Items4 Items***Distribution Function of Demand Sizes******Distribution Function of Demand Sizes*** 0.1670 0.5000 0.8333 1.000 0.1670 0.5000 0.8333 1.000Mean Inter-Demand Time 0.1 MonthsMean Inter-Demand Time 0.1 MonthsLength of the Simulation 120 MonthsLength of the Simulation 120 Months K=32.00$ m=3.00$ h=1.00$ p=5.00$ K=32.00$ m=3.00$ h=1.00$ p=5.00$5.2 5.2 库存系统仿真库存系统仿真Page 95各种库存策略的仿真结果输出:各种库存策略的仿真结果输出:策略策略总费用用平均平均订货费平均平均维持持费平均短缺平均短缺损失失费(20,,40)125.5496.45 8.8420.25(20,,60)116.8486.0217.8213.01(20,,80)121.4584.6726.3010.49(20,,100)124.6579.8939.65 5.11(40,,60)127.97101.6924.92 1.36(40,,80)124.7588.1935.40 1.16(40,,100)131.5084.5945.95 0.95(60,,80)140.9094.3746.60 0.02(60,,100)148.2992.9655.33 0.005.2 5.2 库存系统仿真库存系统仿真Page 96 平均总费用这一项,在(平均总费用这一项,在(20,6020,60)这种策略下为)这种策略下为116.84116.84,而在(,而在(2020,,8080)这种策略下为)这种策略下为121.45121.45,两者的差值为,两者的差值为4.614.61,,这三个数均是随机变量。
这三个数均是随机变量 根据这样一个样本来判断是难于保证(根据这样一个样本来判断是难于保证(2020,,6060))这种策略肯定较(这种策略肯定较(2020,,8080)要好)要好? ? 顾客需求是随机变量,订货延迟时间也是随机变量,顾客需求是随机变量,订货延迟时间也是随机变量,每一次仿真运行的结果也是随机变量,那么每一次仿真运行的结果也是随机变量,那么每种策略仿真运行每种策略仿真运行的结果的差值也应是随机变量的结果的差值也应是随机变量5.2 5.2 库存系统仿真库存系统仿真Page 97差值置信区间方法差值置信区间方法: :则则 Z Zj j为独立同分布的随机变量为独立同分布的随机变量, , 由由设置信水平为设置信水平为 , , 则则令令设系统设系统i i((i i=1,2)的:=1,2)的:6 6)系统性能)系统性能的比较的比较系统的性能期望值系统的性能期望值: :样本差值样本差值: :nn个样本为个样本为: :5.2 5.2 库存系统仿真库存系统仿真Page 98近似近似100(1-100(1- )%)%的置信区间为的置信区间为: : 1 1)如果)如果Z Zj j是正态分布的随机变量是正态分布的随机变量, , 该该置信区间是准确的置信区间是准确的, , 即以即以1-1- 的概率包含的概率包含2 2)如果)如果Z Zj j不是正态分布的随机变量不是正态分布的随机变量的概率趋近的概率趋近1-1- 。
当当n n足够大时足够大时, , 该区间包含该区间包含假若假若x x1 1j j与与x x2 2j j是正相关的是正相关的, , 则可以减少则可以减少Var(Var(Z Zj j),), 从而使置信区间更小从而使置信区间更小3 3))5.2 5.2 库存系统仿真库存系统仿真Page 99例例14.814.8库存库存系统,比较两种库存策略系统,比较两种库存策略(20(20,,60)60),,(20(20,,80)80),每次仿真运行,每次仿真运行长度长度6060个月,分别运行个月,分别运行1010次6 6)系统性能)系统性能的比较的比较5.2 5.2 库存系统仿真库存系统仿真Page 100•从上面的仿真结果可以看到,(从上面的仿真结果可以看到,(2020,,6060)策略的平均每)策略的平均每月总费用与(月总费用与(2020,,8080)每月总费用的)每月总费用的差差是随机变化的是随机变化的•例如例如: :在第1次运行时两者的差值为在第1次运行时两者的差值为0.700.70,而在第2次运,而在第2次运行时的差值则为行时的差值则为-0.89-0.89通过构造置信区间的方法,才能得到可信的结论通过构造置信区间的方法,才能得到可信的结论 仅仅根据某一次运行的结果来判断哪种策略为好有时难免仅仅根据某一次运行的结果来判断哪种策略为好有时难免得出错误的结论得出错误的结论? ?5.2 5.2 库存系统仿真库存系统仿真6 6)系统性能)系统性能的比较的比较Page 101 记记Z Zj j表示两种策略运行后平均每月总费用的差值,下面我表示两种策略运行后平均每月总费用的差值,下面我们来构造的置信区间。
由:们来构造的置信区间由: 则当则当 =0.10=0.10时,的置信区间为时,的置信区间为: [-0.11: [-0.11,,3.11]3.11] 即即我们有我们有90%90%的置信度相信,两种策略的误差在的置信度相信,两种策略的误差在[-0.11[-0.11,,3.11]3.11]区间内,区间内,从总体上看,从总体上看,(20(20,,60)60)这种策略较这种策略较(20(20,,80)80)更好一些更好一些比较两系统性能的方法实质上是将两系统问题简化为单一系统问题比较两系统性能的方法实质上是将两系统问题简化为单一系统问题6 6)系统性能)系统性能的比较的比较5.2 5.2 库存系统仿真库存系统仿真Page 1025.3 5.3 离散事件系统仿真语言离散事件系统仿真语言离散事件仿真离散事件仿真系统软件系统软件Page 103用于开发仿真模型的软件可以划分为三类:用于开发仿真模型的软件可以划分为三类:第一类,通用的编程语言,如第一类,通用的编程语言,如C C、、C++C++和和JavaJava等。
等第二类,仿真编程语言,如第二类,仿真编程语言,如GPSS/HGPSS/HTMTM,,SIMAN VSIMAN V® ®和和SLAM SLAM IIII® ®等第三类,仿真环境,这一类包括多种产品,它们在某些方第三类,仿真环境,这一类包括多种产品,它们在某些方面有很大差异(如价格、应用领域和动画类型),但有共面有很大差异(如价格、应用领域和动画类型),但有共同特点,如图形化用户界面,以及支持仿真研究的所有同特点,如图形化用户界面,以及支持仿真研究的所有(至少是大多数)方面的环境许多仿真环境包括一种仿(至少是大多数)方面的环境许多仿真环境包括一种仿真编程语言,但有些则采用类似于流程图的图形化方法真编程语言,但有些则采用类似于流程图的图形化方法5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言Page 104((1 1))仿真软件的历史仿真软件的历史1955-1960 1955-1960 探索阶段探索阶段1961-1965 1961-1965 出现出现1966-1970 1966-1970 形成阶段形成阶段1971-1978 1971-1978 发展阶段发展阶段1979-1986 1979-1986 巩固和改良阶段巩固和改良阶段1987-1987-?? 集成环境阶段集成环境阶段5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言Page 1051)探索阶段(1955-60) 早期的仿真由早期的仿真由FORTRANFORTRAN或其他通用编程语言或其他通用编程语言实现,缺乏专业仿实现,缺乏专业仿真程序的支持。
真程序的支持 在最初阶段(在最初阶段(1955-601955-60),人们在探索),人们在探索统一概念和开发可统一概念和开发可重用例程重用例程以促进仿真发展方面付出了巨大的努力以促进仿真发展方面付出了巨大的努力 1960 1960年出现了年出现了通用仿真程序通用仿真程序 ,被视为第一个,被视为第一个““语言成就语言成就””,开发了可在后续仿真项目中重用的程序开发了可在后续仿真项目中重用的程序5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言Page 1062)出现阶段(1961-65)““开始时有开始时有FORTRANFORTRAN,,ALGOLALGOL和和GPSSGPSS 作为第一个进程交互仿真编程语言,作为第一个进程交互仿真编程语言,GPSSGPSS由由IBMIBM的的Geoffrey Geoffrey GordenGorden研发并大约于研发并大约于19611961年面世年面世, ,为计算机系统的快速仿真为计算机系统的快速仿真. . GPSS GPSS((General purpose Simulation SystemGeneral purpose Simulation System)易用性使其)易用性使其很快在其他应用领域也流行开来。
很快在其他应用领域也流行开来 GPSS GPSS基于基于方框图表示方框图表示(类似流程图),适于各种排队模型类似流程图),适于各种排队模型 早在早在19651965年年GPSSGPSS已经和已经和交互式显示终端相连接交互式显示终端相连接,可中断并显,可中断并显示中间结果,预示了今日的示中间结果,预示了今日的交互仿真,但在当时由于过于昂贵而交互仿真,但在当时由于过于昂贵而不能广泛的应用不能广泛的应用5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言Page 107 1963 1963年,年,RAND RAND 公司在美国空军的支持下开发出公司在美国空军的支持下开发出SIMSCRIPTSIMSCRIPT语言 SIMUSCRIPTSIMUSCRIPT最初深受最初深受FORTRANFORTRAN影响,经过几个版本后,从影响,经过几个版本后,从FORTRANFORTRAN库中分离出来并建立了自己的仿真编程语言最初的版库中分离出来并建立了自己的仿真编程语言最初的版本是基于本是基于事件调度的事件调度的 1961 1961年,美国钢铁公司应用研究实验室开发年,美国钢铁公司应用研究实验室开发GASPGASP((General Activity Simulation ProgramGeneral Activity Simulation Program通用活动仿真程通用活动仿真程序)。
序) 最初是基于通用编程语言最初是基于通用编程语言ALGOLALGOL,随后决定基于,随后决定基于FORTANFORTAN,,GASPGASP使用工程师们熟悉的使用工程师们熟悉的流程图符号流程图符号 这一阶段还发展了许多其他的仿真编程语言其中引人注这一阶段还发展了许多其他的仿真编程语言其中引人注意的是意的是SIMULASIMULA,它是,它是ALGOLALGOL的扩展,开发于挪威并在整个欧洲广的扩展,开发于挪威并在整个欧洲广泛应用 另一值得注意的是控制和仿真语言另一值得注意的是控制和仿真语言CSLCSL((The Control The Control and Simulation languageand Simulation language 5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言Page 1083)形成阶段(1966-70) 许多概念被提炼,以促进每种语言的视图有更加一致的表述许多概念被提炼,以促进每种语言的视图有更加一致的表述主要的仿真编程语言更加成熟,获得了更加广泛的应用主要的仿真编程语言更加成熟,获得了更加广泛的应用。
GPSS/360 GPSS/360以及其早期版本的扩展,是应以及其早期版本的扩展,是应IBM360IBM360计算机而出现计算机而出现的它的流行推动了至少的它的流行推动了至少6 6个硬件供应商和其他公司产生他们自己个硬件供应商和其他公司产生他们自己的的GPSSGPSS工具或类似产品工具或类似产品 SIMSCRIPT IISIMSCRIPT II代表了仿真编程语言的重要发展它格式自由代表了仿真编程语言的重要发展它格式自由的类英文语言和的类英文语言和““包容性包容性””好的编译器,力图使用户主要考虑语好的编译器,力图使用户主要考虑语言设计 ECSLECSL派生自派生自CSLCSL,它发展并流行于于英国它发展并流行于于英国 在欧洲,在欧洲,SIMULASIMULA增加了类和继承的概念,并成为现代面向对增加了类和继承的概念,并成为现代面向对象编程语言的先驱象编程语言的先驱 5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言Page 1094)发展阶段(1971-78)这一阶段这一阶段GPSSGPSS的主要发展来自的主要发展来自IBMIBM以外。
以外•GPSS/NORDENGPSS/NORDEN提供了一个交互式、可视化环境提供了一个交互式、可视化环境•19771977年发布年发布GPSS/HGPSS/H,后来开发了小型机及个人计算机版本,它可,后来开发了小型机及个人计算机版本,它可以以比标准比标准GPSSGPSS快快5 5到到3030倍倍的速度编译增加了包括的速度编译增加了包括交互式调试器交互式调试器等等在内的新特性以后,它成为目前应用的在内的新特性以后,它成为目前应用的GPSSGPSS的标准版本的标准版本• Purdue Purdue大学对大学对GASPGASP做出了重要改动,在做出了重要改动,在19741974年推出了年推出了GASP IVGASP IV除了时间事件外,它结合了状态事件,从而除了事件调度外,增除了时间事件外,它结合了状态事件,从而除了事件调度外,增加了对活动扫描的支持加了对活动扫描的支持5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言Page 1104)发展阶段(1971-78)这一阶段人们还努力简化建模过程这一阶段人们还努力简化建模过程 通过通过SIMULASIMULA,人们尝试从高级用户的视角开发一个系统定义,,人们尝试从高级用户的视角开发一个系统定义,以便可以自动翻译为可执行模型。
以便可以自动翻译为可执行模型 交互式程序产生器交互式程序产生器——“——“问卷式编程问卷式编程””,自然语言界面,以,自然语言界面,以及具有自动映射至语言选项及具有自动映射至语言选项 与早期对自动编程过分乐观的想法类似,这些努力在建模的与早期对自动编程过分乐观的想法类似,这些努力在建模的普遍性方面遇到了严重限制,即遇到真实世界系统不可避免的复普遍性方面遇到了严重限制,即遇到真实世界系统不可避免的复杂性 简化仿真建模的工作仍在继续,尽管多数成就是仅仅局限于简化仿真建模的工作仍在继续,尽管多数成就是仅仅局限于为专门领域应用而设计的仿真系统为专门领域应用而设计的仿真系统5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言Page 1115)巩固和改进阶段(1971-78)出现了专为桌面计算机和微机所写,或用于桌面机及微机的出现了专为桌面计算机和微机所写,或用于桌面机及微机的SPLSPL出现了出现了GASPGASP的两个主要后裔:的两个主要后裔:SLAMIISLAMII和和SIMANSIMAN SLAM SLAM提供提供多种建模观点和组合建模能力多种建模观点和组合建模能力。
它有基于它有基于GASPGASP的面向的面向事件调度观点,网络视图(进程交互观点的一种变形)和一种连续事件调度观点,网络视图(进程交互观点的一种变形)和一种连续组件 SIMAN SIMAN((SIMulation ANalysisSIMulation ANalysis仿真分析)既具有像仿真分析)既具有像GASPIVGASPIV这这样的样的SPLSPL的的通用建模能力通用建模能力,又具有某些方面类似,又具有某些方面类似SLAMSLAM和和GPSSGPSS的的块图块图组件组件 SIMAN SIMAN是第一个可在是第一个可在IBM PCIBM PC上上执行执行,并专为在,并专为在MSMS--DOSDOS系统限系统限制下制下运行运行而设计的主流仿真语言而设计的主流仿真语言 SIMAN SIMAN允许允许事件调度法事件调度法,提供了一个,提供了一个FORTRANFORTRAN程序集程序集;允许块图;允许块图方法(进程交互的另一个变形),以及一种连续组件方法(进程交互的另一个变形),以及一种连续组件5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言Page 1126)集成环境阶段(1987-现在) 因为因为SPLSPL在个人计算机上的迅速发展和在个人计算机上的迅速发展和具有图形化用户界面、具有图形化用户界面、动画以及其它可视化工具动画以及其它可视化工具的仿真环境的出现。
的仿真环境的出现 许多环境还包括了许多环境还包括了输入数据分析器和输出分析器输入数据分析器和输出分析器 一些软件包试图通过使用一些软件包试图通过使用进程流或块图进程流或块图,以及使用,以及使用填空填空式视窗系统式视窗系统而无需学习编程语法,来简化建模过程而无需学习编程语法,来简化建模过程 动画从示意图式的显示到按实际绘制的二维、三维画面动画从示意图式的显示到按实际绘制的二维、三维画面 近期的发展还有近期的发展还有基于基于WebWeb的仿真的仿真5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言 5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言时间时间特点特点软件名称软件名称4. Generation 90's~Object Orientation IntegrationReal-time CommunicationCustomizationSiMPLE++FleXsimEXTEND3. Generation 80'sBuilding BlocksGraphical ModelingAnimationASAPAutomodProModelWITNESSetc.2. Generation 70'sSpecialized Programming LanguageSLAMSIMSCRIPTGPSSSIMULA etc.1. Generation 60'sStandard Programming Languages FORTRANALGOL etc.(2)Some Simulation advantages•Cheap–Some open-source software available–Some packages have entry-level pricing–Expensive packages may be worth it•Easy to do–Specialization = ease•Fast to complete–Specialized packages are fastest•Easy to communicate the solution–Animation, custom reports and graphics(3)What’s new in software technology•3D animation•Ultra-realistic imaging•Easy integration with popular languages–C#, C++, VB, Access, VBA, Excel, Visio•Optimization of designs (OptQuest)•Automated output analysis•Custom Reports (Crystal Reports)•Automated input analysis (Stat::Fit, ExpertFit)•Specialized modeling packages3D AnimationFlexSimFlexSimAutoModAutoModArenaArena((3 3))What’s new in software technologyUltra-realismFlexSimFlexSimAutoModAutoModArenaArena((3 3))What’s new in software technologyLanguage integration•Excel (reports)•Access (data retrieval)•VBA (integration with Office tools)•VB•C#•C++•Visio (process modeling)((3 3))What’s new in software technologyVisio integration•Build the process in Visio•Use the simulation engine to evaluate itWitnessWitnessArenaArenaProModelProModel((3 3))What’s new in software technologyDesign OptimizationOptQuestOptQuest•OptQuest can perform global optimization, using the simulation model as a function evaluator•Specify simulation parameters, objective, constraints•OptQuest searches for a global optimum by creating simulation models and evaluating them((3 3))What’s new in software technologyAutomated Output AnalysisAutoModAutoModArenaArenaFlexSimFlexSim•Automated experiment design: Factor analysis•Models with varying parameters are built automatically•Results are compiled•Multi-factor analysis is done automatically ((3 3))What’s new in software technologyCustom ReportingCrystal ReportsCrystal ReportsArenaArenaFlexSimFlexSimWitnessWitness•The output is integrated with Crystal Reports•Customized reports can be built quickly•Output can also be sent to Excel for further analysis((3 3))What’s new in software technologyAutomated Input AnalysisExpertFitExpertFitStat::FitStat::Fit•Data is collected•Data is imported into ExpertFit or Stat::Fit•Probability distributions are automatically fit to the data (family and parameters)•The distribution representations are customized for the simulation package((3 3))What’s new in software technologySpecialized Modelers•Computer Networks•Call Centers•Hospitals•Work Flow•Traffic Flow•Manufacturing((3 3))What’s new in software technology(4)Simulation Tool Requirements•Ease of use•Multiple application areas•Required level of detail & complexity•Reuse of generic components•Fast execution of big models•Data exchange capabilities•Animation capabilities•Experimentation support•Pre- and post-run analysis capability((5))DEDS Simulation Software•Arena•FlexSim•Simul8•AutoMod•MicroSaint•ProModel•WitnessArena•Cheap to start•2D animation–3D post-animation•Optimized model design•Automated input analysis•Integration with VB•Specialized versions:–Factory, contact center, packaging, flow process•U$795 - $25,000• Simulation SoftwareArena - Product History•1982 first PC-based simulation language (SIMAN)•1985 first animation for PC-based simulation (Cinema)•1993 first template-based simulation system (Arena 1.0)•1995 first Microsoft certified simulation system (Arena 2.0) •1997 first VBA enabled simulation system (Arena 3.0)•1998 first scaleable simulation system (Arena 4.0)•2000 first comprehensive enterprise simulation system - Arena 5.0 •Arena Basic•Arena Standard•Arena Professional•Arena Contact Center•Arena Packaging•2001 first simulation environment completely integrated into MES suite - Arena 6.0 Factory AnalyzerArena - Unique Competencies•Natural and Consistent Modeling Methodology–Flowchart style model building regardless of detail or complexity.•Extendable and Customizable–Create, re-use, & distribute templates tailored to your own application•Scalable Architecture –Easy enough to suit the needs of the beginner–Powerful enough to satisfy the demands of the most advanced users•Openness–Built-in spreadsheet data interface supports Access, Excel, etc.–Leverage enterprise data and create custom interfaces with VBA, Microsoft Support •Complete Simulation Project Support–Input Data Analysis, Process Documentation, Animation, Run Time, Output Analysis, Optimizer•The Academic Standard–Taught in most IE schools worldwide–2nd Edition of Simulation With Arena (5.0 Academic Version) FlexSim•3D animation, ultra-realistic–Model in 3D–Imports graphics files from CAD•C++ integration, access, excel•Automated input analysis•Pre-built–Robots–Machines, trucks, fork lifts•U$19,500•((5))DEDS Simulation SoftwareSimul8•Easy to use•Optimized designs–OptQuest•2D and 3D animation•Integration with C++, Access, VB, Excel•U$1295 - U$3995, plus optional modules–Stat::Fit $245–OptQuest $495• Simulation SoftwareAutoMod•3D animation, ultra-realistic•Automated output analysis•Automated input analysis•Proprietary language–Object oriented•Specialized manufacturing modules–Piping, Robots, Conveyors, Cranes, Kinematics, …•U$20,000 – U$40,000•((5))DEDS Simulation Software133传送带传送带仓储系统仓储系统 桥式起重机桥式起重机 搬运车搬运车自动设备自动设备 罐与管道罐与管道 动力与自主动力与自主AutoMod的优势的优势((5))DEDS Simulation SoftwareProModel•General purpose: ProModel•Has specialized versions:–MedModel (VB integration)–ProcessModel (integration with Visio)–ServiceModel (VB integration)•Automated model design•Automated input analysis•U$3,500–Stat::Fit U$245• Simulation SoftwareMicroSaint•2.5D animation•Automated output analysis•U$4,995–Basic modeler (no animation, no OptQuest)•U$8,995–Includes 2.5D animation and OptQuest• Simulation SoftwareWitness•3D animation–Realistic VR processing•Optimized designs•Integration with Visio•Report writer• Witness 是英国是英国LannerLanner公司推出的强大的仿真软件系统;目前公司推出的强大的仿真软件系统;目前已被成功应用于已被成功应用于30003000多家知名企业的解决方案中;在多家知名企业的解决方案中;在2525个国家个国家和地区设立代理。
和地区设立代理5))DEDS Simulation Software•Many new features to help with:–Modeling: language, Visio, animation–Analysis: automated input and output–Communications: 3D animation and virtual reality–Experimentation: optimizers•Simulation models are becoming more powerful, easier to build, and capable of representing much more complex systems•Open source simulation software is improving: http://www.topology.org/soft/sim.html((5))DEDS Simulation Software138(6) DEDS仿真软件服务仿真软件服务的行业的行业§仓储配送仓储配送§物流物流§汽车汽车§钢铁钢铁§食品食品/ /饮料饮料§消费品消费品§航空港口运行航空港口运行§工程服务工程服务§大型制造大型制造§航空航空§制药制药§政府政府§运输运输§半导体半导体GPSSGPSS语言也许是离散事件系统仿真语言中推出最早语言也许是离散事件系统仿真语言中推出最早, 1961, 1961年年IBMIBM公司发表第一个公司发表第一个GPSSGPSS文本,使用得最为广泛的一种。
它文本,使用得最为广泛的一种它是采用是采用进程交互法进程交互法建模的仿真语言建模的仿真语言7)GPSSGPSSGPSS版本版本 程序块数目程序块数目GPSS V 48GPSS V 48GPSS/X 56GPSS/X 56GPSS/66GPSS/665353GPSS/1100 51GPSS/1100 51GPSS/PCGPSS/PC3838GPSS/world 53GPSS/world 53GPSS World student Version 5.2.1GPSS World student Version 5.2.1GPSS World CommercialGPSS World Commercial Version 5.0.4 Version 5.0.4 GPSS World Personal Version 5.0.4 GPSS World Personal Version 5.0.4 GPSS Student Version 4.3.4 GPSS Student Version 4.3.4 5.35.3离散事件系统仿真语言离散事件系统仿真语言Geoffrey Gordon Geoffrey Gordon 5.35.3离散事件系统仿真语言离散事件系统仿真语言1 1))GPSSGPSS语言的基本格式语言的基本格式(每个语句表示一个过程)(每个语句表示一个过程)地址地址语句号,最多语句号,最多由由5 5个字母和数个字母和数字组成,必须字组成,必须字母打头,从字母打头,从第第1 1列开始列开始操作码操作码模块或语句名模块或语句名称(关键字),称(关键字),可用前可用前4 4个字母个字母简写简写数据场数据场由多个数据组由多个数据组成,每个数据成,每个数据用逗号隔开用逗号隔开注释注释语句注释,语句注释,可有可无可有可无5.35.3离散事件系统仿真语言离散事件系统仿真语言SIMULATE EQU 1 GENERATE 5,1.667 ;Create next customer. QUEUE Barber ;Begin queue time. SEIZE Barber ;Own or wait for barber. DEPART Barber ;End queue time. TRANSFER 80,Altdest ;20% leave without haircut. ADVANCE 10,3.334 ;Haircut takes a few minutes.Altdest RELEASE Barber ;Haircut done. Give up the barber. TERMINATE 1 ;Customer leaves. START 200 CLOSE开始控开始控制语句制语句仿真模块仿真模块结束控结束控制语句制语句定义语句定义语句2 2))GPSSGPSS程序的基本组成程序的基本组成5.35.3离散事件系统仿真语言离散事件系统仿真语言TERMINATETERMINATEGENERATEGENERATEGATEGATEENTERENTERLEAVELEAVEASSIGNASSIGNSAVEVALUESAVEVALUETESTTESTQUEUEQUEUETABULATETABULATELOGICLOGICADVANCEADVANCESEIZESEIZEDEPARTDEPARTRELEASERELEASE3 3))GPSSGPSS程序框图程序框图5.35.3离散事件系统仿真语言离散事件系统仿真语言4 4))GPSSGPSS语言的基本模块语言的基本模块•与活动(流动)实体有关的模块与活动(流动)实体有关的模块•与设施有关的模块与设施有关的模块•与队列有关的模块与队列有关的模块•与存储器有关的模块与存储器有关的模块•与逻辑开关有关的模块与逻辑开关有关的模块•与统计实体相关的模块与统计实体相关的模块实体实体流动实体(临时)流动实体(临时)固定实体(永久)固定实体(永久)资源实体资源实体统计实体统计实体设施设施(facility)(facility)队列队列(queue(queue))存储器存储器(storage)(storage)逻辑开关(逻辑开关(logic)logic)5.35.3离散事件系统仿真语言离散事件系统仿真语言分类原因分类原因相关模块及功能相关模块及功能与活动实体与活动实体相关的模块相关的模块GENERATE GENERATE 产生活动实体产生活动实体ADVANCE ADVANCE 延时模块延时模块TRANSFER TRANSFER 活动实体转向模块活动实体转向模块ASSIGN ASSIGN 参数赋值模块参数赋值模块TERMINATE TERMINATE 活动实体离开系统活动实体离开系统与设施相关的模块与设施相关的模块SEIZE SEIZE 活动实体占用设施活动实体占用设施RELEASE RELEASE 活动实体释放设施活动实体释放设施与队列相关的模块与队列相关的模块QUEUE QUEUE 活动实体排队活动实体排队DEPART DEPART 活动实体离开队列活动实体离开队列与存储器相关的模块与存储器相关的模块ENTER ENTER 活动实体进入存储器活动实体进入存储器LEAVE LEAVE 活动实体离开存储器活动实体离开存储器5.35.3离散事件系统仿真语言离散事件系统仿真语言Page 146GENERATE A,B,C,D,E,F,GGENERATE A,B,C,D,E,F,G 产生活动实体产生活动实体 •A: A: 活动实体产生(或到达)的间隔时间均值活动实体产生(或到达)的间隔时间均值•B: B: 活动实体产生(或到达)的间隔时间方差活动实体产生(或到达)的间隔时间方差•C: C: 第一活动实体产生的时间第一活动实体产生的时间•D D:应产生活动实体的总数:应产生活动实体的总数•E E:被产生活动实体的优先级::被产生活动实体的优先级:1 1--127127•F: F: 活动实体携带参数的个数,默认为活动实体携带参数的个数,默认为1212•G: G: 参数类型,默认为半个字节参数参数类型,默认为半个字节参数ADVANCE A,BADVANCE A,B 延时模块延时模块•A:A:延迟时间的均值延迟时间的均值•B:B:延迟时间的方差延迟时间的方差活动实体在系统中运动、停留、接受服务等过程都需要延时活动实体在系统中运动、停留、接受服务等过程都需要延时5.35.3离散事件系统仿真语言离散事件系统仿真语言TRANSFER A,B,CTRANSFER A,B,C 活动实体转向模块(转向语句)活动实体转向模块(转向语句) A:A:转向方式转向方式((1 1),为无条件转向),为无条件转向B B地址地址((2 2))BOTH,BOTH,先进入先进入B B地址,若不行,则进入地址,若不行,则进入C C地址地址((3 3)小数,表示去)小数,表示去C C的百分比,的百分比,1 1--A A去去B B的百分比的百分比ASSIGN A,B ASSIGN A,B 参数赋值模块参数赋值模块A:A:需要赋值或改变参数的参数号,需要赋值或改变参数的参数号,A A值后可加写值后可加写+,-+,-号,表示从原来参数号,表示从原来参数中加上或减去中加上或减去B BB:B:需要赋给参数需要赋给参数A A或从参数或从参数A A中中+,-+,-的数值的数值TERMINATE ATERMINATE A 活动实体离开系统活动实体离开系统A A:表示某个活动实体经过:表示某个活动实体经过TERMINATETERMINATE模块时,以某个实体数目为仿真终模块时,以某个实体数目为仿真终止计数的总数中应减去的实体个数。
止计数的总数中应减去的实体个数5.35.3离散事件系统仿真语言离散事件系统仿真语言SEIZE ASEIZE A 活动实体占用设施活动实体占用设施A:A:活动实体所要控制的设施号或设施名称活动实体所要控制的设施号或设施名称RELEASE ARELEASE A 活动实体释放设施活动实体释放设施A:A:被释放或离开设施的设施号或名称被释放或离开设施的设施号或名称 QUEUE A,BQUEUE A,B 活动实体排队活动实体排队A:A:活动实体所要排队列的队号或队列名称活动实体所要排队列的队号或队列名称B B:活动实体排队后,队长所增加的量:活动实体排队后,队长所增加的量DEPART A,BDEPART A,B 活动实体离开队列活动实体离开队列A:A:活动实体离开队列的队号或队列名称活动实体离开队列的队号或队列名称B B:活动实体离开队后,队长所减少的:活动实体离开队后,队长所减少的量量5.35.3离散事件系统仿真语言离散事件系统仿真语言Page 149ENTER A,BENTER A,B 活动实体进入存储器活动实体进入存储器A:A:所进入存储器的号或名称所进入存储器的号或名称B B:进入:进入A A存储器后,存储器当前存储量增加的值存储器后,存储器当前存储量增加的值LEAVE A,B LEAVE A,B 活动实体离开存储器活动实体离开存储器A:A:活动实体要离开存储器的号或名称活动实体要离开存储器的号或名称B B:活动实体离开:活动实体离开A A存储器后,存储器当前存储量减少的值存储器后,存储器当前存储量减少的值5.35.3离散事件系统仿真语言离散事件系统仿真语言5 5))GPSSGPSS的控制语句的控制语句SIMULATE: SIMULATE: 执行仿真语句执行仿真语句START: START: 控制仿真过程的终止或部分输出内容的控制语句控制仿真过程的终止或部分输出内容的控制语句START:A,B,C,DSTART:A,B,C,DA:A:与模块与模块TERMINATE ATERMINATE A域相配合的仿真过程的终止计数值域相配合的仿真过程的终止计数值B:B:所有所有GPSSGPSS程序都会自动产生某种输出,如果程序都会自动产生某种输出,如果B B域为域为NPNP,则表,则表 示所有的输出将被消除示所有的输出将被消除C:C:生成输出报告的计数间隔生成输出报告的计数间隔D:D:输出活动实体的链状态,记录某个活动实体在整个仿真过程输出活动实体的链状态,记录某个活动实体在整个仿真过程 中的移动轨迹中的移动轨迹END:(END:(终止仿真)终止仿真)RESET:(RESET:(消除积累统计)消除积累统计)5.35.3离散事件系统仿真语言离散事件系统仿真语言6 6))GPSSGPSS语言的标准输出语言的标准输出•扩充程序表扩充程序表•仿真钟时间统计仿真钟时间统计•模块状态及计数表模块状态及计数表•各类统计表(设施统计、队列统计、存储器统计、逻辑开关各类统计表(设施统计、队列统计、存储器统计、逻辑开关状态统计、内存变量表、模块链统计)状态统计、内存变量表、模块链统计)5.35.3离散事件系统仿真语言离散事件系统仿真语言•将被仿真的系统抽象成为类似于流程图的模型描述将被仿真的系统抽象成为类似于流程图的模型描述•用用GPSSGPSS程序块实现流程图中的功能模块程序块实现流程图中的功能模块•用用GPSSGPSS程序块对应的语句编写出仿真程序,形成一个可执行程序块对应的语句编写出仿真程序,形成一个可执行的代码的代码7 7)用)用GPSSGPSS步骤步骤5.35.3离散事件系统仿真语言离散事件系统仿真语言•仿真模型采用一组标准的程序块(仿真模型采用一组标准的程序块(blockblock))来表示其逻辑来表示其逻辑结构,系统的临时实体按程序块图中规定的方向由某一块结构,系统的临时实体按程序块图中规定的方向由某一块流向另一块。
流向另一块•一个程序块对应一条一个程序块对应一条GPSSGPSS语句,语句,它相当于一个子程序,因它相当于一个子程序,因而具有较强的功能,使得而具有较强的功能,使得GPSSGPSS具有较强的建模能力具有较强的建模能力•当用户用图形描述出一个系统的仿真模型后,根据其流程当用户用图形描述出一个系统的仿真模型后,根据其流程用用GPSSGPSS语句写出其相应的语句写出其相应的GPSSGPSS源程序就可以了源程序就可以了8 8))GPSSGPSS特点特点5.35.3离散事件系统仿真语言离散事件系统仿真语言•单台排队系统,顾客到达事件间隔为均匀分布的随单台排队系统,顾客到达事件间隔为均匀分布的随机变量,其均值为机变量,其均值为2020分钟,偏差为分钟,偏差为 6 6分钟;分钟;•为每个顾客服务的时间也是均匀分布的随机变量,为每个顾客服务的时间也是均匀分布的随机变量,其均值为其均值为1515分钟,偏差为分钟,偏差为 3 3分钟;分钟;•服务规则为先来先服务(服务规则为先来先服务(FIFOFIFO)9 9)如何)如何用用GPSSGPSS对离散事件系统进行仿真对离散事件系统进行仿真5.35.3离散事件系统仿真语言离散事件系统仿真语言顾客到达顾客到达顾客排队顾客排队离开队列离开队列得到服务得到服务服务过程服务过程服务完成服务完成顾客离开系统顾客离开系统GENERATE 20,6GENERATE 20,6DEPARTDEPARTTERMINATE 1TERMINATE 1QUEUEQUEUE WAIT WAIT WAIT WAITSEIZESEIZE SERV SERVADVANCE 15,3ADVANCE 15,3RELEASERELEASE SERV SERV到达一个顾客到达一个顾客排进队列排进队列WAITWAIT中中占用服务台占用服务台离开队列离开队列服务服务服务完成服务完成1 1个顾客离开系统个顾客离开系统图13.7(a) 单排排队系系统流程流程图图13.7(b) 单排排队系系统GPSS模型模型图5.35.3离散事件系统仿真语言离散事件系统仿真语言该系统的该系统的GPSSGPSS程序如下程序如下: :*The Model of Single-Sever Queue System*The Model of Single-Sever Queue System Simulate Simulate*Block Definition Cards*Block Definition Cards Generate 20,6 Generate 20,6 Queue WAIT Queue WAIT Seize SERV Seize SERV Depart WAIT Depart WAIT Advance 15,3 Advance 15,3 Release SERV Release SERV Terminate 1 Terminate 1*Control Cards*Control Cards Start 100 Start 100 End End “*”“*”的为注释语句,以的为注释语句,以SimulateSimulate语句开始表示语句开始表示仿真执行开始。
仿真执行开始程序分为两部分,程序分为两部分,第一部分为模型定义,第一部分为模型定义,第二部分为实验控制第二部分为实验控制以以Start 100Start 100语句实现控制的,它表示仿真运行语句实现控制的,它表示仿真运行服务服务100100个顾客结束,与个顾客结束,与Terminate 1Terminate 1语句相配语句相配合,每执行一次合,每执行一次Terminate 1Terminate 1,则计数器从,则计数器从100100开始逐次减开始逐次减1 1,直到,直到0 0为止则结束仿真其它几为止则结束仿真其它几乎可以不加说明就可以基本理解乎可以不加说明就可以基本理解5.35.3离散事件系统仿真语言离散事件系统仿真语言注意:注意:•GPSSGPSS的仿真钟只能取整数值,的仿真钟只能取整数值,因此必须根据仿真精度的要求选择因此必须根据仿真精度的要求选择仿真钟的基本时间单位仿真钟的基本时间单位•只能在基本时间单位整数倍的时间点上发生系统状态的变化只能在基本时间单位整数倍的时间点上发生系统状态的变化例如一个如一个M/M/1M/M/1系统,若选时间单位为分钟,那么顾客的到达时间系统,若选时间单位为分钟,那么顾客的到达时间间隔或服务时间长度必须是分钟的整数倍。
这样导致了在系统中间隔或服务时间长度必须是分钟的整数倍这样导致了在系统中状态变化同时发生的概率增加,排序处理就十分重要状态变化同时发生的概率增加,排序处理就十分重要•GPSSGPSS对每一类实体都专设一个属性对每一类实体都专设一个属性————优先级优先级( (范围为范围为0 0--127), 127), 值越大,则优先级别越高这对于那些难以确定优先级的系统来值越大,则优先级别越高这对于那些难以确定优先级的系统来说,无疑会增加建模的难度说,无疑会增加建模的难度5.35.3离散事件系统仿真语言离散事件系统仿真语言FACILITY ENTRIES UTIL. AVE. TIME AVAIL. DELAYFACILITY ENTRIES UTIL. AVE. TIME AVAIL. DELAY 实体数实体数 效率效率 平均服务时间平均服务时间 SERV 100 0.734 14.991 1 0SERV 100 0.734 14.991 1 0QUEUE MAX CONT. ENTRY ENTRY(0) QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.CONT. AVE.TIME AVE.(-0) AVE.(-0) 最大最大 总排队总排队 零排队零排队 平均平均 平均平均 非零非零 队长队长 实体实体 实体数实体数 队长队长 排队时间排队时间 等待排队时间等待排队时间WAIT 1 100 85 WAIT 1 100 85 0.0100.010 0.1960.196 1.3041.3045.35.3离散事件系统仿真语言离散事件系统仿真语言设顾客的平均到达时间间隔为设顾客的平均到达时间间隔为5 5分钟,服从指数分布,为每个分钟,服从指数分布,为每个顾客服务的时间也服从指数分布,均值为顾客服务的时间也服从指数分布,均值为4 4分钟分钟,仿真分析该系统。
仿真分析该系统The Model of Single-Sever expon Queue System *The Model of Single-Sever expon Queue System SimulateSimulateEXPON FUNCTION RN1,C24EXPON FUNCTION RN1,C24 0,0/0.1,0.104/0.2,0.222/0.3,0.355/0.4,0.509/0.5,0.690/0.6,0.910,0/0.1,0.104/0.2,0.222/0.3,0.355/0.4,0.509/0.5,0.690/0.6,0.915/0.7,1.2/0.75,1.38/0.8,1.6/0.84,1.83/0.88,2.12/0.9,2.3/0.92,25/0.7,1.2/0.75,1.38/0.8,1.6/0.84,1.83/0.88,2.12/0.9,2.3/0.92,2.52/0.94,2.81/0.95,2.99/0.96,3.2/0.97,3.5/0.98,3.9/0.99,4.6/0..52/0.94,2.81/0.95,2.99/0.96,3.2/0.97,3.5/0.98,3.9/0.99,4.6/0.995,5.3/0.998,6.2/0.999,7/0.9998,8/995,5.3/0.998,6.2/0.999,7/0.9998,8/ Generate 5,FN$EXPON Generate 5,FN$EXPON Queue WAIT Queue WAIT Seize SERV Seize SERV Depart WAIT Depart WAIT Advance 4,FN$EXPON Advance 4,FN$EXPON Release SERV Release SERV Terminate 1 Terminate 15.35.3离散事件系统仿真语言离散事件系统仿真语言Page 16010001000200020003000300050005000100001000010))inventory system Problem An inventory system is controlled by an An inventory system is controlled by an order order pointpoint, set at , set at 600 units600 units, and an , and an economic order economic order quantity of quantity of 500 units500 units. . The The initial stock quantity initial stock quantity is is 700700. Daily . Daily demanddemand is in the range is in the range 40 to 63 40 to 63 units, evenly units, evenly distributed. distributed. The lead-time from ordering to delivery of The lead-time from ordering to delivery of goods is one week (goods is one week (5 days5 days).). Simulate the inventory system for a period of Simulate the inventory system for a period of 100 days100 days. . Determine the distribution of inventory and Determine the distribution of inventory and the actual daily sales.the actual daily sales.5.35.3离散事件系统仿真语言离散事件系统仿真语言; GPSS World Sample File - ORDERPNT.GPS, by Gerard F. Cummings; GPSS World Sample File - ORDERPNT.GPS, by Gerard F. Cummings********************************************************************* ********************************************************************* * * * * * Order Point Inventory System ** Order Point Inventory System ** ** ******************************************************************************************************************************************** Initialize and define* Initialize and define INITIAL X$EOQ,500 ; INITIAL X$EOQ,500 ;Economic order qty.Economic order qty. INITIAL X$Point,600 ; INITIAL X$Point,600 ;Order pointOrder point INITIAL X$Stock,700 ; INITIAL X$Stock,700 ;Set initial stock=700Set initial stock=700Inventory TABLE X$Stock,0,50,20 ;Inventory TABLE X$Stock,0,50,20 ;TableTable of stock leveof stock levelslsSales TABLE P$Demand,38,2,20 ;Sales TABLE P$Demand,38,2,20 ;Table of sales levelsTable of sales levelsVar2 VARIABLE RN1@24+40Var2 VARIABLE RN1@24+405.35.3离散事件系统仿真语言离散事件系统仿真语言****************************************************************************************************************************************** GENERATE ,,,1; GENERATE ,,,1;creates a single transaction which does reordering. creates a single transaction which does reordering. Again TEST L X$Stock,X$Point ;Again TEST L X$Stock,X$Point ;Order placed on successfulOrder placed on successful testtest ADVANCE 5 ; ADVANCE 5 ;Lead time = 1 weekLead time = 1 week SAVEVALUE Stock+,X$EOQ ; SAVEVALUE Stock+,X$EOQ ;Economic orderEconomic order TRANSFER ,Again ; TRANSFER ,Again ;CycleCycle transactiontransaction againagain****************************************************************************************************************************************** GENERATE 1 ; GENERATE 1 ;DailyDaily demand exactdemand exact ASSIGN Demand,V$Var2 ; ASSIGN Demand,V$Var2 ;AssignAssign daily demanddaily demand TABULATE Inventory ; TABULATE Inventory ;RecordRecord inventoryinventory TEST GE X$Stock,P$Demand ; TEST GE X$Stock,P$Demand ;MakeMake suresure orderorder cancan bebe filledfilled SAVEVALUE Stock-,P$Demand ; SAVEVALUE Stock-,P$Demand ;RemoveRemove demanddemand fromfrom stockstock SAVEVALUE Sold,P$Demand ; SAVEVALUE Sold,P$Demand ;X$Sold=DailyX$Sold=Daily demanddemand TABULATE Sales ; TABULATE Sales ;RecordRecord dailydaily salessales TERMINATE 1 ; TERMINATE 1 ;DailyDaily timertimer******************************************************************************************************************************************5.35.3离散事件系统仿真语言离散事件系统仿真语言Page 1645.35.3离散事件系统仿真语言离散事件系统仿真语言The Edit Plot WindowThe Edit Plot Window5.35.3离散事件系统仿真语言离散事件系统仿真语言))5.35.3离散事件系统仿真语言离散事件系统仿真语言the behavior of the inventory system is fairly clear.the behavior of the inventory system is fairly clear.We can see the stock level vary. We can see the stock level vary. the stock level never went below 300the stock level never went below 300the stock level never went below 300the stock level never went below 300. .It is a measure of how much money is tied up in inventory. It is a measure of how much money is tied up in inventory. At 612 it is relatively highAt 612 it is relatively high. . Perhaps we could save some money by fine tuning the Perhaps we could save some money by fine tuning the inventory control system.inventory control system.5.35.3离散事件系统仿真语言离散事件系统仿真语言Let’s try an adjustment to the system. Let’s use an order Let’s try an adjustment to the system. Let’s use an order point or point or 300 instead of 600300 instead of 600, and an initial stock of , and an initial stock of 400 400 instead of 700instead of 700. .Notice that the inventory never suffered an outage. Notice that the inventory never suffered an outage. we see that the we see that the average stock level is only 329.1average stock level is only 329.1. . This is quite an improvement over our first This is quite an improvement over our first simulation.simulation.5.35.3离散事件系统仿真语言离散事件系统仿真语言小结小结5.1 5.1 离散事件系统仿真实例离散事件系统仿真实例5.2 5.2 库存系统建模与仿真库存系统建模与仿真5.3 5.3 离散事件系统仿真语言离散事件系统仿真语言1.1.报纸经销商问题报纸经销商问题2.2.上限订货库存系统的仿真上限订货库存系统的仿真3.3.提前期需求库存系统仿真提前期需求库存系统仿真4.4.可靠性问题可靠性问题5.5.项目管理仿真项目管理仿真6.6.轰炸机摧毁一座弹药库轰炸机摧毁一座弹药库1.1.确定性库存系统确定性库存系统2.2.随机库存系统随机库存系统3.3.随机库存系统仿真随机库存系统仿真Page 170Knowing Knowing is not is not enough ; we enough ; we must applymust apply..Willing Willing is not is not enough ; we enough ; we must must do.do. ——Johann ——Johann von Goethevon GoetheI am not discouraged I am not discouraged , because , because every every wrong attempt wrong attempt discarded is discarded is another step forwardanother step forward ——Thomas Edison ——Thomas Edison。