系统仿真课件(1蒙特卡洛)_第1页
系统仿真课件(1蒙特卡洛)_第2页
系统仿真课件(1蒙特卡洛)_第3页
系统仿真课件(1蒙特卡洛)_第4页
系统仿真课件(1蒙特卡洛)_第5页
已阅读5页,还剩149页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

系统仿真基本概念蒙特卡洛仿真排队论离散事件系统(DES)仿真系统动力学系统仿真基本概念1前言

工程管理问题—>涉及方案或策略的优化问题优化问题的数学模型:如何建立f(x)或g(x)?如何确定最佳x(x1,x2,。。。,xn)?前言如何建立f(x)或g(x)?2系统:

“系统就是由许多部分组成的整体,所以系统的概念就是要强调整体,强调整体是由相互关联、相互制约的各个部分所组成的”(钱学森)。系统确定:

1)根据不同的研究目的,可以确定系统的规模,范围和界限。研究目的决定了系统的界限.2)不同的研究目的,系统所包含的实体也不同.3)系统仅由那些与研究目的相关的因素组成。因此,一旦研究目的确定,系统的组成和界限就已经确定。反之当研究目的变化时,系统的组成和界限就会发生变化.第一章系统仿真基本概念系统:第一章系统仿真基本概念3系统的其它定义:系统是研究的一个具体对象,是实体的一个集合。如:人群、机器等。1970年,著名管理学家泰勒(Taylor)对“系统”作了如下定义:实体之间是相互作用的,或是通过逻辑关系组合在一起的。系统是一个整体,由相互联系和相互依存的事物组成,它的范围由研究者根据所要解决问题的复杂性而定。

系统的其它定义:4按系统状态是否变化静态系统动态系统投针试验理发馆模型按系统状态的变化与时间的关系连续型系统:系统的状态随时间连续变化离散型系统:系统状态仅在某些时间点上发生变化按有无随机过程确定型系统:系统的输出取决于输入离散型系统:包含随即因素的系统管理系统仿真研究的是:动态离散随机排队系统系统的分类:按系统静态系统动态系统投针试验理发馆模型按系统状态连续型系统5仿真就是利用物理的、数学的模型来类比、模仿现实系统及其演变过程,以寻求过程规律的一种方法。

仿真的基本思想是建立一个试验模型,这个模型包含所研究系统的主要特点.通过对这个实验模型的运行,获得所要研究系统的必要信息。仿真的概念仿真就是利用物理的、数学的模型来类比、模仿现实系统及其演变过61、物理仿真:对实际系统及其过程用功能相似的实物系统去模仿。例如,军事演习、船艇实验、沙盘作业等。物理仿真通常花费较大、周期较长,且在物理模型上改变系统结构和系数都较困难。而且,许多系统无法进行物理仿真,如社会经济系统、生态系统等。Buffon投针实验是物理仿真吗?仿真的方法1、物理仿真:物理仿真通常花费较大、周期较长,且在物理模型上72、数学仿真

数学仿真就是用数学模型使现象再现。表示现象的部分或总体的基本方程和表示自然规律的数学模型全是数学仿真。狭义地讲主要指的是数字仿真。它是将复杂现象作出可以用数字计算机表达的数学模型,从数值上进行各种实验。各种方法随着计算机的进步已广泛地应用起来。因此,所说的仿真主要是指数学仿真。数学仿真-基于模型的实验。Buffon投针实验是数学仿真吗?2、数学仿真数学仿真就是用数学模型使现象再现。表示现象的部8系统仿真方法系统仿真的基本方法是建立系统的数学模型,并将其转换为计算机上实现的仿真模型,然后对模型进行仿真实验。由于连续系统和离散(事件)系统的数学模型有很大差别,所以系统仿真方法基本上分为两大类:连续系统仿真方法离散系统仿真方法在以上两类基本方法的基础上,还有一些用于系统(特别是社会经济和管理系统)仿真的特殊而有效的方法:如蒙特卡洛仿真和系统动力学方法等。系统仿真方法9系统仿真的模型结构(系统仿真的模型包含的系统信息)组成要素变量参数函数关系约束条件目标系统仿真的模型结构(系统仿真的模型包含的系统信息)10系统仿真本质上是由三要素构成的,即系统、系统模型与实验。如将实验置于计算机上进行就是计算机仿真。系统模型计算机建立系统模型建立仿真模型仿真实验图1系统仿真原理图系统仿真本质上是由三要素构成的,即系统、系统模型与实验。如将11系统仿真的建模过程模型的图解结构系统仿真的建模过程模型的图解结构12为什么要在建筑管理中使用仿真技术?传统方法的缺陷难以建立数学方程确定系统指标(如工期、成本和质量等)很难考虑建筑工程中元素之间复杂和动态的相互作用很难反映一些诸如随机性在内的不确定性很难安全和低成本地估算在极端条件下的后果为什么要在建筑管理中使用仿真技术?13系统仿真优点比一般的分析方法(数学方程)容易使用和有效能够被重复使用来分析和评估某个现实系统(如某个建筑工程)的参数构成(如资源分配或调度)比使用直接的试验如实验室(物理模型)或现场试验成本较小比操作真实的系统风险低系统仿真优点14第二章蒙特卡洛仿真蒙特卡洛(MonteCarlo)仿真方法,或称计算机随机模拟方法,是一种基于“随机数”和概率论的计算方法,可以解决静态或动态问题。MonteCarlo名字的由来:MonteCarlo是摩纳哥(Monaco)最大的城市,该城以赌博闻名。数学家VonNeumann用MonteCarlo来命名这种方法,为它蒙上了一层神秘色彩。Monte-Carlo,Monaco第二章蒙特卡洛仿真蒙特卡洛(MonteCarlo)仿真方15MonteCarlo方法的起源:二十世纪四十年代中期,由于科学技术的发展和电子计算机的发明,蒙特卡罗方法作为一种独立的方法被提出来,并首先在核武器的试验与研制中得到了应用,即“曼哈顿计划”。但其基本思想并非新颖,人们在生产实践和科学试验中就已发现,并加以利用。NicholasMetropolis(1915-1999)JohnVonNeumann(1903-1957)

