原文出處: 王曉勇 蒙特卡羅(Monte Carlo)方法,也稱為計(jì)算機(jī)隨機(jī)模擬方法,是一種基于”隨機(jī)數(shù)”的計(jì)算方法。 一、起源這一方法源于美國在第二次世界大戰(zhàn)進(jìn)研制原子彈的”曼哈頓計(jì)劃”。Monte Carlo方法創(chuàng)始人主要是這四位:Stanislaw Marcin Ulam、Enrico Fermi、John von Neumann(學(xué)計(jì)算機(jī)的肯定都認(rèn)識這個(gè)牛人吧)和 Nicholas Metropolis。
蒙特卡羅方法的名字來源于摩納哥的一個(gè)城市蒙地卡羅,該城市以賭博業(yè)聞名,而蒙特·卡羅方法正是以概率為基礎(chǔ)的方法。與它對應(yīng)的是確定性算法。 二、解決問題的基本思路Monte Carlo方法的基本思想很早以前就被人們所發(fā)現(xiàn)和利用。早在17世紀(jì),人們就知道用事件發(fā)生的”頻率”來決定事件的”概率”。19世紀(jì)人們用投針試驗(yàn)的方法來決定圓周率π。本世紀(jì)40年代電子計(jì)算機(jī)的出現(xiàn),特別是近年來高速電子計(jì)算機(jī)的出現(xiàn),使得用數(shù)學(xué)方法在計(jì)算機(jī)上大量、快速地模擬這樣的試驗(yàn)成為可能。 為了說明Monte Carlo方法的基本思想,讓我們先來看一個(gè)簡單的例子,從此例中你可以感受如何用Monte Carlo方法考慮問題。 例1:比如y=x^2(對x)從0積到1。結(jié)果就是下圖紅色部分的面積: 注意到函數(shù)在(1,1)點(diǎn)的取值為1,所以整個(gè)紅色區(qū)域在一個(gè)面積為1的正方形里面。所以所求區(qū)域的面積即為 在正方形區(qū)域內(nèi)任取點(diǎn),點(diǎn)落在所求區(qū)域的概率。這個(gè)限制條件是y^2。用matlab模擬,做一百萬次(即共取1000000個(gè)點(diǎn)),結(jié)果為0.3328。 1)總結(jié)Monte Carlo方法的基本思想:所求解問題是某隨機(jī)事件A出現(xiàn)的概率(或者是某隨機(jī)變量B的期望值)。通過某種“實(shí)驗(yàn)”的方法,得出A事件出現(xiàn)的頻率,以此估計(jì)出A事件出現(xiàn)的概率(或者得到隨機(jī)變量B的某些數(shù)字特征,得出B的期望值)。 2)工作過程
3)蒙特卡羅解題三個(gè)主要步驟: ① 構(gòu)造或描述概率過程: 對于本身就具有隨機(jī)性質(zhì)的問題,如粒子輸運(yùn)問題,主要是正確描述和模擬這個(gè)概率過程,對于本來不是隨機(jī)性質(zhì)的確定性問題,比如計(jì)算定積分,就必須事先構(gòu)造一個(gè)人為的概率過程,它的某些參量正好是所要求問題的解。即要將不具有隨機(jī)性質(zhì)的問題轉(zhuǎn)化為隨機(jī)性質(zhì)的問題。 ② 實(shí)現(xiàn)從已知概率分布抽樣: 構(gòu)造了概率模型以后,由于各種概率模型都可以看作是由各種各樣的概率分布構(gòu)成的,因此產(chǎn)生已知概率分布的隨機(jī)變量(或隨機(jī)向量),就成為實(shí)現(xiàn)蒙特卡羅方法模擬實(shí)驗(yàn)的基本手段,這也是蒙特卡羅方法被稱為隨機(jī)抽樣的原因。最簡單、最基本、最重要的一個(gè)概率分布是(0,1)上的均勻分布(或稱矩形分布)。隨機(jī)數(shù)就是具有這種均勻分布的隨機(jī)變量。隨機(jī)數(shù)序列就是具有這種分布的總體的一個(gè)簡單子樣,也就是一個(gè)具有這種分布的相互獨(dú)立的隨機(jī)變數(shù)序列。產(chǎn)生隨機(jī)數(shù)的問題,就是從這個(gè)分布的抽樣問題。在計(jì)算機(jī)上,可以用物理方法產(chǎn)生隨機(jī)數(shù),但價(jià)格昂貴,不能重復(fù),使用不便。另一種方法是用數(shù)學(xué)遞推公式產(chǎn)生。這樣產(chǎn)生的序列,與真正的隨機(jī)數(shù)序列不同,所以稱為偽隨機(jī)數(shù),或偽隨機(jī)數(shù)序列。不過,經(jīng)過多種統(tǒng)計(jì)檢驗(yàn)表明,它與真正的隨機(jī)數(shù),或隨機(jī)數(shù)序列具有相近的性質(zhì),因此可把它作為真正的隨機(jī)數(shù)來使用。由已知分布隨機(jī)抽樣有各種方法,與從(0,1)上均勻分布抽樣不同,這些方法都是借助于隨機(jī)序列來實(shí)現(xiàn)的,也就是說,都是以產(chǎn)生隨機(jī)數(shù)為前提的。由此可見,隨機(jī)數(shù)是我們實(shí)現(xiàn)蒙特卡羅模擬的基本工具。 建立各種估計(jì)量: 一般說來,構(gòu)造了概率模型并能從中抽樣后,即實(shí)現(xiàn)模擬實(shí)驗(yàn)后,我們就要確定一個(gè)隨機(jī)變量,作為所要求的問題的解,我們稱它為無偏估計(jì)。 ③ 建立各種估計(jì)量,相當(dāng)于對模擬實(shí)驗(yàn)的結(jié)果進(jìn)行考察和登記,從中得到問題的解。 例如:檢驗(yàn)產(chǎn)品的正品率問題,我們可以用1表示正品,0表示次品,于是對每個(gè)產(chǎn)品檢驗(yàn)可以定義如下的隨機(jī)變數(shù)Ti,作為正品率的估計(jì)量: 于是,在N次實(shí)驗(yàn)后,正品個(gè)數(shù)為: 顯然,正品率p為: 不難看出,Ti為無偏估計(jì)。當(dāng)然,還可以引入其它類型的估計(jì),如最大似然估計(jì),漸進(jìn)有偏估計(jì)等。但是,在蒙特卡羅計(jì)算中,使用最多的是無偏估計(jì)。 用比較抽象的概率語言描述蒙特卡羅方法解題的手續(xù)如下:構(gòu)造一個(gè)概率空間(W ,A,P),其中,W 是一個(gè)事件集合,A是集合W 的子集的s 體,P是在A上建立的某個(gè)概率測度;在這個(gè)概率空間中,選取一個(gè)隨機(jī)變量q (w ),w ? W ,使得這個(gè)隨機(jī)變量的期望值 正好是所要求的解Q ,然后用q (w )的簡單子樣的算術(shù)平均值作為Q 的近似值。 三、本方法特點(diǎn)直接追蹤粒子,物理思路清晰,易于理解。
另一類形式與Monte Carlo方法相似,但理論基礎(chǔ)不同的方法-”擬蒙特卡羅方法”(Quasi-Monte Carlo方法)-近年來也獲得迅速發(fā)展。我國數(shù)學(xué)家華羅庚、王元提出的”華-王”方法即是其中的一例。這種方法的基本思想是”用確定性的超均勻分布序列(數(shù)學(xué)上稱為Low Discrepancy Sequences)代替Monte Carlo方法中的隨機(jī)數(shù)序列。對某些問題該方法的實(shí)際速度一般可比Monte Carlo方法提出高數(shù)百倍,并可計(jì)算精確度。 蒙特卡羅方法在金融工程學(xué),宏觀經(jīng)濟(jì)學(xué),計(jì)算物理學(xué)(如粒子輸運(yùn)計(jì)算、量子熱力學(xué)計(jì)算、空氣動力學(xué)計(jì)算)等領(lǐng)域應(yīng)用廣泛。 四、Monte Carlo方法的計(jì)算程序關(guān)于蒙特卡羅方法的計(jì)算程序已經(jīng)有很多,如:EGS4、FLUKA、ETRAN、ITS、MCNP、GEANT等。這些程序大多經(jīng)過了多年的發(fā)展,花費(fèi)了幾百人年的工作量。除歐洲核子研究中心(CERN)發(fā)行的GEANT主要用于高能物理探測器響應(yīng)和粒子徑跡的模擬外,其它程序都深入到低能領(lǐng)域,并被廣泛應(yīng)用。就電子和光子輸運(yùn)的模擬而言,這些程序可被分為兩個(gè)系列:
EGS4和ETRAN分別為兩個(gè)系列的基礎(chǔ),其它程序都采用了它們的核心算法。 ETRAN(for Electron Transport)由美國國家標(biāo)準(zhǔn)局輻射研究中心開發(fā),主要模擬光子和電子,能量范圍可從1KeV到1GeV。 ITS(The integrated TIGER Series of Coupled Electron/Photon Monte Carlo Transport Codes )是由美國圣地亞哥(Sandia)國家實(shí)驗(yàn)室在ETRAN的基礎(chǔ)上開發(fā)的一系列模擬計(jì)算程序,包括TIGER 、CYLTRAN 、ACCEPT等,它們的主要差別在于幾何模型的不同。 TIGER研究的是一維多層的問題,CYLTRAN研究的是粒子在圓柱形介質(zhì)中的輸運(yùn)問題,ACCEPT是解決粒子在三維空間輸運(yùn)的通用程序。 FLUKA 是一個(gè)可以模擬包括中子、電子、光子和質(zhì)子等30余種粒子的大型MC計(jì)算程序,它把EGS4容納進(jìn)來以完成對光子和電子輸運(yùn)過程的模擬,并且對低能電子的輸運(yùn)算法進(jìn)行了改進(jìn)。 五、Monte Carlo方法相關(guān)的一些資料
參考資料: 1、http://baike.baidu.com/view/1675475.htm?fr=ala0_1 |
|