概率模型的随机模拟与蒲丰投针实验第1章模拟1.1 模拟的概念每一个现实系统外部环境之间都存在着一定的数学的或者逻辑的关系,这些关系在系统内部的各个组成部分之间也存在。
对数学、逻辑关系并不复杂的模型,人们一般都可用解析论证和数值计算求解。
但是,许多现实系统的这种数学、逻辑模型十分复杂,例如大多数具有随机因素的复杂系统。
这些系统中的随机性因素很多,一些因素很难甚至不可以用准确的数学公式表述,从而无法对整个系统采用数学解析法求解。
这类实际问题往往可以用模拟的方法解决。
模拟主要针对随机系统进行。
当然,也可以用于确定性系统。
本文讨论的重点是其中的随机模拟。
采用模拟技术求解随机模型,往往需要处理大批量的数据。
因此,为了加速模拟过程,减少模拟误差,通常借助于计算机进行模拟,因此又称为计算机模拟。
计算机模拟就是在已经建立起的数学、逻辑模型的基础之上,通过计算机试验,对一个系统按照一定的决策原则或作业规则,由一个状态变换为另一个状态的行为进行描述和分析。
1.2 模拟的步骤整个模拟过程可以划分为一定的阶段,分步骤进行。
(1)明确问题,建立模型。
在进行模拟之前,首先必须正确地描述待研究的问题,明确规定模拟的目的和任务。
确定衡量系统性能或模拟输出结果的目标函数,然后根据系统的结构及作业规则,分析系统各状态变量之间的关系,以此为基础建立所研究的系统模型。
为了能够正确反映实际问题的本质,可先以影响系统状态发生变化的主要因素建立较为简单的模型,以后再逐步补充和完善。
(2)收集和整理数据资料。
模拟技术的正确运用,往往要大量的输入数据。
在随机模拟中,随机数据仅靠一些观察值是不够的。
应当对具体收集到的随机性数据资料进行认真分析。
确定系统中随机性因素的概率分布特性,以此为依据产生模拟过程所必需的抽样数据。
(3)编制程序,模拟运行。
选择适当的计算机语言。
按照系统的数学、逻辑模型编写计算机程序。
然后可以进行调试性模拟,分析模拟结果是否能够正确地反映现实系统的本质。
并相应修改模型和程序,反复调试之后确定模型。
根据系统的特点及问题的性质设定初始状态,在确定了模拟运行的时间、随机样本量的多少及独立模拟运行次数等之后,就可以开始进行大量的计算机模拟运行,从而获得模拟输出资料。
(4)分析模拟输出的结果。
对模拟的输出结果进行分析,一般包括一下几个方面的内容:模拟结果额统计特性,包括样本均值、方差及置信区间等;灵敏性分析;如果某个输入参数作微小的变化却导致输出结果巨大的改变,则应花费更多的时间和精力对它们求得更精确的估计。
根据前期确定的目标函数,在多种实现方案中选择最优的方案。
1.3 模拟的作用模拟技术广泛的应用于工业企业管理、物资管理、军事后勤系统、排队系统、交通运输系统等众多领域中。
模拟主要有以下作用:(1)可以处理难以用解析法解决的问题。
对于那些很难用解析方法加以处理的问题,模拟是一种有效的技术。
计算机模拟是一种数值试验手段,它可以模仿真实系统随机运行的特性。
将由此特性产生的抽样数据输入到事先编制好的程序中去,让计算机计算出相应的结果,从而得出实际问题的数值解。
(2)对假设和结论进行检验。
在建立数学模型的过程中,常常要对客观问题作一些假设。
这些假设并不一定符合实际,需要通过鉴定。
另外,理论研究的一些结论也往往需要加以检验,如果按照系统实际运行的进行试验,一般需要花费大量的人力、物力、财力和时间,有时甚至是不可能的。
使用计算机模拟技术代替实际系统的反复试验,可以大幅度地减少资源的耗费,快速地积累数据。
同时,经过认真分析计算机模拟出来的输出结果,可对系统的性能作进一步的分析与评价,从而能够确定假设的正确性,改进理论研究的一些成果,改善系统运行的方案等。
(3)对各种方案的评估,选择最优方案。
在模型建立后,人们通过收集、整理和分析有关数据资料,往往可能对该系统制订出多种不同的方案。
对这些不同的方案,可用计算机进行多次模拟,按照既定的目标函数对不同方案进行比较,从中选择最优的实现方案。
1.4 模拟的分类模拟分为动态模拟与静态模拟。
动态模拟又可以分为连续系统模拟和离散事件系统模拟,前者研究系统的状态随时间连续变化的情形,其模型一般是微分方程;后者讨论的是系统状态只在一些离散时间点上,由于事件驱动而变化,其模型一般只能用流程图或网络来表示。
而以蒙特卡罗(Monte Carlo)思想建立起来的蒙特卡罗模拟是典型的静态模拟。
第2章蒙特卡罗模拟2.1 蒙特卡罗模拟的起源蒙特卡罗是摩纳哥的一个城市,以赌博闻名于世界。
蒙特卡罗法借用这一城市的名称是为了象征性地表明该方法的概率统计的特点。
蒙特卡罗模拟是一种随机模拟方法。
以概率和统计理论方法为基础的一种计算方法。
将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解。
由S.M.乌拉姆和J.冯·诺伊曼在20世纪40年代为研制核武器而首先提出。
在这之前,蒙特卡罗方法就已经存在。
1777年,法国科学家蒲丰提出用投针实验的方法求圆周率π,这就是蒙特卡罗模拟最早的雏形。
2.2 蒲丰抛针实验抛针问题主要内容是:在平面上等距离的画出一些平行线,向这个平面抛出某一特定长度的针,试求针与任一平行线相交的概率。
显然只有两种可能性:要么针与其中至少一条平行线相交;要么针与所有的平行线都不相交。
但是,古典概率无法解决这一个表面上很简单的问题。
不过,可以利用几何概率模型算出要求的概率值,正是随处可见的π。
图1 蒲丰投针试验方法假设平行线距离为a ,针长度为l ,针落下后中点为M ,x 则表示中点M 到最近的一条平行线的距离,ϕ表示针与平行线的交角。
那么,不难得到:020a x ϕπ⎧≤≤⎪⎨⎪≤≤⎩ 从几何的角度看,上述方程组代表了一个矩形区域Ω。
图2 蒲丰投针试验原理 这个矩形的面积为:()2a S πΩ= 由于针与平行线相交,则M 必定与最近的一条平行线相交,那么相交的充分必要条件是:0sin 20l x A ϕϕπ⎧≤≤⎪=⎨⎪≤≤⎩A 在图2中显示为Ω中的一个小区域,它的面积为:()01sin 2S A l d l πϕϕ==⎰ 由概率的几何意义,针与任一平行线相交的概率是:()()212S A l l P S a a ππ===Ω 从上面概率的表达式可以看出,只要l 跟a 的比值不变,概率P 的值也不变。
由于P 表达式中含有π,可以利用抛针试验得到的结果去估算π的值。
原理是尽量加大试验次数N ,记录针与平行线相交的次数n ,则P 的近似值是n N。
代入的P 表达式: 2lN anπ≈ 表1 抽针实验数据表蒲丰抛针试验揭示了蒙特卡罗方法的基本思想,即在大数定理的保证下,利用事件发生的“频率”作为事件的“概率”的近似值。
只要设计一个随机试验,使一个事件的概率与某未知数有关,然后通过重复试验,以频率近似表示概率,即可求得该未知数的近似解。
2.3 蒙特卡罗模拟的基本思想及其发展当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以 通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。
这就是蒙特卡罗方法的基本思想。
蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。
它是以一个概率模型为基础,按照这个模型所描绘的过程,通过计算机直接进行抽样试验得出结果,作为问题的近似解。
从理论上来说,蒙特卡罗方法需要大量的实验。
实验次数越多,所得到的结果才越精确。
计算机技术的发展,使得蒙特卡罗方法在最近10年得到快速的普及。
现代的蒙特卡罗方法,已经不必亲自动手做实验,而是借助计算机的高速运转能力,使得原本费时费力的实验过程,变成了快速和轻而易举的事情。
蒙特卡罗方法有很强的适应性,问题的几何形状的复杂性对它的影响不大。
蒙特卡罗方法的收敛性是指概率意义下的收敛,因此问题维数的增加不会影响它的收敛速度,而且存贮单元也很省,这些是用该方法处理大型复杂问题时的优势。
它不仅较好地解决了多重积分计算、微分方程求解、积分方程求解、特征值计算和非线性方程组求解等高难度和复杂的数学计算问题,而且在统计物理、核物理、真空技术、系统科学、信息科学、公用事业、地质、医学,可靠性及计算机科学等广泛的领域都得到成功的应用。
借助计算机技术,蒙特卡罗方法实现了两大优点:一是简单。
省却了繁复的数学报导和演算过程,使得一般人也能够理解和掌握;二是快速。
简单和快速,是蒙特卡罗方法在现代项目管理中获得应用的技术基础。
2.4蒙特卡罗模拟一般步骤(1)构造或描述概率过程:对于本身就具有随机性质的问题,主要是正确描述和模拟这个概率过程。
对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解,即要将不具有随机性质的问题转化为随机性质的问题。
(2)实现从已知概率分布抽样:构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量,就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。
最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。
随机数就是具有这种均匀分布的随机变量。
产生随机数的问题,就是从这个分布的抽样问题。
在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。
另一种方法是用数学递推公式产生。
这样产生的序列,与真正的随机数序列不同,所以称为伪随机数。
不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。
由已知分布随机抽样有各种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。
由此可见,随机数是我们实现蒙特卡罗模拟的基本工具。
(3)建立各种估计量:一般说来,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,并称它为无偏估计。
建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。