MonteCarlo方法的起源:NicholasMetr16MonteCarlo方法的应用:物理:核物理,热力学与统计物理,粒子输运问题等数学:多重积分、解微分方程、非线性方程组求解等工程领域:真空技术,水力学,激光技术等经济学领域:期权定价、项目管理、投资风险决策等其他领域:化学、医学,生物,生产管理、系统科学、公用事业等方面。随着科学技术的发展,其应用范围将更加广泛。MonteCarlo方法的应用:17MonteCarlo方法的基本思想做独立重复实验,当实验次数充分多时,某一事件出现的频率近似于该事件发生的概率。p/N(N充分大)利用这一方法不仅能估计事件发生的概率,还可以估计系统的一些性能参数,更重要的是它提供了一种实验思考方法,是系统仿真的重要基础。MonteCarlo方法的基本思想18积分问题积分问题19其中,n是落在曲线f(x)之下的点的数量,N所有点的总数。积分问题其中,n是落在曲线f(x)之下的点的数量20Buffon投针实验1768年,法国数学家ComtedeBuffon利用投针实验估计的值dL针与平行线中任一条相交的概率为Buffon投针实验1768年,法国数学家Comtede21

投针实验投针实验22Buffon投针试验从而针线相交的概率为根据上式,若我们做大量的投针试验并记录针与线相交的次数,则由大数定理可以估计出针线相交的概率,从而得到的估计值。针与线的位置关系:

Buffon投针试验从而针线相交的概率为

23例1.Buffon投针问题利用关系式:求出π值其中N为投计次数,n为针与平行线相交次数。这就是古典概率论中著名的蒲丰问题。例1.Buffon投针问题利用关系式:24一些人进行了实验,其结果列于下表:实验者年份投计次数π的实验值沃尔弗(Wolf)185050003.1596斯密思(Smith)185532043.1553福克斯(Fox)189411203.1419拉查里尼(Lazzarini)190134083.1415929实验者年份投计次数π的实验值沃尔弗(Wolf)185050025基本思想和原理基本思想:当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率、数学期望有关的量时,通过某种试验的方法,得出该事件发生的频率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。

原理:抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。

基本思想和原理基本思想:当所求问题的解是某个事件的概率,或者26

通俗地说,蒙特卡罗方法是用随机试验的方法计算积分,即将所要计算的积分看作服从某种分布密度函数f(r)的随机变量g(r)的数学期望

通过某种试验,得到N个观察值r1,r2,…,rN(用概率语言来说,从分布密度函数f(r)中抽取N个子样r1,r2,…,rN,),将相应的N个随机变量的值g(r1),g(r2),…,g(rN)的算术平均值

作为积分的估计值(近似值)。

通俗地说,蒙特卡罗方法是用随机试验的方法计算积分,即27步骤可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量步骤可以把蒙特卡罗解题归结为三个主要步骤:28构造或描述概率过程对于本身就具有随机性质的问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质的问题。

构造或描述概率过程对于本身就具有随机性质的问题,主要是正确描29实现从已知概率分布抽样构造了概率模型以后,按照这个概率分布抽取随机变量(或随机向量),这一般可以直接由软件包调用,或抽取均匀分布的随机数构造。这样,就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。实现从已知概率分布抽样构造了概率模型以后,按照这个概率分布30建立各种估计量一般说来,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计。建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。建立各种估计量一般说来,构造了概率模型并能从中抽样后,即实31比喻可用民意测验来作一个不严格的比喻。民意测验的人不是征询每一个登记选民的意见,而是通过对选民进行小规模的抽样调查来确定可能的民意。其基本思想是一样的。比喻可用民意测验来作一个不严格的比喻。民意测验的人不是征询每32MonteCarlo方法处理的问题MonteCarlo方法处理的问题可以分两类确定性的数学问题:多重积分、求逆矩阵、解线性代数方程组、解积分方程、解某些偏微分方程边值问题和计算代数方程组、计算微分算子的特征值等等

随机性问题MonteCarlo方法处理的问题MonteCarlo33方法在解决实际问题的时候应用MonteCarlo方法主要有两部分工作:

1、用此方法模拟某一过程时,需要产生各种概率分布的随机变量。

2、用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。

