第八章运输系统仿真什么是系统仿真?------概念!为什么要系统仿真?------作用!如何进行系统仿真?------方法!本章问题Contents系统仿真概念系统仿真概述系统仿真应用领域、分类蒙特卡洛模拟MC系统仿真随机数离散事件系统仿真§8-1系统仿真概述1.系统仿真的概念系统仿真(亦称系统模拟,SystemSimulation)是利用模型对实际系统进行试验研究的过程。就是根据系统分析的目的,在分析系统各要素性质及其相互关系的基础上,建立能描述系统结构或行为过程的、且具有一定逻辑关系或数量关系的仿真模型,据此进行试验或定量分析,以获得正确决策所需的各种信息。通过模型对系统时——空变化作动态的描述。这种模型称为模拟模型,它是某一系统的某些重要因素的外貌或形式的抽象,而不是实际存在事物的复制。模拟法涉及大量逻辑的、数字的和薄记的工作,比较复杂的作业非借助电子计算机不可。系统仿真是20世纪40年代末以来伴随着计算机技术的发展而逐步形成的一门新兴学科。仿真(Simulation)就是通过建立实际系统模型并利用所建模型对实际系统进行实验研究的过程。最初,仿真技术主要用于航空、航天、原子反应堆等价格昂贵、周期长、危险性大、实际系统试验难以实现的少数领域,后来逐步发展到电力、石油、化工、冶金、机械等一些主要工业部门,并进一步扩大到社会系统、经济系统、交通运输系统、生态系统等一些非工程系统领域。2.系统仿真应用领域不易控制实验的动态系统模拟模型的最大优点就是它的可实验性,它比实际系统更容易改变条件。凡无法用数学分析方法求解的复杂问题,或不易控制实验的动态系统,其输入大多是不确定的、可能含有许多随机变量和参数,且其转换过程又往往含有许多函数关系,而此种动态函数关系又非数学方程式所能表达者,则只能用模拟法试验求解。现实不允许进行有效试验的系统即使分析人员有信心和能力对一个大系统的行为,从理论上进行推测,也许现实又不允许进行有效的试验,例如,人类决不允许对全球战略性战争的结论进行试验。在这种情况下,唯一的办法是进行某种形式的模拟。系统太复杂有时候由于现象或系统太复杂,不可能用一个简单的数学模型来表达。例如,不可能把大规模的政治、经济或社会活动简化为一个数学方程式。而且,并不是所有的数学方程式都可以用分析方法求解的。2.系统仿真应用领域3.系统仿真的分类实施一项系统仿真的研究工作,包括三个基本要素,即系统对象、系统模型以及计算机。系统仿真一般可以分为连续系统模拟和离散事件系统模拟。连续系统是指系统状态随时间连续变化的系统,系统行为通常是一些连续变化的过程。3.系统仿真的分类离散事件系统模拟指表征系统性能的状态只在随机的时间点上发生跃变,且这种变化是由随机事件驱动的,在两个时间点之间,系统状态不发生任何变化。例如,医院门诊病人数量、路口车辆通过数量、公共汽车上乘车人数的变化。还有一些用于系统(特别是社会经济和管理系统)仿真的特殊而有效的方法,如系统动力学方法、蒙特卡洛法等。系统动力学方法通过建立系统动力学模型(流图等)、利用DYNAMO仿真语言在计算机上实现对真实系统的仿真实验,从而研究系统结构、功能和行为之间的动态关系。4.系统仿真的功能评估系统各部分或子系统彼此之间的影响和对系统整体性能的影响比较各种设计方案,获得最优的设计在系统发生故障后,使之重演,以便研究故障原因进行假设检验培训系统操作人员问题描述与定义建立系统模拟模型数据采集模拟模型的验证对模拟结果的评价5.系统仿真的基本步骤6.MC系统仿真随机数随机数是专门的随机试验的结果。在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。随机数定义:(1).随机数生成器产生(2).计算机程序(如用C语言的函数rand()产生随机数)(3).随机数表产生随机数有多种不同的方法。这些方法被称为随机数发生器。随机数最重要的特性是:它所产生的后面的那个数与前面的那个数毫无关系。真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。计算机或计算器产生的随机数有很长的周期性。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。这样的发生器叫做伪随机数发生器。在真正关键性的应用中,比如在密码学中,人们一般使用真正的随机数。随机数生成随机数表例1:在50名同学(学号20—69)中随机抽出五位同学参加某项活动。用“随机数”模拟抽样的方法在excel中输入=RAND()*49+20例2:设某商店每天到达的顾客数是随机的,一个月的统计结果表明,一天最多有60人,最少有25人。现模拟今后一个星期内平均每天有多少顾客。假定每天到达的顾客多少的机会相同,即不存在月初、月中或月尾及休息天的差别。在excel中输入=RAND()*35+25求出模拟事件出现的概率计算累计频率将累计频率换算为随机概率抽取随机数将随机数作为事件出现的概率进行模拟某汽车修理车间修理每辆汽车所需要的时间进行统计,共统计了100次,各种时间出现的次数如表所示,试对汽车修理车间修理每辆汽车的服务时间进行模拟。例题3服务时间(h)发生次数分布频率累计频率随机数6100.107250.258350.359200.2010100.10服务时间(h)发生次数分布频率累计频率随机数6100.100.100.00-0.097250.250.350.10-0.348350.350.700.35-0.699200.200.900.70-0.8910100.101.000.90-0.99在excel中输入=RAND()*0.99+0.000.010.640.440.530.090.850.550.610.020.750.260.350.350.550.530.490.580.660.556888698869788888888随机数修理时间§8-2蒙特卡罗模拟蒙特·卡罗方法(MonteCarlomethod),也称统计模拟方法、随机模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。蒙特·卡罗方法的名字来源于摩纳哥的一个城市蒙地卡罗,该城市以赌博业闻名,而蒙特·卡罗方法正是以概率为基础的方法。原理:当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。蒙特卡罗方法研究的问题大致可分为两种类型,一种是问题本身就是随机的,另一种本身属于确定性问题,但可以建立它的解与特定随机变量或随机过程的数字特征或分布函数之间的联系,因而也可用随机模拟方法解决。如计算多重积分,求解积分方程、微分方程、非线性方程组,求矩阵的逆等。例4:假设我们要计算一个不规则图形的面积,那么图形的不规则程度和分析性计算(比如:积分)的复杂程度是成正比的。蒙特卡罗方法是怎么计算的呢?首先作一个包含复杂图形的矩形D,假想你有一袋豆子,把豆子均匀地朝这个矩形上撒,然后数矩形上和复杂图形之中有多少颗豆子,复杂图形之中豆子的数目比矩形上豆子的数目再乘以矩形D的面积就是复杂图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。在这里我们要假定豆子都在一个平面上,相互之间没有重叠。例5.计算π的近似值原理:一个边长为2的正方形,面积也就是4,中间有一个半径为1的圆,按照公式,圆的面积是π,那么,模拟正方形内N个均匀分布的随机点,如果落在圆内就编码为1,如果落在圆外的正方形内,就编码为0,然后所有编码值加起来除以N,就是圆的面积占正方形的面积的近似比例,也等于π/4,这样,N越大,算出来的π值越精确,模拟了1000个点,刚好算出来π值等于3.14,因为将这1000个随机点距离圆心的距离排序之后,第785个值开始大于1,意味着786之后的点都落在圆外,785×4/1000=3.14。如果模拟更多的点,就可以得到更加精确的π值。例6.某理发店有3个座位(1号位、2号位、3号位),每5分钟进来的顾客数为0,1或2位,且进来的概率相同(都是1/3)。顾客在每个理发椅上的服务时间是15或20分钟,且概率也相同(都是1/2),现模拟1小时内该店顾客排队或理发师空闲情况。蒙特卡罗(MC)仿真方法应用•仿真:依所要求的概率分布产生的随机数来模拟可能出现的随机现象。第二步产生仿真变量的随机数得到仿真量:第一步确定仿真变量的概率分布:第三步仿真(模拟)座椅被占用的情况:第四步理发店营业情况分析。例7.某工厂从外地采购原料,到货天数是一个随机变量(设为X)。根据过去的资料,在100次到货中,到货天数与次数的关系如表1到货天数X2357812次数204082552现模拟今后10批货物到达的平均天数解:①根据已知条件,到货天数X的概率见表到货天数X2357812概率P0.200.400.080.250.050.02②变换:T③产生均匀分布的随机数:从随机数表中按行读出10个随机数:68、34、30、13、70、55、74、30、77、40④10批货物平均到货天数:(7+3+3+2+7+3+7+3+7+3)/7到货天数X2357812概率P0.200.400.080.250.050.02对应随机数00~1920~5960~6768~9293~9798~99例8:12132解:①根据已知条件,每天销售量X与到货天数T的概率见表3。每天销售量X概率P对应的随机数每天销售量X概率P对应的随机数700.0400~03950.1440~53750.0404~071000.1954~72800.0908~161050.1473~86850.0917~251100.0987~95900.1426~391200.0496~99到货天数T2346812概率P0.170.250.330.170.040.04对应随机数00~1617~4142~7475~9192~9596~99产生X的均匀分布随机数:从随机数表第21行起读取30个随机数:②变换:对应的随机数对应的销售量:100、90、90、80、100、100、105、90、…对应的到货天数:4、3、3、2、4、4、4、…③仿真:④分析:日期123456库存量30020011020240140订货量300300到货量300300销售量100909080100100日期123456库存费用300×0.2=60200×0.2=40110×0.2=2220×0.2=4240×0.2=48140×0.2=28销售利润100×20=200090×20=180090×20=180080×20=1600100×20=2000100×20=2000净利润2000-60=19401800-40=17601800-22=17781600-4=15962000-48=19522000-28=1972注意:应继续模拟,比如:定货量300台/次改成350台/次或250台/次看其效果;改变月初存货量看其效果;选择一个较好的可能方案。一般排队系统的模拟考虑发展因素排队问题用随机概率模拟排队论问题一般排队系统的模拟计算排队系统的随机概率排队系统模拟排队系统运行指标计算排队系统分析某运输公司仓库有一个管理员负责发料工作,根据过去的记录,得知领料人的达到时间间隔和管理员发料时间长度的频率如下表所示。例8:领料人达到时间间隔到达时间间隔345678频率0.050.200.350.250.100.05发料