1、第十五章 随机模拟技术,第一节 引言 一、模拟的定义模拟是一种数量技术,它利用计算机化的数学模型来表现在某些不确定的条件下所做出的实际决策,来评价一些根据事实及假设所建立的可供选择的行动方案。 二、模拟的意义 1.复杂的实际问题难于用解析理论处理,需要模拟方法提供数值解。 2.理论研究中的某些假设或结论需要经实际系统来检验,计算机模拟可代替费用昂贵的试验。,模拟法分类 一、运筹对策法(主要用于军事对策和企业管理对策。如现代化战争的军事演习、新式武器的试验等。最早于40年代末美国纽曼等人首先用运筹模拟法解决了核屏蔽实验问题。),三、系统模拟法(是用数字对含有随机变量的系统进行模拟,可看作是蒙特卡
2、洛法的应用。一般说来,蒙特卡洛法用于静态计算,而系统模拟法用于动态模型计算。我们主要讨论此法。) 我们在排队论中讨论了M/M/C、M/G/1等系统,并用解析方法得出了精确解。但对于到达与服务均为任意分布的排队系统的求解就不可能用那一套公式和方法。,例1:设某商店顾客到达的时间间隔均匀分布在1到10分钟之 间,而每一顾客所需要的服务时间均匀分布在1到6分钟之 间。求顾客在商店所花费的平均时间和售货员空闲时间占全 部工作时间的百分比。,分析:到达与服务皆为均匀分布,不能利用M/M/C或M/G/1 的公式。但由于问题的特性:,可用人工方法模拟系统当时的真实情况从而求解。(用标有1-10的扑克牌及骰子
3、分别得出用于模拟20名顾客到达间隔与服务时间的一串数称为随机数,从而推知相关结果。具体怎样做?)经考察开门后的20名顾客的被服务情况可知,20名顾客在系统中的全部时间是68分钟,售货员空闲时间是55分钟,而售货员从8点至9点57分在班上共117分钟。于是可得:WS=68/20=3.4(分钟) P0=55/117=0.47(空闲率过大,可加以调整),由此例我们初步了解了系统模拟的方法。其中的重要步骤是得到一串关于系统中随机规律的随机数,用以模拟系统的真实情况(故模拟也称仿真),从而求解。而此例中均匀分布的随机数是采用人工方法得到的,即麻烦又不可靠,且局限性很大。所以我们还要寻求产生任意分布随机数
4、的一般方法。,第二节 随机数的产生,2.产生方法 (1)物理方法:一是放射性物质随机蜕变;二是电子管回路的热噪声。(如可将热噪声源装于计算机外部,按其噪声电压的大小表示不同的随机数。此法产生的随机性最好,但产生过程复杂。) (2)查随机数表-”Rand Table”(1955年由美国兰德公司编制,有随机数100万个。)随机数表中的数字具有均匀的随机性,没有周期性。使用时,可根据需要任取一段(横或竖)。如需20个,便可从中取(顺次)20个,需要几位取几位,随机数表无所谓位数,不能四舍五入。,(3)由递推公式(如同余数公式)在计算机内产生伪随机数。由于第i+1个随机数是由第i个按一定公式推算出来的
5、,故并非真正的随机数。但满足:a)有较好的随机、均匀性。b)周期长、重复性差。c)算法过程不退化(即不能反复出现某一常数。) d)算法可再现,速度快。故这是目前最常用的方法。,二、任意概率分布的随机数的产生以上介绍了R的随机数r1,r2的产生方法,那么任意分布X的随机数如何产生?我们说,X的随机数 x1,x2可以利用r1,r2得到。那么X与R间必有一定关系。这种关系又是什么?,定理: 设R是服从0,1区间上均匀分布的随机变量,X的 分布函数为FX(x),则X=FX-1(R) 。(X=FX-1(R) 即FX(X)=R。即任意分布的随机变量X被它自 己的分布函数作用后所得的随机变量恰为R。),此定
6、理说明:因为x轴上的点经FX(x)映射到y轴的0,1上便是的R取值(如图)。反之,y轴的0,1上R的点经FX-1映射到x轴便是X的取值。所以若知R的随机数r1,r2便可得X的随机数x1,x2其中xi= FX-1(ri)。,注:若不加以说明则随机数即指0,1上均匀分布的随机数。,例2:利用0,1区间均匀分布的随机数r1,r2表示服从负指数分布的随机数。,例3:已知X的概 率分布如右表, 试根据0,1区间 上均匀分布R的随 机数列36,55, 70,38,36,98, 50,95,92,67。 产生X的随机数列。,0 1 2 3 4 5,0.23 0.30 0.30 0.10 0.05 0.02,0.23 0.53 0.83 0.93 0.98 1.00,0023 2453 5483 8493 9498 99100,分析:所给概率分布如图,而由R转到X需用分布函数FX(如图)。用数表表达即累积概率。,解:先求出X的累积概率 即FX(x)如右表,然后由 X=FX-1(R)得X的随机数。 (注:当随机数落在交界 点上,如98,规定属于前 一个范围,当然也可以规 定属于后一个范围,只要 一致即可。),1 2 2 1 1 4 1 4 3 2,