方法在解决实际问题的时候应用MonteCarlo方法主要有34随机数的产生随机数是实现蒙特卡罗模拟的基本工具,而蒙特卡罗模拟的关键是产生优良的随机数。随机数的产生就是抽样问题。可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。在模拟中,需要产生各种概率分布的随机数,而大多数概率分布的随机变量产生均基于均匀分布U(0,1)的随机数。随机数的产生随机数是实现蒙特卡罗模拟的基本工具,而蒙特卡罗模35随机数的取得如果你对随机数有更高的要求,需要自己编辑“随机数生成器”最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)例如在Matlab中,命令“rand()”将产生一个(0,1)中均匀分布的随机数你可以根据需要给随机数一个“种子”,以求不同的数随机数的取得36Matlab的随机数函数均匀分布r=unidrnd(N),-产生1到N间的均匀分布随机数r=unidrnd(N,n,m),产生1到N间的均匀分布随机数矩阵连续均匀分布r=unifrnd(A,B)-产生(A,B)间的均匀分布随机数r=unifrnd(A,B,m,n)产生(A,B)间的均匀分布随机数矩阵Matlab的随机数函数均匀分布37Matlab的随机数函数-正态分布随机数r=normrnd(mu,sigma)r=normrnd(mu,sigma,m)r=normrnd(mu,sigma,m,n)特定分布随机数发生器r=random(‘name’,A1,A2,A3,m,n)Matlab的随机数函数-正态分布随机数38例a=random(‘Normal’,0,1,3,2)a=.-0.43260.2877-1.6656-1.14650.12531.1909例a=random(‘Normal’,0,1,3,2)39精确性由于MonteCarlo方法的随机性,精确性建立在大量的重复模拟上,最后去平均值。对确定值的计算,要估计出样本的个数与精确度之间的关系。对随机过程的模拟,有置信区域的估算等精确性由于MonteCarlo方法的随机性,精确性建立在40方差削减技术对偶变量技术(适用正态分布函数)取一组随机数Z_i,可得模拟值C_i,i=1,2,..n估计值为期平均C^再取Z_i的对偶Z’_i=-Z_i,再生成估计值C’^然后去新的平均值C*=(C^+C’^)/2则varC*=1/2varC^+1/2cov(C^,C’^)<1/2varC^+该技术使计算更稳定方差削减技术对偶变量技术(适用正态分布函数)41两种形式的随机变量:1.离散型随机变量的模拟2.连续型随机变量的模拟两种形式的随机变量:1.离散型随机变量的模拟421.离散型随机变量的模拟设随机变量的分布律为令将作为区间(0,1)的分点.若随机数有1.离散型随机变量的模拟设随机变量的分布律为43令

则有

据此,可得产生的随机数的具体过程为:

每产生一个(0,1)区间上均匀分布随机数r,若

则令取值.令

则有

据此,可得产生的随机数的具体过程为:44例1:离散型随机变量X有如下分布律:

X012P(x)0.30.30.4设是基于U(0,1)的随机数,令则是具有X分布律的随机变量.例1:离散型随机变量X有如下分布律:452.连续型随机变量的模拟a.逆变换方法(常用)(InverseTransformMethod)b.舍取方法(Acceptance-RejectionMethod)2.连续型随机变量的模拟a.逆变换方法(常用)46逆变换方法步骤:产生基于U(0,1)的随机数r计算X=F-1(r),则X为服从概率分布F(x)的随机变量逆变换方法步骤:47rrrrrrrr48算法实现许多程序语言中都自带生成随机数的方法,如c中的random()函数,Matlab中的rand()函数等。但这些生成器生成的随机数效果很不一样,比如c中的函数生成的随机数性质就比较差,如果用c,最好自己再编一个程序。Matlab中的rand()函数,经过了很多优化。可以产生性质很好的随机数,可以直接利用。算法实现许多程序语言中都自带生成随机数的方法,如c492类离散随机变量的问题:问题-:某人每轮向靶子射10箭,已知其击中靶心的概率为25%,问一轮中射中7箭的概率为多少?问题二:有一银行营业点打算添置一台自动存取款机(12小时服务),顾客按一定的间隔时间到来,排队接受服务,先来者先用,后来者后用,顾客不愿在队列中等待太久,否则会离去。管理人员想了解等待时间超过3分钟的顾客的比例为多少,若该比例太大,则考虑再增设一台机器。2类离散随机变量的问题:50问题1的求解方法:1.产生均匀分布随机数0.00~0.99(100个),某个数字出现的概率相等。若产生1000个这样的数,则(1)数值为0.00~0.24大约会有250个,比例大约为0.25(2)数值为0.25~0.99大约会有750个,比例大约为0.752.以每产生一个随机数代表射1箭,若产生的随机数小于0.25,则代表击中靶心,如果产生的随机数大于或等于0.25,则表示没有击中靶心。若实验的次数很多(远大于1000),则击中靶心的频率接近于25%。若实验的次数无限多,则击中靶心的概率等于25%。问题1的求解方法:513.确定一轮中击中7箭的概率(1)每轮由计算机产生10个均匀分布的随机数Ni(i=1,2,3,…10),代表射10箭(2)其中若Ni小于0.25为击中,记下该轮中击中的次数(3)重复(1)―(2),进行K轮实验(4)找出K轮中所有每轮击中7次的总轮数M,则K轮中每轮击中7箭的频率为M/K,若K趋向无穷大时,M/K为每轮击中7箭的概率。3.确定一轮中击中7箭的概率52问题2的已知数据:1.模拟过程顾客到达排队→使用存取款机→顾客离开2.调查数据观察100位顾客到达间隔时间和使用机器的持续时间,得到如下统计数据:问题2的已知数据:1.模拟过程2.调查数据533.产生均匀分布的二组随机数产生0-1(0.00-0.99)间隔两组均匀分布的随机数。一组用于模拟顾客到达间隔时间,另一组模拟顾客用机时间。由第一组产生的一个随机数代表当前到达存取款机的一位顾客,若此随机数的值为0.70,通过表2.2-1,可以确定所模拟的该顾客到达的时间与前一位顾客到达时的间隔时间为5分钟。由第二组产生的一个随机数代表正在使用存取款机的一位顾客,若此随机数的值为0.90,通过表2.2-2,可以确定所模拟的该顾客使用存取款机的时间为4分钟。3.产生均匀分布的二组随机数544.手工模拟步骤与结果(假设模拟开始时间为0)4.手工模拟步骤与结果(假设模拟开始时间为0)55例:列车大约在下午1点离开A站,其规律如下:

