概率模型的随机模拟与蒲丰投针实验
第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 蒲丰抛针实验
抛针问题主要内容是:在平面上等距离的画出一些平行线,向这个平面抛出某一特定长度的针,试求针与任一平行线相交的概率。
显然只有两种可能性:要么针与其中至少一条平行线相交;要么针与所有的平行线都不相交。但是,古典概率无法解决这一个表面上很简单的问题。不过,可以利用几何概率模型算出要求的概率值,正是随处可见的?。