蒙特卡罗模型是一种随机模拟方法。以机率和统计理论方法为基础的一种计算方法。将所求解的问题同一定的机率模型相联繫,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象徵性地表明这一方法的机率统计特徵,故借用赌城蒙特卡罗命名。
又称统计模拟法、随机抽样技术。由S.M.乌拉姆和J.冯·诺伊曼在20世纪40年代为研製核武器而首先提出 。在这之前,蒙特卡罗方法就已经存在。1777年,法国Buffon提出用投针实验的方法求圆周率π,这被认为是蒙特卡罗方法的起源。
基本介绍
- 中文名:蒙特卡罗模型
- 外文名:Monte Carlo model
- 又称:统计模拟法、随机抽样技术
- 起源:17世纪
- 模型:DLA、KMC、MCS模型
- 套用领域:数学、物理、化学等
蒙特卡罗法
蒙特卡罗法是一种以抽样和随机数的产生为基础的随机性方法,因此也称为随机抽样法、计算机随机模拟法等。蒙特卡罗方法的基本原理是通过数字模拟试验,得到所要求解的出现某种事件的机率,作为问题的近似解。很久之前人们就已经开始使用蒙特卡罗方法来解决问题了,早在17世纪,发生事件的机率是用发生事件的频率来决定的。在20世纪计算机的使用,使得这样的实验可以大量快速的进行模拟。近年来,随着蒙特卡罗方法不仅被用于数学、物理、化学等领域,还套用于核科学与技术、机械工程、天文学和仪器科学与技术等。该法产生了不同的分支,有直接蒙特卡罗法,动力学蒙特卡罗法等。
蒙特卡罗模型
DLA模型
DLA模型早期的蒙特卡罗模型虽然考虑了原子间的相互作用和原子的扩散等因素,但由于模型过于简单而没有得以发展下去。1981年Witten等人在Eden模型的基础上提出了DLA模型,即表面扩散限制聚集模型,很好的描述了薄膜的分形生长现象。
此模型中粒子的运动过程如下:首先将一个粒子放入基底中,在距离第一个粒子较远的区域放入第二个粒子,粒子在基底做无规则运动,当到达第一个粒子的邻近位置时停止运动,粘附在第一个粒子上,与其结合为一个原子团簇。之后放入第三个粒子,同样进行上述步骤,粒子的所有运动都是随机的。不断重複这个过程最终在基底形成岛。但是DLA模型也较简单,粒子一旦吸附在其他粒子上就稳定不再扩散,没有考虑基底温度、入射能量和杂质等对薄膜表面形态的影响,不能模拟高温的薄膜生长。为了模拟较高温度的薄膜生长提出了扩展的DLA模型,考虑了沉积原子沿岛边缘的扩散过程。
MCS模型
MCS模型是基于DLA模型发展的,Bruschi等人充分考虑了实际条件,在模拟过程中将原子分为沉积原子、扩散原子和脱附原子三类,并且根据相应的速率来计算原子发生沉积、扩散或是脱附的机率,原子运动过程中克服的位能用Voter理论来计算。但是该模型没有考虑原子与最邻近和次邻近原子的相互作用。以MCS模型为基础,考虑不同的影响因素,发展了其他特定的薄膜生长模型。
KMC模型
KMC模型是将分子动力学(MD)同蒙特卡罗模型(MC)相结合的动力学蒙特卡罗模型(KMC),可以很好的模拟大面积薄膜生长。套用KMC模型己经成功的模拟了化学气相沉积法的薄膜生长,如模拟Si薄膜生长、模拟金刚石薄膜生长过程等。KMC模型也可以模拟套用物理气相沉积法的薄膜生长,例如模拟ZnO薄膜生长、模拟金属纳米岛的生长等。
蒙特卡罗模型的基本思想
它的基本思想是,为了求解数学、物理、工程技术以及管理等方面的问题 ,首先建立一个机率模型或随机过程,使用相应的参数,得到某些问题(如机率分布或数学期望等问题)的解;然后通过对模型或过程的观察或抽样试验来计算所求参数的统计特徵,并用算术平均值作为所求解的近似值。
对于随机性问题,有时还可以根据实际物理背景的机率法则,用电子计算机直接进行抽样试验,从而求得问题的解答
蒙特卡罗模型的发展运用
从理论上来说,蒙特卡罗方法需要大量的实验。实验次数越多,所得到的结果才越精确。以上Buffon的投针实验为例、历史上的记录如下表1。
表1 投放实验历史情况

从表中数据可以看到,一直到公元20世纪初期,儘管实验次数数以千计,利用蒙特卡罗方法所得到的圆周率∏值,还是达不到公元5世纪祖沖之的推算精度。这可能是传统蒙特卡罗方法长期得不到推广的主要原因。
计算机技术的发展,使得蒙特卡罗方法在最近10年得到快速的普及。现代的蒙特卡罗方法,已经不必亲自动手做实验,而是藉助计算机的高速运转能力,使得原本费时费力的实验过程,变成了快速和轻而易举的事情。它不但用于解决许多複杂的科学方面的问题,也被项目管理人员经常使用。
藉助计算机技术,蒙特卡罗方法实现了两大优点:
一是简单,省却了繁複的数学报导和演算过程,使得一般人也能够理解和掌握;
二是快速。简单和快速,是蒙特卡罗方法在现代项目管理中获得套用的技术基础。
蒙特卡罗方法有很强的适应性,问题的几何形状的複杂性对它的影响不大。该方法的收敛性是指机率意义下的收敛,因此问题维数的增加不会影响它的收敛速度,而且存贮单元也很省,这些是用该方法处理大型複杂问题时的优势。
因此,随着电子计算机的发展和科学技术问题的日趋複杂,蒙特卡罗方法的套用也越来越广泛。它不仅较好地解决了多重积分计算、微分方程求解、积分方程求解、特徵值计算和非线性方程组求解等高难度和複杂的数学计算问题,而且在统计物理、核物理、真空技术、系统科学 、信息科学 、公用事业、地质、医学,可靠性及计算机科学等广泛的领域都得到成功的套用。
数值计算中蒙特卡罗方法的步骤
1、依据机率分布ψ(x)不断生成随机数x, 并计算f(x)
由于随机数性质,每次生成的x的值都是不确定的,为区分起见,我们可以给生成的x赋予下标。如xi表示生成的第i个x。生成了多少个x,就可以计算出多少个f(x)的值。
2、将这些f(x)的值累加,并求平均值 例如我们共生成了N个x,这个步骤用数学式子表达就是
3、到达停止条件后退出
常用的停止条件有两种,一种是设定最多生成N个x,数量达到后即退出,另一种是检测计算结果与真实结果之间的误差,当这一误差小到某个範围之内时退出。
4、误差分析
这种方法得到的结果是随机变数,因此,在给出点估计后,还需要给出此估计值的波动程度及区间估计。严格的误差分析首先要从证明收敛性出发,再计算理论方差,最后用样本方差来替代理论方差。
项目管理中蒙特卡罗模拟方法的一般步骤
1、对每一项活动,输入最小、最大和最可能估计数据,并为其选择一种合适的先验分布模型;
2、计算机根据上述输入,利用给定的某种规则,快速实施充分大量的随机抽样;
3、对随机抽样的数据进行必要的数学计算,求出结果;
4、对求出的结果进行统计学处理,求出最小值、最大值以及数学期望值和单位标準偏差;
5、根据求出的统计学处理数据,让计算机自动生成机率分布曲线和累积机率曲线(通常是基于常态分配的机率累积S曲线);
6、依据累积机率曲线进行项目风险分析。