列车从A到B途中所需要的平均时间为30分,有2分钟的标准差。如果你要赶的是这趟列车的下一站B,而你到达B站的时间分布为

问你能赶上这列车的概率是多少?离站时间13.0013.0513.10概率0.70.20.1时间13.2813.3013.3213.34概率0.30.40.20.1例:列车大约在下午1点离开A站,其规律如下:离站时56解:需要设置随机变量,包括均值为30,方差为3的正态分布的随机变量。要仿真模拟的是火车离站的时间t1;火车途中的时间t2;你到达车站B的时间t3。

这样你赶上火车的条件是t3≤t1+t2。为仿真模拟这个问题只需要生成t1,t2和t3的值,然后检验这条件。由所给的条件知t1,t2为离散的,而t3为连续的随机变量。解:需要设置随机变量,包括均值为30,方差为3的正态分布的随57以分为时间单位,从t=0的下午一点起算,构造的模型如下其中t2=normrnd(30,3)。计算结果为t1=5,t2=29和t3=30,这样t1+t2=34。在这种场合你比火车提前到达4分钟。但需要指出,这并不是说已经回答了这个问题,要回答这个问题要作多次这样的仿真模拟,记下这些结果,算出能赶上火车的频率。通过足够多次的仿真模拟之后才可以算出能赶上火车的概率。以分为时间单位,从t=0的下午一点起算,构造的模型如下58例:投资可行性分析某港口有一个万吨级泊位,根据长期观察记录,依次到港的两艘船只的间隔时间有如表所示的规律.港口现有一台装卸机,根据其它港口的经验,若用两台装卸机可以节约装卸时间.经过统计,两种情况下的装卸规律下表.例:投资可行性分析港口现有一台装卸机,根据其它港口的经验,若59船只装卸时,按照先到先装卸的原则进行.船到港口,若泊位有空,立即停靠卸货;如泊位不空,则排队等候.船只装卸时,按照先到先装卸的原则进行.船到港口,若泊位有60按照规定,到港船只必须在15-30h内装卸完毕,其中包括等待和装卸时间.若超过30h时,港口每小时支付赔偿费200元;若能少于15h时,每提前1h港口得奖励250元.港口在没有船只装卸时,每小时经济损失为400元,而每艘船在港口每停泊1h损失200元.已知一台装卸机购置与安装费用为60万元,折旧期为10年.每台装卸机每月维修及油料等开支为3000元.请用计算机仿真的方法分析该港口增添第二台装卸机在经济上是否合算?按照规定,到港船只必须在15-30h内装卸完毕,其中包括等61解:增添设备的经济可行性以投资回收期来衡量,若其短于标准投资期,则增添设备是可行的;否则便不可取.投资回收期为τ=⊿k/⊿c,其中⊿k=60万元为增添设备的投资,⊿c是一台装卸机和两台装卸机两种情况下的经营费用之差,即经营费用的节约值。经营费用包括:船只等待与卸货时间之和小于15h时的奖励费c1;船只等待与卸货时间之和多于30h时的赔偿费c2;船只停港损失费c3;港口空闲损失费c4;装卸机折旧费c5;维修与油料费c6.其中c5和c6两项是确定性费用,c1,c2,c3,c4这四项费用和船只到港间隔时间及卸货时间有关,因而是随机性的,可以由仿真来确定.解:增添设备的经济可行性以投资回收期来衡量,若其短于标准投资62船只到港间隔时间的模拟抽样规则,即到港间隔时间与均匀随机数的对应规则如表1所示.表2船只到港间隔时间的模拟抽样规则,即到港间隔时间与均匀随机数的63一台及两台装卸机装卸时间的模拟抽样规则,即装卸时间与随机数的对应关系如表2所示.表2一台及两台装卸机装卸时间的模拟抽样规则,即装卸时间与随机数的64根据前面的分析,可以产生两组随机数,一组随机数用来模拟相邻两船到港间隔时间,另一组随机数用来模拟对各船的卸货时间.在仿真过程中,不断累积船只在港超过30h的时间和不足15h的时间,累积船只在港时间以及港口空闲时间,以此来求得港口空闲时间,从而求到费用c1,c2,c3和c4。根据前面的分析,可以产生两组随机数,一组随机数用来模拟相邻两65我们就可以产生初始数据表,利用事件步长法进行仿真.记A为船只到港事件,B为装卸结束事件,对一台装卸机的情况,前几步的仿真过程如下:(1)产生初始事件表(表3)表3我们就可以产生初始数据表,利用事件步长法进行仿真.记A为船只66(2)处理1号事件由表6得,最早的是发生在第15h的1号事件A,置仿真时钟t=15.它是第一艘到港船只,到港后可立即装卸,这时需要将装卸机由闲变为忙,随机产生装卸结束事件B和下一个船只到港事件A,计算港口空闲损失费c4=15×400=6000元.处理完后删去1号事件A.刷新后的事件表见表4.表4(2)处理1号事件由表6得,最早的是发生在第15h的1号67(3)处理3号事件B.由表4看出,最早的是3号事件B,为装卸结束事件,它发生在第31h,故置t=31.判断装卸结束的船只到港停留时间是否小于15h或大于30h.累加装卸机的工作时间.表4(3)处理3号事件B.由表4看出,最早的是3号事件68重复上面的过程(2)或(3),每一步都找最早的事件处理,累加一些量,判断一下是否到了应该结束的预定仿真时刻,最后可以得到一台装卸机时的各种费用.同理可仿真得出两台装卸机时的费用.两种情况下的费用比较如表8所示.由表8看出,用两台装卸机时,每月可以节约经营费用11950元.所以投资回收期为: T=600000/(11950×12)=4.19年.因此,若规定的投资回收期大于4.19年时,港口增添一台装卸机在经济上是可行的.重复上面的过程(2)或(3),每一步都找最早的事件处理,累加69问题1、蒙特卡罗方法的基本思想是什么?2、用蒙特卡罗模型解决实际问题的基本步骤是什么?3、蒙特卡罗方法的优缺点各有哪些?4、蒙特卡罗模拟与随机抽样统计分析有什么区别?问题1、蒙特卡罗方法的基本思想是什么?70解答1、当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率、数学期望有关的量时,通过某种试验的方法,得出该事件发生的频率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。这就是蒙特卡罗方法的基本思想。解答1、712、(1)建立数学模型(2)收集模型中风险变量的数据,确定风险因数的分布函数。(3)确定模拟次数、产生随机数。(4)由产生的随机数在各风险变量的分布函数中随机抽样,带入模型求出目标变量的一个样本值。(5)重复第4步N次,产生N个样本值,对得到的N个样本值进行统计分析。2、723、优点

