1、模拟,也称仿真计算机模拟:利用计算机,主要是利用计算机生成随机数对管理问题、系统进行仿真,模拟出若对管理系统进行不同的设计(如不同数量的收银通道)、若对库存系统制订不同的策略(如不同的库存量、订货量),其可能之经济后果,从而帮助在各种不同系统中或不同策略中筛选出较优的管理方案来重点:掌握模拟技术的想法。,第十一章 计算机模拟,凌晨:,凌晨:,一、数学模型及其局限大多数的运筹学技术之套路是: 抽象、简化 解析方法 系统 模型 最优解模型的作用显而易见:表达/代表/抽象出现实系统模型的局限也显而易见:1) 系统若太复杂,就难以建立模型,如:天气的变化、汽车的突然故障等等2) 许多模型即使建立起来,
2、也无法求解,如:非线性方程、PDE 等等3) 即使有了模型又有了所谓最优解,也只能说对现实系统有近似的了解,有参考。,计算机模拟的概念,凌晨:,凌晨:,二、模拟技术的想法1) 不直接求最优解或最佳决策,侧重于仿真:如何描述真实系统,故也是一种模型2) 是对现实管理系统,特别是复杂系统的一种补充的表达方式,在计算机快速运算能力的帮助下,已成为一种流行:建筑群内风的流向、流沙的沉积、汽车的碰撞和传感器、模拟飞机驾驶、机械设计中运动的干涉之模拟、天气、核聚变模拟3) 通过计算机仿真,可以得到现实系统某些特性、特征数值的参考量,这将有利于作出正确决策。,计算机模拟的概念,凌晨:,凌晨:,三、应用最普及
3、最经常的管理工具之一,原因有四:1) 计算机模拟常被用于很复杂的问题且能得出不错的解;2) 模拟方法易于解释和理解,结果是:管理信心增强,技术易被接受;3) 已经开发出不少的软件包,也有许多的专供模拟所使用的程序语言;4) 模拟技术往往很灵活,应用范围极广,如:可用来描述生产系统、金融系统、物流系统、排队系统等等本章通过二个例子(排队系统、库存系统)来介绍模拟技术的大概、模拟技术的想法。,计算机模拟的概念,凌晨:,凌晨:,一、问题及有关数据1、现实系统CB 公司已在不少地方建造并开张了如下类型的连锁店,其平面构造(仅列出一种)是系统说明:1)顾客不离开汽车,在服务弄内即可得到服务(如购饮料、快
4、餐等)2)服务弄内同时只能为一辆车服务,进不去的车就在外排队3)服务:记录采购单、按单发货、收钱。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,一、问题及有关数据2、排队论看以上系统1) 此乃单通道排队系统;2) 可假设:到达之汽车数Poisson 分布; 每一顾客得到的服务时间长度指数分布,如:E(1/3) (这些都可以通过观察数据、假定检验法验证) 则:排队论之有关数学模型可用来描述此系统但,我们不准备借助此工具,而是以模拟技术来研究此系统的运作。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,一、问题及有关数据3、要解决的问题可行性研究虽然有其它已开张的店的经验,但对一家拟开张的新
5、店的运行应有一个预前设计,毕竟,地点不一样了,客流不一样,以便在开张之前就合理化服务系统,就希望了解:1) 希望得到服务的顾客之估计数;2) 商店的估计利润;3) 由于长时间排队而损失的估计的销售数。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,一、问题及有关数据4、假定与数据1)(讨论)周期之假定以 3 分钟为一个周期(此乃现实所决定,可参考数据二 ),即:将以 3 分钟为固定时间区间进行讨论:到达顾客数、丢失顾客数等问题2)数据一根据对新店附近交通流的观察,公司估计出到达顾客之概率分布如下: ( 随机一个周期内 ) 到达顾客数 概率 0 0.19 10.39 2 0.193 0.154
6、 0.08 1.00 。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,一、问题及有关数据4、假定与数据3)数据二(根据公司其它连锁店的经验)(1) 按采购量大小可将大致地顾客分为三类:小、中、大(2) 有关数据: 采购量概率 平均完成交易时间 平均利润小0.3930.75中0.5061.50大0.1193.00 4) 数据三公司其它店的经验还表明:大多数顾客在看到排队的车辆少于 4 辆时才会加入排队,若已有 4 辆或以上车辆在等待时就会离去。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,二、顾客到达之模拟1、关于随机数 ( random digits )模拟之基础建立在对随机数的使用上
7、随机,0, 1, . 9 每个数会等可能出现除了可以利用随机数表获取随机数外,还可以利用 Excel 中的相应功能(如按钮 fx ,函数 rand()返回 0 到 1 的随机数,函数 randbetween(a,b) 返回指定数值 a,b 之间的随机数 ) 获取随机数不失讨论的一般性,假定已经随机地获取了下列的随机数组 63271 59986 71744 51102 . 。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,二、顾客到达之模拟2、关于二位随机数为什么需要二位?若概率值小数点后保留三位,就应该讨论三位随机数若在随机数表中任意选出 200 个随机数,就会有 100 个范围在 00 9
8、9 的随机数,且每个二位随机数 ( 100 种 ) 都有 1/1000.1 出现的可能如: 63 27 15 99 86 71 74 45 11 02 。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,二、顾客到达之模拟3、P(任意周期内到达人数0)0.19 之模拟1) 数据一表明: P ( 任意周期内到达人数0 ) 0.192) 因为任意一个二位随机数都有 0.01 的发生概率3) 不失一般性,不妨就取 00, 01, ., 18 这 19 个二位数与上述事件:(任意周期内到达人数0)相对应则:任取一个二位数,若是 00, 01, . , 18 中的一个,就下结论 “任意给的一个 3 分钟
9、周期内没有顾客到达” 。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,二、顾客到达之模拟4、一般结果顾客数相关的二位随机数区间描述概率0 00, 01. 18 00, 18 0.191 19, 20. 57 19, 57 0.392 58, 59. . 76 58, 76 0.193 77, 78. 91 77, 91 0.154 92, 93. 99 92, 99 0.08,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,二、顾客到达之模拟5、顾客到达之模拟10 个 3 分钟周期之模拟 周期随机数 到达顾客数之模拟结果16322271315049945863671277428451911
10、010020 共 15 人说明:以上模拟之概率分布与数据一之概率分布完全一致,这种利用随机数生成概率的方法称为 Monte Carlo 模拟。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,三、顾客采购量等级之模拟完全同样的方法,由数据二可得下表:采购量等级相关的二位随机数区间表达概率 大00, 01.38 00, 38 0.39 中 39, 40.88 39, 88 0.50小 89, 90.99 89, 99 0.11既然已经完成顾客到达数、采购量等级之模拟,即可着手进行系统的模拟。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,四、CB 系统的一个模拟1、随机数的约定设取得的随机数约
11、定是:81, 62, 83, 61, 00, 39, 25, 45, 68, 35, 37, 63, 60, 24, 21, 98, 06 .2、设第一个模拟周期开始之际,商店是空的,将进行随后十个周期的模拟。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,四、CB 系统的一个模拟3、周期一的模拟 随机数 所发生事件之模拟 81 三辆车到达,1 号车立得服务 62 1 号车提出中等采购量,需6分钟,2/3 号等待,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,四、CB 系统的一个模拟4、周期二的模拟 随机数 所发生事件之模拟 83 4/5/6 号车到达,但 4/5 号会排队,6号会离开,周
12、 期结束之际,得利润: 1.5只当有新服务对象时,才要求模拟其采购量。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,四、CB 系统的一个模拟5、周期三的模拟随机数 所发生事件之模拟 61 7/8 号车到,2号车得到服务,8号车离开 00 2号车提出小采购量,需3 分钟,周期结束时 周期结束之际,可得总利润: 1.5 + 0.75 = 2.25,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,四、CB 系统的一个模拟 6、前十个周期运作之模拟结果(在约定的随机数下)周期 随机数 新到达 随机数 采购量 服务周期 丢失顾客 等待顾客 利润 1 81 3 62 中 2 0 2 2 83 3 1
13、41.50 3 61 2 00 小 1 1 4 0.75 4 39 1 25 小 1 0 4 0.75 5 45 1 68 中 2 0 4 -6 35 1 1 4 1.507 37 1 63 中 2 0 4 -8 60 2 2 4 1.509 24 1 21 小 1 0 4 0.7510 98 4 06 小 1 3 4 0.75前十个周期之模拟结果:得到服务人数7,总利润7.50,丢失顾客数8,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,四、CB 系统的一个模拟 7、模拟之评价1)对模拟结果的理解:因为不同的随机数会得出不同的模拟结果,故不能将上述结果当“真”,这只是一种概率结果而已,需要
14、增加周期数,持续模拟较长时期方可得到较为可信之结果消除偶然性,让必然性凸现出来2) 手工方法的弊端:为了持续、多周期,手工方法根本不现实,只能依靠计算机的帮助。例如:ARENA,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,五、计算机模拟1、伪随机数概念随机数是模拟的基础,计算机模拟时取得随机数的方式不同于手工方式:1) 手工方式中所取得的随机数组需要预先存储起来,用时取用浪费存储空间2) 计算机模拟方式中则是:只要需要,立即按数学公式生成伪随机数: x 0, 1) 不含 1。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,五、计算机模拟2、对顾客到达数之模拟所需之伪随机数区间 伪随机数区
15、间 顾客到达数之模拟 概率 0.00 0.19 )0 0.19 0.19 0.58 ) 1 0.39 0.58 0.77 )2 0.19 0.77 0.92 ) 3 0.15 0.92 1.00 ) 4 0.08,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,五、计算机模拟3、对采购量等级的模拟所需之伪随机数区间 伪随机数区间 模拟的采购等级 概率 0.00 0.39 ) 小 0.39 0.39 0.89 ) 中 0.50 0.89 1.00 ) 大 0.11,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,4、计算机模拟程序流程图,凌晨:,凌晨:,五、计算机模拟5、BASIC语言程序对 3
16、0 小时(600个周期)运行之模拟结果(注意:每次的结果当然不一样) 项目 总数百分比每小时平均得到服务的数目 36538.812.17失去服务的数目 57561.219.17利润 488.2516.28分析见后。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,五、计算机模拟6、 模拟结果之分析 ( 30 小时600 个周期 )1) 因为怕排长队,有 61.2% 顾客丢失;2) 每小时平均利润 16.28,得到服务的顾客人均利润488.25/365=1.343) 平均每小时丢失 19.17 位顾客,平均每小时丢失利润1.34*19.17=25.69故,看来丢失问题严重模拟的初始目的是:不是为
17、 BC 公司确定一个最优解或最佳决策,仅仅是对真实系统的运行提供了一个 30 小时的模拟如果上述模拟与实际吻合不错的话,排长队及可观的利润损失须引起重视。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,六、其它服务方案的模拟由于上述模拟结果,可以认为原先设计的服务系统处理不了可能的生意,可能的改进:1) 增加一位职员,使服务时间/单车下降;2) 因为尚未建设,所以可以考虑设计其它系统,如以下的:1、二种新服务系统A 系统系统问题:若汽车1不开出去,则汽车2无法开出去,后面车就只能排队,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,六、其它服务方案的模拟1、二种新服务系统B 系统问题:服务通
18、道拓宽建设,会使固定成本增加。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,六、其它服务方案的模拟2、对两种新系统 30 小时的模拟结果1) 系统 A 之结果 有关项目总数百分比 每小时平均得到服务人数61867.2 20.60失去服务人数30232.8 10.07利润836.25 27.88 2) 系统 B 之结果 有关项目总数百分比 每小时平均得到服务人数78584.1 26.17失去服务人数14815.9 4.93利润1034.25 34.48。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,六、其它服务方案的模拟3、决策1) 从系统本身看: B 优于 A 2) 从系统建设成本看:
19、A 便宜问题:是否可以有 B 系统之利,又便宜?,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,七、需要说明的问题1、选择合适的计算机程序语言通用语言 BASIC/FORTRAN/PASCAL 等用于模拟目的并不方便,可以考虑使用专用语言:GASS / SIMSCRIPT / DYNAMO / GASP / SLAM 等合适2、模拟的有效性问题1) 什么是有效性?因为模拟是仿真,以上的模拟是否达到了此目的?在接受其结果之前,应当先了解其有效性2) 方法一将已运行的、类似的系统之历史数据输入模拟系统,然后将模拟运行结果与实际观察值进行比较。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,七、
20、需要说明的问题2、模拟的有效性问题3) 方法二将对概率的模拟分布与现实世界分布进行比较(假定检验法检验差异显著性),如一个30小时 (600个周期)对顾客到达之模拟是:到达顾客数有这种到达数的模拟周期数 模拟之相关频率实际概率01240.207 0.1912290.382 0.3921040.173 0.193860.143 0.154570.095 0.08 600,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,七、需要说明的问题2、模拟的有效性问题4) 方案三求助于对现实系统运行极熟悉的人之评判,仔细研究程序之正确性即使方法没有问题 3、启动问题一个隐含的模拟假定是:没有汽车在等待也没有
21、汽车在服务区,此乃不稳定状态调整方法:运行足够长时间之模拟,放弃前面所得的结果不用,只采纳后期的、稳定状态下的数据则可信程度可大大提高。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,七、需要说明的问题4、统计的考虑1) 每一次模拟都是在特定的一组随机数生成基础上建立的,按照统计学的看法:每个模拟结果仅是一个样本;2) 不妨多取几个样本,如三个同样都是30 个小时的样本是:模拟一模拟二模拟三 得到服务数365361356 失去服务数575558622 平均每小时利润16.2816.1316.10 3) 统计学中的卡方检验可以帮助说明上述结果:是否有显著性差异。若没有显著性差异,则模拟结果是可
22、靠的。,第一节 一种排队服务系统的模拟,凌晨:,凌晨:,两个常用的与库存决策有关的概念:recorder point 再订点、警戒点,安排再订货时之库存量(通常由 POS 机自动侦测)lead time 前置时间,安排订货与收到订货之间的等待时间段(是随机变量)一、模拟方法说明1、库存问题概述1) 三个成本:订货成本、仓储成本、缺货成本2) 目标:总成本最小3) 二个决策:何时订求再订点 订多少每次的订货量。,第二节 库存进货系统模拟,凌晨:,凌晨:,2、问题A 汽车零件公司是专业汽车零件商店,库存1000多种零件,虽然已对大部分零件运用了“库存模型”决定了“订多少?”“何时订?”二个问题,但
23、对下述工具箱问题仍感到棘手:1) 需求不确定:有时开门一天、数天无一人来购买,但每月也总有一天会有3或4个客户2) lead time 不确定:过去经验是:15 天之间的任何时间,有时因为迟到出现断货3) 有关数据:(1) 每一笔订货成本:20 元;(2) 仓储成本:0.1/每件/每天 (可从利息、保险、仓储费计算出来)(3) 缺货成本:50/每件 (从信誉角度确立)4) 目标函数 求出批次订货量及再订点之组合使总成本最低。,第二节 库存进货系统模拟,凌晨:,凌晨:,一、模拟方法说明3、方法及步骤说明1) 总的思路说明因为日需求量及前置时间(无法人为确定之数量)不确定,所以先对它们进行模拟,然
24、后采用:对多个不同的订货量及再订点(可人为决定的数量)之组合,模拟出多个可能的库存成本,从中选最小,即可得订货量及再订点之最优组合完成决策2) 步骤 (模拟的流程)(1) 约定:每天以检验订货是否到店并入库作为一天的开始或结束;(2) 约定:若一客户所订购量库存,则将买走全部库存,余缺量作为商店的缺货量,成本为:50 / 每件。,第二节 库存进货系统模拟,凌晨:,凌晨:,(3)程序流程图,凌晨:,凌晨:,二、系统之模拟1、历史数据及整理设对过去 1 年 ( 300 天 ) 里工具箱销售数据整理如下:1) 需求记录需求(单位)频率(天数)相对频率01500.501750.252450.15315
25、0.054150.05。,第二节 库存进货系统模拟,凌晨:,凌晨:,二、系统之模拟1、历史数据及整理设对过去 1 年 ( 300 天 ) 里工具箱销售数据整理如下:2) lead time 记录前置时间(天数)频率(天数)相对频率1600.202300.1031200.404600.205300.10 300 1.00。,第二节 库存进货系统模拟,凌晨:,凌晨:,二、系统之模拟2、建立模拟数区间1) 伪随机数与相关的日需求量日需量相对频率伪随机数区间00.50 0.00 0.50 )10.25 0.50 0.75 )20.15 0.75 0.90 )30.05 0.90 0.95 )40.05
26、 0.95 1.000).,第二节 库存进货系统模拟,凌晨:,凌晨:,二、系统之模拟2、建立模拟数区间2) 伪随机数与相关的前置时间前置时间(天)相对频率伪随机数区间10.20 0.00 0.20 )20.10 0.20 0.30 )30.40 0.30 0.70 )40.20 0.70 0.90 )50.10 0.90 1.00).,第二节 库存进货系统模拟,凌晨:,凌晨:,二、系统之模拟 3、十天之模拟(天数虽少,主要介绍方法) 1) 假设(1) 第一天开始之际库存5(2) 第一天没有到货(因为第一天开始之际是否到货决定了第一天内是否到货,所以要先约定好,否则与 (1) 矛盾)(3) 订货
27、量:5,再订货点:3单位实际上是一种决策方案(实际上即是某一种决策方案)则对“订量5,再订点3”的决策的一个计算机十天模拟结果如下页所示。,第二节 库存进货系统模拟,凌晨:,凌晨:,2)模拟结果日 开始 收到 随机数 需求 结束 随机数 库存 订货 当日 库存 单位 (对日需量 单位 库存 (对前置期 前置 成本 成本 总 进行模拟) 进行模拟)天数 成本1 5 0 0.093 0 5 0.5 0 0.502 5 0 0.681 1 4 0.4 0 0.403 4 0 0.292 0 4 0.4 0 0.404 4 0 0.528 1 3 0.620 30.3 20 20.305 3 0 0.
28、866 2 1 0.1 0 0.106 1 0 0.975 4 0 0 150.007 0 5 0.622 1 4 0.4 0 0.408 4 0 0.819 2 2 0.939 50.2 20 20.209 2 0 0.373 0 2 0.2 0 0.2010 2 0 0.353 0 2 0.2 0 0.20 十天模拟之日平均成本: 19.27注意:因为再订点3,所以当库存3 时才会做其中的第二个模拟。19.27= f (订量5,再订点3)。,凌晨:,凌晨:,二、系统之模拟 4、1000 天之模拟 ( 先粗后细的两个模拟 )1) 取不同的再订点、不同的订货量,且每种订货量间隔 5 个单位,都
29、取1000天之模拟,可得平均日成本表: 订货量 5。 25 30 。 50再订点13.91。 。52.6162.39 2.74 。 3.3472.76。 。102.80说明:表格中的数据表示模拟出的平均日成本。,第二节 库存进货系统模拟,凌晨:,凌晨:,二、系统之模拟 4、1000 天之模拟 ( 先粗后细的两个模拟 )2) 取不同的再订点、不同的订货量,且每种订货量间隔 1 个单位,都取1000天之模拟,可得平均日成本表: 订货量 21222324 。 30再订点。 。 。42.943.025 2.5862.552.332.872.3572.4582.69。 。说明:表格中数据是平均日成本的模
30、拟值。,第二节 库存进货系统模拟,凌晨:,凌晨:,二、系统之模拟 4、1000 天之模拟3)模拟结果说明将批次订货量设定为 22、再订点定为 6,则平均日成本 2.33 将是“最好的”决策5、说明1) 每次模拟,因所取随机数不同,结果就会不同;2) 模拟之结果:不能保证最优,但肯定是明显的低成本;3) 决策:最终决策完全取决于管理人员对“解”的理解。这时因为:客观系统本质上是随机事件,不应该、也不可能指望有确定型的最优解。,第二节 库存进货系统模拟,凌晨:,凌晨:,三、计算机模拟的优点及缺点1、优点1) 提供了一般解析方法依赖模型:要么无法建立模型、要么模型太复杂无法求解的复杂的管理问题之一种研究方法;2) 可以在模拟中方便地调整参数或数据,如:可建议性地确定再订点后重新进行模拟计算2、缺点1) 流程虽然不复杂,但利用通用语言编程并不容易用GPSS 等专用程序语言可改善此点;2) 因为每次模拟运算中所获取的随机数不同,所以方法无法提供“最优解”之保证,只能依靠进行长时间运算加以克服。,第二节 库存进货系统模拟,凌晨:,凌晨:,The End of Chapter 11,