《《蒙特卡洛仿真》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《蒙特卡洛仿真》PPT课件.ppt(76页珍藏版)》请在三一办公上搜索。
1、第4章 系统仿真方法System Simulation Method,本 章 问 题,什么是系统仿真?-概念!为什么要系统仿真?-作用!如何进行系统仿真?-方法!,系统仿真的概念,什么是系统仿真?,为什么要系统仿真?,系统仿真(亦称系统模拟)是指通过建立和运行系统的数学模型,来模仿实际系统的运行状态及其随时间变化的规律,以实现在计算机上进行试验的全过程。,什么是系统仿真?,为什么要系统仿真?,由于安全、经济、技术、时间等原因,对实际系统进行真实的物理试验很困难或者跟踪记录试验数据难以实现时,仿真技术就成为必不可少的工具。,在我国,目前仿真技术已经渗透到国民经济建设的各个领域,包括社会经济、交通
2、运输、生态环境、军事装备、企业管理等,还有最近兴起的网络仿真技术等。,系统仿真的应用领域,管理系统仿真,公共管理的对象通常是社会、经济、军事等复杂系统,一般都不能通过真实的实验来进行分析、研究。因此,系统模拟技术就成为十分重要甚至必不可少的工具。本讲在介绍管理系统模拟的概念以及一般原理、方法和步骤的基础上,主要介绍四种基本的模拟方法及其模型,即蒙特卡洛模拟方法、排队模型、系统动力学模拟、多AGENT系统模拟。通过蒙特卡洛模拟可以具体了解管理系统模拟的基本原理及方法,排队模型与多AGENT系统体现了离散事件系统模拟的特点与规律,而系统动力学模拟则是一种可以广泛应用于公共管理决策及政策分析的连续系
3、统模拟方法。,系统仿真的特点,系统仿真模型是面向实际过程和系统性问题的。系统仿真技术是一种实验手段,可以在短时间内通过计算机获得对系统运行规律以及未来特性的认识。系统仿真研究由多次独立的重复模拟过程所组成,需要进行多次实验的统计推断,并对系统的性能和变化规律作多因素的综合评价。系统仿真只能得到问题的一个特解或可行解,而不能得到问题的通解或最优解。,(1)问题的描述、定义和分析;(2)建立仿真模型;(3)数据采集和筛选;(4)仿真模型的确认;(5)仿真模型的编程实现与验证;(6)仿真试验设计;(7)仿真模型的运行;(8)仿真结果的输出、记录;(9)分析数据,得出结论。,系统仿真的步骤:,系统仿真
4、的分类,连续系统仿真(Continuous System Simulation)系统状态变量随时间连续变化,通常用常微分方程、偏微分方程或差分方程描述的系统称为连续系统,该类系统仿真称为连续系统仿真。热电、化工、航天航空中许多系统都属于连续系统,社会经济系统也是一种连续系统。离散事件系统仿真(Discrete event System Simulation)系统状态变量随时间呈间断性变化,即系统状态仅在可数的或有限的时间点上发生变化。或者指系统状态只是在一些时间点上由于某些随机事件的驱动儿发生变化的这一类系统。对于这一类系统仿真称之为离散事件系统仿真。在某次额系统中既包含了离散事件仿真,又有连
5、续系统仿真,那么称之为复合系统仿真。加工车间作业调度、多出纳台的银行系统、计算机分时系统则是典型的离散事件系统。,Monte Carlo方法亦称统计模拟(statistical simulation)方法,有时也称着随机抽样(Random Sampling)技术或统计实验(Statistical Testing)方法。属于试验数学的一个分支,起源于早期的用几率近似概率的数学思想,它利用随机数学进行统计试验,以求得的统计特征值(如均值、概率等)作为待解问题的数值解(利用随机数进行数值模拟的方法)。这一方法源于美国在第二次世界大战中研制原子弹的“曼哈顿计划”,该计划的主持人之一数学家冯.诺依曼把他
6、和乌拉姆所从事的与研制原子弹有关的秘密工作对裂变物质的种子随机扩散进行直接模拟,并以摩纳哥国的世界闻名赌城蒙特卡罗作为秘密代号来称呼。,蒙特卡罗(Monte Carlo)仿真方法,蒙特卡罗是摩纳哥公国(The Principality of Monaco)的第一大城市,甚至超过了首都摩纳哥,与中国澳门、美国拉斯维加斯并称世界三大赌城。,Monte Carlo模拟方法的基本思想,为了求解数学、物理、工程技术以及生产管理等方面的问题,首先建立一个概率模型或随机过程,使其某个参数等于问题的解;然后通过对模型或过程的观察或抽样试验来计算所求随机参数的统计特征,最后给出所求解的近似值,解的精确度可用估计
7、值的标准误差来表示。上述思想可以总结为三步:构造或描述概率过程;在概率过程中随机抽样;建立各种估计量并给出近似解。,Monte Carlo方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件发生的频率来决定事件的概率。19世纪人们用投针试验的方法来决定圆周率。本世纪40年代电子计算机的出现,特别是近年来高速电子计算机的出现,使得用数学方法在计算机上大量、快速地模拟这样的试验成为可能。,Monte Carlo模拟方法的概率依据,蒙特卡罗方法以概率统计理论为其主要理论基础,以随机抽样(随机变量的抽样)为其主要手段。它可以解决各种类型的问题,但总的来说,视其是否涉及随机过程的状
8、态和结果,这些问题可分为两类:第一类是确定性的数学问题,如计算多重积分、解线性代数方程组等;第二类是随机性问题,如原子核物理问题、运筹学中的库存问题、随机服务系统中的排队问题、动物的生态竞争和传染病的蔓延问题等。,Buffon投针问题,为了求得圆周率值,在十九世纪后期,有很多人作了这样的试验:将长为2l的一根针任意投到地面上,用针与一组相间距离为2a(la)的平行线相交的频率代替概率P,再利用准确的关系式:求出值。其中为投计次数,n为针与平行线相交次数。这就是古典概率论中著名的蒲丰氏问题。,设针投到地面上的位置可以用一组参数(x,)来描述,x为针中心的坐标,为针与平行线的夹角,如图所示。任意投
9、针,就是意味着x与都是任意取的,但x的范围限于0,a,夹角的范围限于0,。在此情况下,针与平行线相交的数学条件是,针在平行线间的位置,如何产生任意的(x,)?x在0,a上任意取值,表示x在0,a上是均匀分布的,其分布密度函数为:类似地,的分布密度函数为:因此,产生任意的(x,)的过程就变成了由f1(x)抽样x及由f2()抽样的过程了。由此得到:其中1,2均为(0,1)上均匀分布的随机变量。,每次投针试验,实际上变成在计算机上从两个均匀分布的随机变量中抽样得到(x,),然后定义描述针与平行线相交状况的随机变量s(x,),为 如果投针次,则 是针与平行线相交概率的估计值。事实上,于是有,一些人进行
10、了实验,其结果列于下表:,射击问题(打靶游戏),设r表示射击运动员的弹着点到靶心的距离,(r)表示击中r处相应的得分数(环数),f(r)为该运动员的弹着点的分布密度函数,它反映运动员的射击水平。该运动员的射击成绩为 用概率语言来说,是随机变量(r)的数学期望,即,现假设该运动员进行了次射击,每次射击的弹着点依次为r1,r2,rN,则次得分g(r1),g(r2),g(rN)的算术平均值代表了该运动员的成绩。换言之,为积分的估计值,或近似值。在该例中,用次试验所得成绩的算术平均值作为数学期望的估计值(积分近似值)。,设射击运动员的弹着点分布为 用计算机作随机试验(射击)的方法为,选取一个随机数,按
11、右边所列方法判断得到成绩。这样,就进行了一次随机试验(射击),得到了一次成绩(r),作次试验后,得到该运动员射击成绩的近似值,(1)构造或描述概率过程。对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程;对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解,即要将不具有随机性质的问题转化为随机性质的问题。,实施蒙特卡罗法有三个主要步骤:,(2)实现从已知概率分布抽样。构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡
12、罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。,最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布。随机数就是具有这种均匀分布的随机变量,随机数序列就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生,这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过经过多种统计检验表明,它与真正的随机数或随机数序列具有相似的性质,因此可把它作为真正的随机数来使用。从已知分布随机抽样有多种方法,与从(0,1)上均匀分
13、布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。由此可见,随机数是实现蒙特卡罗模拟的基本工具。,(3)建立各种估计量。一般来说,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计量。建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。,c)算法过程不退化 d)算法可再现,速度快。,产生方法,0,1区间上均匀分布随机数的产生,mod函数是一个求余函数,其格式为:mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数。MOD(number,divisor)Numb
14、er 为被除数,divisor 为除数。如果 divisor 为零,函数 MOD 返回错误值#DIV/0!。,Excel中随机数,命令为Rand(),(0,1)上随机数生成的算法实现,在Matlab中产生随机数,由rand()函数生成的U0,1随机数,模拟中特殊分布随机数的生成,生成a,b上均匀分布的随机数 方法1:RANDBETWEEN(a,b)函数 方法2:线性变换公式,正态分布的均值是:(位置参数)正态分布的方差是:(尺度参数),正态分布随机数生成,在Excel中对应的函数为NORMDIST(x,逻辑值),当逻辑值=true时,此函数为F(x)。当逻辑值=false时,此函数为p(x)。
15、生成正态分布的随机数使用NORMINV(RAND(),)函数NORMINV(probability,mean,standard_dev)NORSMINV(probability):返回标准正态分布随机变量,正态分布随机数生成,【例】在工作表上模拟产生100个学生考试成绩。假设分数是均值为75分和标准差为5分的正态分布的随机数,小数点后保留两位,并统计模拟随机数在各分数段的频率分布和绘图显示对应的直方图。,指数分布适用于构建在时间上随机重现的事件的模型。指数分布的均值为:指数分布的方差为:,指数分布随机数生成,逆变换法原理基本原理 逆变换法是利用随机变量的累积概率分布函数F(x)的性质。由于F(
16、x)是一个函数,所以每一个x的值都有一个与之相联系的唯一值F(x)。因为F(x)是非降的,所以它的反函数存在。,生成指数分布的随机数,逆变换法原理在指数分布中应用,在Excel中对应的函数为EXPONDIST(x,逻辑值)。当逻辑值=true时,此函数为F(x);当逻辑值=false时,此函数为p(x)。,在Excel中使用函数RAND()表示掷骰子:C9=RAND()方法1:C10=INDEX(D3:D7,MATCH(C9,B3:B7,1)方法2:C10:=VLOOKUP(C9,B3:D7,3),离散分布的查表法,用数据分析工具生成随机数 第一步,加载数据分析工具。第二步,用“随机数发生器”
17、生成随机数。,模拟实例,解:经计算,某型号的产品平均无故障运行时间4.67小时,310,1132,3366,6784,8593,94100,现在考虑订货、存贮、缺货损失三项费用:订货费用每次25元,订货量每次20单位,订货点为15单位。(即存货低于15单位时订货,但已订货未到前不再订)存贮费每件每周10元,缺货损失费每件每周500元。对于缺货,货到后不补,设开始时存货为20单位。试利用所给随机数R1(在下表内)模拟需求量,R2(50,86,15)模拟订货提前期。模拟14周的运行情况:并求订货费用、存贮费用、缺货费用以及周平均费用。,可求得:订货费用253=75存贮费用10200=2000缺货费
18、用5001=500 1,周平均费用,25,注意:以上模拟只能反映理发店可能发生的一次情况。应该重复进行多次模拟分析决策。,仿真:,第一步 确定仿真变量的概率分布;,提示:依所要求的概率分布产生的随机数来模拟可能出现的随机现象,第二步 产生仿真变量的随机数得到仿真量;,第三步 仿真(模拟)座椅被占用的情况;,第四步 理发店营业情况分析。,例2某工厂从外地采购原料,到货天数是一个随机变量(设为 X)。根据过去的资料,在100次到货中,到货天数与次数的 关系如表1,现模拟今后10批货物到达的平均天数,解:根据已知条件,到货天数X的概率见表,变换:,产生均匀分布的随机数:例10个随机数:68、34、3
19、0、13、70、55、74、30、77、40 10天平均到货天数:(7+3+3+2+7+3+7+3+7+3)/7,1,2,解:根据已知条件,每天销售量X与到货天数T的概率见表3,产生X的均匀分布随机数,变换:,对应的销售量:100、90、90、80、100、100、105、90、,仿真:,计算分析:,注 意:应继续模拟,比如:定货量300台/次改成350台/次或250台/次看其效果;300台即定货看其效果;改变月初存货量看其效果;选择一个较好的可能方案。,例5市场营销中的进货、售货、盈利的情况模拟 某商店经销台灯,根据以往记录,每天平均销售100台,且每 月中销售量在70台130台之间约有20
20、天左右。现用MC方法模拟今后一个月每天(30天)销售情况,正态分布,模拟结果:模拟所得平均销售量是每天96台;标准差是28;-与期望值相差不大。,作业,在Excel工作表上模拟产生100个学生考试成绩。假设分数是从60分到90分的均匀分布的随机数,小数点后保留两位,并统计模拟随机数在各分数段的频率分布和绘图显示对应的直方图。某理发店有3个座位(1号位、2号位、3号位),每5分钟进来的顾客数为0,1或2位,且进来的概率相同(都是1/3)。顾客在每个理发椅上的服务时间是15或20分钟,且概率也相同(都是1/2),请模拟1小时 内该店顾客排队或理发师空闲情况。,2市场营销案例 已知某商场销售电冰箱情况如表12;商店向工厂定货,每次定货到达天数情况如表13;该商场盈利情况为:每出售一台获利20元,每库存一台损失0.5元/天。现在该商场一个月30天经营初步决策是:月初存300台,每当库存等于或小于300台时向工厂定货,定货量300台/次,但在上次定货未到达之前不再继续定货。用MC法探讨这一决策30天内给该商场带来的盈利、可能的损失,并讨论如何改进决策使盈利更大?,