能够比较逼真地描述具有随机性质的事物的特点及物理实验过程。受几何条件限制小。收敛速度与问题的维数无关。误差容易确定。程序结构简单,易于实现。3、73缺点收敛速度慢。误差具有概率性。进行模拟的前提是各输入变量是相互独立。

不能模拟多因素间的动态作用关系。缺点744、蒙特卡罗模拟是一种simulation,通过建立模型,产生相应分布的随机数(实际是伪随机变量),来模拟实际存在的过程,并且分析相关的结果。比如,首先观察客观世界,某一个过程有几个步骤,每个步骤所用的时间符合哪种分布(可以是估计),数学特征是什么(可能通过测量),然后建立起相关的模型。通过一定的算法,产生符合标准正态分布的伪随机变量,然后对变量进行运算,来产生其他分布的变量,比如泊松分布,指数分布等。

对于模型中的每个步骤,通过产生的随机变量进行模拟,来得到整个过程所用的时间的数学特征,比如平均值,方差等。根据这些数学特征,就可以对以后的发展做出预测。而随机抽样统计分析是对实际数据的抽样分析。通过抽样的数学特征,来估计样本的数学特征。也就是通过局部认识总体。一句话概括,蒙特卡罗模拟对计算机产生的,而不是对实际存在的数据统计,而随机抽样分析是对实际存在的数据分析。4、75思考题对蒙特卡洛方法中风险变量相关性的探讨?思考题对蒙特卡洛方法中风险变量相关性的探讨?76参考教材《建筑工程系统仿真》,谢行皓编著,科学出版社。《系统建模与仿真》,刘思峰等编著,科学出版社。《智能优化方法》,汪定伟等编著,高等教育出版社。参考教材《建筑工程系统仿真》,谢行皓编著,科学出版社。77系统仿真基本概念蒙特卡洛仿真排队论离散事件系统(DES)仿真系统动力学系统仿真基本概念78前言

工程管理问题—>涉及方案或策略的优化问题优化问题的数学模型:如何建立f(x)或g(x)?如何确定最佳x(x1,x2,。。。,xn)?前言如何建立f(x)或g(x)?79系统:

“系统就是由许多部分组成的整体,所以系统的概念就是要强调整体,强调整体是由相互关联、相互制约的各个部分所组成的”(钱学森)。系统确定:

1)根据不同的研究目的,可以确定系统的规模,范围和界限。研究目的决定了系统的界限.2)不同的研究目的,系统所包含的实体也不同.3)系统仅由那些与研究目的相关的因素组成。因此,一旦研究目的确定,系统的组成和界限就已经确定。反之当研究目的变化时,系统的组成和界限就会发生变化.第一章系统仿真基本概念系统:第一章系统仿真基本概念80系统的其它定义:系统是研究的一个具体对象,是实体的一个集合。如:人群、机器等。1970年,著名管理学家泰勒(Taylor)对“系统”作了如下定义:实体之间是相互作用的,或是通过逻辑关系组合在一起的。系统是一个整体,由相互联系和相互依存的事物组成,它的范围由研究者根据所要解决问题的复杂性而定。

系统的其它定义:81按系统状态是否变化静态系统动态系统投针试验理发馆模型按系统状态的变化与时间的关系连续型系统:系统的状态随时间连续变化离散型系统:系统状态仅在某些时间点上发生变化按有无随机过程确定型系统:系统的输出取决于输入离散型系统:包含随即因素的系统管理系统仿真研究的是:动态离散随机排队系统系统的分类:按系统静态系统动态系统投针试验理发馆模型按系统状态连续型系统82仿真就是利用物理的、数学的模型来类比、模仿现实系统及其演变过程,以寻求过程规律的一种方法。

仿真的基本思想是建立一个试验模型,这个模型包含所研究系统的主要特点.通过对这个实验模型的运行,获得所要研究系统的必要信息。仿真的概念仿真就是利用物理的、数学的模型来类比、模仿现实系统及其演变过831、物理仿真:对实际系统及其过程用功能相似的实物系统去模仿。例如,军事演习、船艇实验、沙盘作业等。物理仿真通常花费较大、周期较长,且在物理模型上改变系统结构和系数都较困难。而且,许多系统无法进行物理仿真,如社会经济系统、生态系统等。Buffon投针实验是物理仿真吗?仿真的方法1、物理仿真:物理仿真通常花费较大、周期较长,且在物理模型上842、数学仿真

