蒙特卡罗算法

  • 格式:doc
  • 大小:108.00 KB
  • 文档页数:3

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一阶段:算法

——蒙特卡洛算法

蒙特卡罗方法(MC )(Monte Carlo ):

蒙特卡罗(Monte Carlo )方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第二次世界大战进行研制原子弹的“曼哈顿计划”。该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo —来命名这种方法,为它蒙上了一层神秘色彩。 蒙特卡罗方法的基本原理及思想如下:

当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。

可以把蒙特卡罗解题归结为三个主要步骤:

构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。 例. 蒲丰氏问题

为了求得圆周率π值,在十九世纪后期,有很多人作了这样的试验:将长为2l 的一根针任意投到地面上,用针与一组相间距离为2a ( l <a )的平行线相交的频率代替概率P ,再利用准确的关系式:

2l P a π= 求出π值 22l l N pa a n

π=≈ 其中N为投计次数,n 为针与平行线相交次数。这就是古典概率论中著名的蒲丰氏问题。

一些人进行了实验,其结果列于下表 : 设针投到地面上的位置可以用一组参数(x ,θ

)来描述,x 为针中心实验者

年份 投计次数 π的实验值 沃尔弗(Wolf)

1850 5000 3.1596 斯密思(Smith)

1855 3204 3.1553 福克斯(Fox)

1894 1120 3.1419 拉查里尼(Lazzarini) 1901 3408 3.1415929

的坐标,θ为针与平行线的夹角,如图所示。

任意投针,就是意味着x 与θ都是任意取的,但x 的范围限于[0,a ],夹角θ的范围限于[0,π]。在此情况下,针与平行线相交的数学条件是

如何产生任意的(x ,θ)?x 在[0,a ]上任意取值,表示x 在[0,a ]上是均匀分布的,其分布密度函数为: 类似地,θ的分布密度函数为:

因此,产生任意的(x ,θ)的过程就变成了由f 1(x )抽样x 及由f 2(θ)抽样θ的过程了。由此得到:

其中ξ1,ξ2均为(0,1)上均匀分布的随机变量。

每次投针试验,实际上变成在计算机上从两个均匀分布的随机变量中抽样得到(x ,θ),然后定义描述针与平行线相交状况的随机变量s (x ,θ),为

如果投针N次,则 是针与平行线相交概率P的估计值。事实上,

于是有

针在平行线间的位置

11/,0()0,a x a f x ≤≤⎧=⎨⎩其他21/,0()0,f πθπθ≤≤⎧=⎨⎩其他21πξθξ==a x 1,sin (,)0,x l s x θθ≤⋅⎧=⎨⎩当其他

11(,)N

N i i i s s x N θ==∑a l a dx d dxd f x f x s P l ππθθθθθπ2)()(),(sin 0021===⎰⎰⎰⎰22N

l l aP as π=≈

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

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

用比较抽象的概率语言描述蒙特卡罗方法解题的步骤如下:构造一个概率空间(W ,A,P),其中,W 是一个事件集合,A 是集合W 的子集,P 是在A 上建立的某个概率测度;在这个概率空间中,选取一个随机变量q (w ), 使得这个随机变量的期望值正好是所要求的解Q ,然后用q (w )的简单子样的算术平均值作为Q 的近似值。

举个例子就是97 年的A 题,每个零件都有自己的标定值,也都有自己的容差等级,而求解最优的组合方案将要面对着的是一个极其复杂的公式和108 种容差选取方案,根本不可能去求解析解,那如何去找到最优的方案呢?随机性模拟搜索最优方案就是其中的一种方法,在每个零件可行的区间中按照正态分布随机的选取一个标定值和选取一个容差值作为一种方案,然后通过蒙特卡罗算法仿真出大量的方案,从中选取一个最佳的。

另一个例子就是2003年的彩票问题第二问,要求设计一种更好的方案,首先方案的优劣取决于很多复杂的因素,同样不可能刻画出一个模型进行求解,只能靠随机仿真模拟。

蒙特卡罗方法的计算程序:

关于蒙特卡罗方法的计算程序已经有很多,如:EGS4、FLUKA 、ETRAN 、ITS 、MCNP 、GEANT 等。这些程序大多经过了多年的发展,花费了巨大的工作量。除欧洲核子研究中心(CERN )发行的GEANT 主要用于高能物理探测器响应和粒子径迹的模拟外,其它程序都深入到低能领域,并被广泛应用。

注:1.关于97年和03年的那两个题自己去网上查资料。

2.只是一部分关于蒙特卡罗算法的知识,希望自己可以找更多的与此有关的知识学习,希望在讨论的时候我们可以有自己的独特见解。

3.如果自己有更好的学习材料,我们可以一起分享。

加油!To be Number.1!

整理者:赵媛媛

学习时间:2010年11月29号-2010年12月5号

0()()g g r f r dr ∞<>=⎰11()N

N i i g g r N ==∑