南山矿工分享 http://blog.sciencenet.cn/u/dengwb

博文

蒙特卡罗(Monte Carlo method)介绍

已有 8885 次阅读 2009-11-6 17:03 |个人分类:计算研究|系统分类:科研笔记| 蒙特卡罗

蒙特卡罗模型(Monte Carlo method),又称统计模拟法、随机抽样技术。由S.M.乌拉姆和J.·诺伊曼在20世纪40年代为研制核武器而首先提出 。在这之前,蒙特卡罗方法就已经存在。1777年,法国Buffon提出用投针实验的方法求圆周率。这被认为是蒙特卡罗方法的起源。是一种以概率统计理论为指导的非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。蒙特卡罗(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于随机数的计算方法。这一方法源于美国在第一次世界大战进研制原子弹的曼哈顿计划。该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。而蒙特·卡罗方法正是以概率为基础的方法。考虑平面上的一个边长为1的正方形及其内部的一个形状不规则的图形,如何求出这个图形的面积呢?Monte Carlo方法是这样一种随机化的方法:向该正方形随机地投掷N个点落于图形内,则该图形的面积近似为M/N

 

蒙特卡罗模型的基本思想是,为了求解数学、物理、工程技术以及管理等方面的问题 ,首先建立一个概率模型或随机过程,使它们的参数,如概率分布或数学期望等问题的解;然后通过对模型或过程的观察或抽样试验来计算所求参数的统计特征,并用算术平均值作为所求解的近似值。对于随机性问题,有时还可以根据实际物理背景的概率法则,用电子计算机直接进行抽样试验,从而求得问题的解答。从理论上来说,蒙特卡罗方法需要大量的实验。实验次数越多,所得到的结果才越精确。

 

  科技计算中的问题比这要复杂得多。比如金融衍生产品(期权、期货、掉期等)的定价及交易风险估算,问题的维数(即变量的个数)可能高达数百甚至数千。对这类问题,难度随维数的增加呈指数增长,这就是所谓的维数的灾难”(Course Dimensionality),传统的数值方法难以对付(即使使用速度最快的计算机)。Monte Carlo方法能很好地用来对付维数的灾难,因为该方法的计算复杂性不再依赖于维数。以前那些本来是无法计算的问题现在也能够计算量。为提高方法的效率,科学家们提出了许多所谓的方差缩减技巧。

另一类形式与Monte Carlo方法相似,但理论基础不同的方法—“拟蒙特卡罗方法”(Quasi-Monte Carlo方法)—近年来也获得迅速发展。我国数学家华罗庚、王元提出的方法即是其中的一例。这种方法的基本思想是用确定性的超均匀分布序列(数学上称为Low Discrepancy Sequences)代替Monte Carlo方法中的随机数序列。对某些问题该方法的实际速度一般可比Monte Carlo方法提出高数百倍,并可计算精确度。

 

蒙特卡罗解题三个主要步骤:

 

第一步:构造或描述概率过程:

对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质的问题。

第二步:实现从已知概率分布抽样

构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。随机数就是具有这种均匀分布的随机变量。随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。由已知分布随机抽样有各种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。由此可见,随机数是我们实现蒙特卡罗模拟的基本工具。

第三步:建立各种估计量

一般说来,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计。建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。

 

蒙特卡罗方法与一般计算方法有很大区别,一般计算方法对于解决多维或因素复杂的问题非常困难,而蒙特卡罗方法对于解决这方面的问题却比较简单。其特点如下:

· 直接追踪粒子,物理思路清晰,易于理解。

· 采用随机抽样的方法,较真切的模拟粒子输运的过程,反映了统计涨落的规律。

· 不受系统多维、多因素等复杂性的限制,是解决复杂系统粒子输运问题的好方法。



https://blog.sciencenet.cn/blog-322184-269095.html

上一篇:自信心对人行为能力的影响
下一篇:早起的鸟儿有虫吃
收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-10-19 22:11

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部