数学仿真就是用数学模型使现象再现。表示现象的部分或总体的基本方程和表示自然规律的数学模型全是数学仿真。狭义地讲主要指的是数字仿真。它是将复杂现象作出可以用数字计算机表达的数学模型,从数值上进行各种实验。各种方法随着计算机的进步已广泛地应用起来。因此,所说的仿真主要是指数学仿真。数学仿真-基于模型的实验。Buffon投针实验是数学仿真吗?2、数学仿真数学仿真就是用数学模型使现象再现。表示现象的部85系统仿真方法系统仿真的基本方法是建立系统的数学模型,并将其转换为计算机上实现的仿真模型,然后对模型进行仿真实验。由于连续系统和离散(事件)系统的数学模型有很大差别,所以系统仿真方法基本上分为两大类:连续系统仿真方法离散系统仿真方法在以上两类基本方法的基础上,还有一些用于系统(特别是社会经济和管理系统)仿真的特殊而有效的方法:如蒙特卡洛仿真和系统动力学方法等。系统仿真方法86系统仿真的模型结构(系统仿真的模型包含的系统信息)组成要素变量参数函数关系约束条件目标系统仿真的模型结构(系统仿真的模型包含的系统信息)87系统仿真本质上是由三要素构成的,即系统、系统模型与实验。如将实验置于计算机上进行就是计算机仿真。系统模型计算机建立系统模型建立仿真模型仿真实验图1系统仿真原理图系统仿真本质上是由三要素构成的,即系统、系统模型与实验。如将88系统仿真的建模过程模型的图解结构系统仿真的建模过程模型的图解结构89为什么要在建筑管理中使用仿真技术?传统方法的缺陷难以建立数学方程确定系统指标(如工期、成本和质量等)很难考虑建筑工程中元素之间复杂和动态的相互作用很难反映一些诸如随机性在内的不确定性很难安全和低成本地估算在极端条件下的后果为什么要在建筑管理中使用仿真技术?90系统仿真优点比一般的分析方法(数学方程)容易使用和有效能够被重复使用来分析和评估某个现实系统(如某个建筑工程)的参数构成(如资源分配或调度)比使用直接的试验如实验室(物理模型)或现场试验成本较小比操作真实的系统风险低系统仿真优点91第二章蒙特卡洛仿真蒙特卡洛(MonteCarlo)仿真方法,或称计算机随机模拟方法,是一种基于“随机数”和概率论的计算方法,可以解决静态或动态问题。MonteCarlo名字的由来:MonteCarlo是摩纳哥(Monaco)最大的城市,该城以赌博闻名。数学家VonNeumann用MonteCarlo来命名这种方法,为它蒙上了一层神秘色彩。Monte-Carlo,Monaco第二章蒙特卡洛仿真蒙特卡洛(MonteCarlo)仿真方92MonteCarlo方法的起源:二十世纪四十年代中期,由于科学技术的发展和电子计算机的发明,蒙特卡罗方法作为一种独立的方法被提出来,并首先在核武器的试验与研制中得到了应用,即“曼哈顿计划”。但其基本思想并非新颖,人们在生产实践和科学试验中就已发现,并加以利用。NicholasMetropolis(1915-1999)JohnVonNeumann(1903-1957)

MonteCarlo方法的起源:NicholasMetr93MonteCarlo方法的应用:物理:核物理,热力学与统计物理,粒子输运问题等数学:多重积分、解微分方程、非线性方程组求解等工程领域:真空技术,水力学,激光技术等经济学领域:期权定价、项目管理、投资风险决策等其他领域:化学、医学,生物,生产管理、系统科学、公用事业等方面。随着科学技术的发展,其应用范围将更加广泛。MonteCarlo方法的应用:94MonteCarlo方法的基本思想做独立重复实验,当实验次数充分多时,某一事件出现的频率近似于该事件发生的概率。p/N(N充分大)利用这一方法不仅能估计事件发生的概率,还可以估计系统的一些性能参数,更重要的是它提供了一种实验思考方法,是系统仿真的重要基础。MonteCarlo方法的基本思想95积分问题积分问题96其中,n是落在曲线f(x)之下的点的数量,N所有点的总数。积分问题其中,n是落在曲线f(x)之下的点的数量97Buffon投针实验1768年,法国数学家ComtedeBuffon利用投针实验估计的值dL针与平行线中任一条相交的概率为Buffon投针实验1768年,法国数学家Comtede98

投针实验投针实验99Buffon投针试验从而针线相交的概率为根据上式,若我们做大量的投针试验并记录针与线相交的次数,则由大数定理可以估计出针线相交的概率,从而得到的估计值。针与线的位置关系:

Buffon投针试验从而针线相交的概率为

100例1.Buffon投针问题利用关系式:求出π值其中N为投计次数,n为针与平行线相交次数。这就是古典概率论中著名的蒲丰问题。例1.Buffon投针问题利用关系式:101一些人进行了实验,其结果列于下表:实验者年份投计次数π的实验值沃尔弗(Wolf)185050003.1596斯密思(Smith)185532043.1553福克斯(Fox)189411203.1419拉查里尼(Lazzarini)190134083.1415929实验者年份投计次数π的实验值沃尔弗(Wolf)1850500102基本思想和原理基本思想:当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率、数学期望有关的量时,通过某种试验的方法,得出该事件发生的频率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。

原理:抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。

基本思想和原理基本思想:当所求问题的解是某个事件的概率,或者103

通俗地说,蒙特卡罗方法是用随机试验的方法计算积分,即将所要计算的积分看作服从某种分布密度函数f(r)的随机变量g(r)的数学期望

通过某种试验,得到N个观察值r1,r2,…,rN(用概率语言来说,从分布密度函数f(r)中抽取N个子样r1,r2,…,rN,),将相应的N个随机变量的值g(r1),g(r2),…,g(rN)的算术平均值

作为积分的估计值(近似值)。

通俗地说,蒙特卡罗方法是用随机试验的方法计算积分,即104步骤可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量步骤可以把蒙特卡罗解题归结为三个主要步骤:105构造或描述概率过程对于本身就具有随机性质的问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质的问题。

构造或描述概率过程对于本身就具有随机性质的问题,主要是正确描106实现从已知概率分布抽样构造了概率模型以后,按照这个概率分布抽取随机变量(或随机向量),这一般可以直接由软件包调用,或抽取均匀分布的随机数构造。这样,就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。实现从已知概率分布抽样构造了概率模型以后,按照这个概率分布107建立各种估计量一般说来,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计。建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。建立各种估计量一般说来,构造了概率模型并能从中抽样后,即实108比喻可用民意测验来作一个不严格的比喻。民意测验的人不是征询每一个登记选民的意见,而是通过对选民进行小规模的抽样调查来确定可能的民意。其基本思想是一样的。比喻可用民意测验来作一个不严格的比喻。民意测验的人不是征询每109MonteCarlo方法处理的问题MonteCarlo方法处理的问题可以分两类确定性的数学问题:多重积分、求逆矩阵、解线性代数方程组、解积分方程、解某些偏微分方程边值问题和计算代数方程组、计算微分算子的特征值等等

随机性问题MonteCarlo方法处理的问题MonteCarlo110方法在解决实际问题的时候应用MonteCarlo方法主要有两部分工作:

1、用此方法模拟某一过程时,需要产生各种概率分布的随机变量。

2、用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。

方法在解决实际问题的时候应用MonteCarlo方法主要有111随机数的产生随机数是实现蒙特卡罗模拟的基本工具,而蒙特卡罗模拟的关键是产生优良的随机数。随机数的产生就是抽样问题。可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。在模拟中,需要产生各种概率分布的随机数,而大多数概率分布的随机变量产生均基于均匀分布U(0,1)的随机数。随机数的产生随机数是实现蒙特卡罗模拟的基本工具,而蒙特卡罗模112随机数的取得如果你对随机数有更高的要求,需要自己编辑“随机数生成器”最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)例如在Matlab中,命令“rand()”将产生一个(0,1)中均匀分布的随机数你可以根据需要给随机数一个“种子”,以求不同的数随机数的取得113Matlab的随机数函数均匀分布r=unidrnd(N),-产生1到N间的均匀分布随机数r=unidrnd(N,n,m),产生1到N间的均匀分布随机数矩阵连续均匀分布r=unifrnd(A,B)-产生(A,B)间的均匀分布随机数r=unifrnd(A,B,m,n)产生(A,B)间的均匀分布随机数矩阵Matlab的随机数函数均匀分布114Matlab的随机数函数-正态分布随机数r=normrnd(mu,sigma)r=normrnd(mu,sigma,m)r=normrnd(mu,sigma,m,n)特定分布随机数发生器r=random(‘name’,A1,A2,A3,m,n)Matlab的随机数函数-正态分布随机数115例a=random(‘Normal’,0,1,3,2)a=.-0.43260.2877-1.6656-1.14650.12531.1909例a=random(‘Normal’,0,1,3,2)116精确性由于MonteCarlo方法的随机性,精确性建立在大量的重复模拟上,最后去平均值。对确定值的计算,要估计出样本的个数与精确度之间的关系。对随机过程的模拟,有置信区域的估算等精确性由于MonteCarlo方法的随机性,精确性建立在117方差削减技术对偶变量技术(适用正态分布函数)取一组随机数Z_i,可得模拟值C_i,i=1,2,..n估计值为期平均C^再取Z_i的对偶Z’_i=-Z_i,再生成估计值C’^然后去新的平均值C*=(C^+C’^)/2则varC*=1/2varC^+1/2cov(C^,C’^)<1/2varC^+该技术使计算更稳定方差削减技术对偶变量技术(适用正态分布函数)118两种形式的随机变量:1.离散型随机变量的模拟2.连续型随机变量的模拟两种形式的随机变量:1.离散型随机变量的模拟1191.离散型随机变量的模拟设随机变量的分布律为令将作为区间(0,1)的分点.若随机数有1.离散型随机变量的模拟设随机变量的分布律为120令

则有

据此,可得产生的随机数的具体过程为:

每产生一个(0,1)区间上均匀分布随机数r,若

则令取值.令

则有

据此,可得产生的随机数的具体过程为:121例1:离散型随机变量X有如下分布律:

X012P(x)0.30.30.4设是基于U(0,1)的随机数,令则是具有X分布律的随机变量.例1:离散型随机变量X有如下分布律:1222.连续型随机变量的模拟a.逆变换方法(常用)(InverseTransformMethod)b.舍取方法(Acceptance-RejectionMethod)2.连续型随机变量的模拟a.逆变换方法(常用)123逆变换方法步骤:产生基于U(0,1)的随机数r计算X=F-1(r),则X为服从概率分布F(x)的随机变量逆变换方法步骤:124rrrrrrrr125算法实现许多程序语言中都自带生成随机数的方法,如c中的random()函数,Matlab中的rand()函数等。但这些生成器生成的随机数效果很不一样,比如c中的函数生成的随机数性质就比较差,如果用c,最好自己再编一个程序。Matlab中的rand()函数,经过了很多优化。可以产生性质很好的随机数,可以直接利用。算法实现许多程序语言中都自带生成随机数的方法,如c1262类离散随机变量的问题:问题-:某人每轮向靶子射10箭,已知其击中靶心的概率为25%,问一轮中射中7箭的概率为多少?问题二:有一银行营业点打算添置一台自动存取款机(12小时服务),顾客按一定的间隔时间到来,排队接受服务,先来者先用,后来者后用,顾客不愿在队列中等待太久,否则会离去。管理人员想了解等待时间超过3分钟的顾客的比例为多少,若该比例太大,则考虑再增设一台机器。2类离散随机变量的问题:127问题1的求解方法:1.产生均匀分布随机数0.00~0.99(100个),某个数字出现的概率相等。若产生1000个这样的数,则(1)数值为0.00~0.24大约会有250个,比例大约为0.25(2)数值为0.25~0.99大约会有750个,比例大约为0.752.以每产生一个随机数代表射1箭,若产生的随机数小于0.25,则代表击中靶心,如果产生的随机数大于或等于0.25,则表示没有击中靶心。若实验的次数很多(远大于1000),则击中靶心的频率接近于25%。若实验的次数无限多,则击中靶心的概率等于25%。问题1的求解方法:1283.确定一轮中击中7箭的概率(1)每轮由计算机产生10个均匀分布的随机数Ni(i=1,2,3,…10),代表射10箭(2)其中若Ni小于0.25为击中,记下该轮中击中的次数(3)重复(1)―(2),进行K轮实验(4)找出K轮中所有每轮击中7次的总轮数M,则K轮中每轮击中7箭的频率为M/K,若K趋向无穷大时,M/K为每轮击中7箭的概率。3.确定一轮中击中7箭的概率129问题2的已知数据:1.模拟过程顾客到达排队→使用存取款机→顾客离开2.调查数据观察100位顾客到达间隔时间和使用机器的持续时间,得到如下统计数据:问题2的已知数据:1.模拟过程2.调查数据1303.产生均匀分布的二组随机数产生0-1(0.00-0.99)间隔两组均匀分布的随机数。一组用于模拟顾客到达间隔时间,另一组模拟顾客用机时间。由第一组产生的一个随机数代表当前到达存取款机的一位顾客,若此随机数的值为0.70,通过表2.2-1,可以确定所模拟的该顾客到达的时间与前一位顾客到达时的间隔时间为5分钟。由第二组产生的一个随机数代表正在使用存取款机的一位顾客,若此随机数的值为0.90,通过表2.2-2,可以确定所模拟的该顾客使用存取款机的时间为4分钟。3.产生均匀分布的二组随机数1314.手工模拟步骤与结果(假设模拟开始时间为0)4.手工模拟步骤与结果(假设模拟开始时间为0)132例:列车大约在下午1点离开A站,其规律如下:

列车从A到B途中所需要的平均时间为30分,有2分钟的标准差。如果你要赶的是这趟列车的下一站B,而你到达B站的时间分布为

问你能赶上这列车的概率是多少?离站时间13.0013.0513.10概率0.70.20.1时间13.2813.3013.3213.34概率0.30.40.20.1例:列车大约在下午1点离开A站,其规律如下:离站时133解:需要设置随机变量,包括均值为30,方差为3的正态分布的随机变量。要仿真模拟的是火车离站的时间t1;火车途中的时间t2;你到达车站B的时间t3。

这样你赶上火车的条件是t3≤t1+t2。为仿真模拟这个问题只需要生成t1,t2和t3的值,然后检验这条件。由所给的条件知t1,t2为离散的,而t3为连续的随机变量。解:需要设置随机变量,包括均值为30,方差为3的正态分布的随134以分为时间单位,从t=0的下午一点起算,构造的模型如下其中t2=normrnd(30,3)。计算结果为t1=5,t2=29和t3=30,这样t1+t2=34。在这种场合你比火车提前到达4分钟。但需要指出,这并不是说已经回答了这个问题,要回答这个问题要作多次这样的仿真模拟,记下这些结果,算出能赶上火车的频率。通过足够多次的仿真模拟之后才可以算出能赶上火车的概率。以分为时间单位,从t=0的下午一点起算,构造的模型如下135例:投资可行性分析某港口有一个万吨级泊位,根据长期观察记录,依次到港的两艘船只的间隔时间有如表所示的规律.港口现有一台装卸机,根据其它港口的经验,若用两台装卸机可以节约装卸时间.经过统计,两种情况下的装卸规律下表.例:投资可行性分析港口现有一台装卸机,根据其它港口的经验,若136船只装卸时,按照先到先装卸的原则进行.船到港口,若泊位有空,立即停靠卸货;如泊位不空,则排队等候.船只装卸时,按照先到先装卸的原则进行.船到港口,若泊位有137按照规定,到港船只必须在15-30h内装卸完毕,其中包括等待和装卸时间.若超过30h时,港口每小时支付赔偿费200元;若能少于15h时,每提前1h港口得奖励250元.港口在没有船只装卸时,每小时经济损失为400元,而每艘船在港口每停泊1h损失200元.已知一台装卸机购置与安装费用为60万元,折旧期为10年.每台装卸机每月维修及油料等开支为3000元.请用计算机仿真的方法分析该港口增添第二台装卸机在经济上是否合算?按照规定,到港船只必须在15-30h内装卸完毕,其中包括等138解:增添设备的经济可行性以投资回收期来衡量,若其短于标准投资期,则增添设备是可行的;否则便不可取.投资回收期为τ=⊿k/⊿c,其中⊿k=60万元为增添设备的投资,⊿c是一台装卸机和两台装卸机两种情况下的经营费用之差,即经营费用的节约值。经营费用包

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论