蒙特卡羅(Monte Carlo)方法,又稱隨機抽樣或統計實驗方法,屬於計算數學的一個分支,它是在本世紀四十年代中期為了適應當時原子能事業的發展而發展起來的。
傳統的經驗方法由於不能逼近真實的物理過程,很難得到滿意的結果,而蒙特卡羅方法由於能夠真實地類比實際物理過程,故解決問題與實際非常符合,可以得到很圓滿的結果。這也是我們採用該方法的原因。
蒙特卡羅方法的基本原理及思想如下: 當所要求解的問題是某種事件出現的機率,或者是某個隨機變數的期望值時,它們可以通過某種“實驗”的方法,得到這種事件出現的頻率,或者這個隨機變數的平均值,並用它們作為問題的解。這就是蒙特卡羅方法的基本思想。蒙特卡羅方法通過抓住事物運動的幾何數量和幾何特徵,利用數學方法來加以類比,即進行一種數字類比實驗。它是以一個機率模型為基礎,按照這個模型所描繪的過程,通過類比實驗的結果,作為問題的近似解。可以把蒙特卡羅解題歸結為三個主要步驟:構造或描述機率過程;實現從已知機率分布抽樣;建立各種估計量。
蒙特卡羅解題三個主要步驟:
構造或描述機率過程: 對於本身就具有隨機性質的問題,如粒子輸運問題,主要是正確描述和類比這個機率過程,對於本來不是隨機性質的確定性問題,比如計算定積分,就必須事先構造一個人為的機率過程,它的某些參量正好是所要求問題的解。即要將不具有隨機性質的問題轉化為隨機性質的問題。
實現從已知機率分布抽樣: 構造了機率模型以後,由於各種機率模型都可以看作是由各種各樣的機率分布構成的,因此產生已知機率分布的隨機變數(或隨機向量),就成為實現蒙特卡羅方法類比實驗的基本手段,這也是蒙特卡羅方法被稱為隨機抽樣的原因。最簡單、最基本、最重要的一個機率分布是(0,1)上的均勻分布(或稱矩形分布)。隨機數就是具有這種均勻分布的隨機變數。隨機數序列就是具有這種分布的總體的一個簡單子樣,也就是一個具有這種分布的相互獨立的隨機變數序列。產生隨機數的問題,就是從這個分布的抽樣問題。在電腦上,可以用物理方法產生隨機數,但價格昂貴,不能重複,使用不便。另一種方法是用數學遞推公式產生。這樣產生的序列,與真正的隨機數序列不同,所以稱為偽隨機數,或偽隨機數序列。不過,經過多種統計檢驗表明,它與真正的隨機數,或隨機數序列具有相近的性質,因此可把它作為真正的隨機數來使用。由已知分布隨機抽樣有各種方法,與從(0,1)上均勻分布抽樣不同,這些方法都是藉助於隨機序列來實現的,也就是說,都是以產生隨機數為前提的。由此可見,隨機數是我們實現蒙特卡羅類比的基本工具。 建立各種估計量: 一般說來,構造了機率模型並能從中抽樣後,即實現類比實驗後,我們就要確定一個隨機變數,作為所要求的問題的解,我們稱它為無偏估計。
建立各種估計量,相當於對類比實驗的結果進行考察和登記,從中得到問題的解。 例如:檢驗產品的正品率問題,我們可以用1表示正品,0表示次品,於是對每個產品檢驗可以定義如下的隨機變數Ti,作為正品率的估計量: 於是,在N次實驗後,正品個數為: 顯然,正品率p為: 不難看出,Ti為無偏估計。當然,還可以引入其它類型的估計,如最大似然估計,漸進有偏估計等。但是,在蒙特卡羅計算中,使用最多的是無偏估計。 用比較抽象的機率語言描述蒙特卡羅方法解題的手續如下:構造一個機率空間(W ,A,P),其中,W 是一個事件集合,A是集合W 的子集的s 體,P是在A上建立的某個機率測度;在這個機率空間中,選取一個隨機變數q (w ),w Î W ,使得這個隨機變數的期望值 正好是所要求的解Q ,然後用q (w )的簡單子樣的算術平均值作為Q 的近似值。
蒙特卡羅方法與一般計算方法有很大區別,一般計算方法對於解決多維或因素複雜的問題非常困難,而蒙特卡羅方法對於解決這方面的問題卻比較簡單。其特點如下:
· 直接追蹤粒子,物理思路清晰,易於理解。
· 採用隨機抽樣的方法,較真切的類比粒子輸運的過程,反映了統計漲落的規律。
· 不受系統多維、多因素等複雜性的限制,是解決複雜系統粒子輸運問題的好方法。
· MC程式結構清晰簡單。
· 研究人員採用MC方法編寫程式來解決粒子輸運問題,比較容易得到自己想得到的任意中間結果,應用靈活性強。
· MC方法主要弱點是收斂速度較慢和誤差的機率性質,其機率誤差正比於,如果單純以增大抽樣粒子個數N來減小誤差,就要增加很大的計算量。
近十年來,蒙特卡羅方法發展很快,從1983年到1988年期刊論文數量增長了五倍,有幾本好書是關於電子¾ 光子蒙特卡羅問題的[注1],蒙特卡羅方法的代碼被認為是黑匣子,它已成為計算數學中不可缺少的組成部分,這主要是因為以下原因:
· 傳統的分析方法受到了問題複雜性的限制。
· MC方法直觀,對實驗者很有吸引力。
· 電腦變得更快更便宜。
· 量子理論的發展為我們提供了輻射與物質相互作用的截面資料。
[注1]:
· I.Lux and L.Koblinger,MONTE CARLO PARTICLE TRANSPORT METHODS:MEUTRON AND PHOTO CALCULATIONS (CRC Press,1991).
· R.L.Morin(Editor),MONTE CARLO SIMULATION IN THE RADIOLOGICAL SCIENCES (CRC Press,1988).[Contributors: H.-P. Chan, K.Doi, J.E.Goin, R.L.Morin, R.Nath, D.E.Raeside,J.C.Widman and J.F.Williamson] · T.M.Jenkins, W.R.Nelson, A.Rindi, A.E.Nahum and D.W.O.Rogers (Editors), MONTE CARLO TRANSPORT OF ELECTRONS AND PHOTOS (Plenum Press,1988). [Contributors: P.Andro, M.J.Berger, A.F.Bielajew, A.Del Guerra, B.Grosswendt, J.Halbleib, A.Ito, T.M.Jenkins, R.Monhan, A.E.Nahum, W.R.Nelson, D.W.O.Rogers, S.Seltzer and R.Wang]
蒙特卡羅方法的計算程式:
關於蒙特卡羅方法的計算程式已經有很多,如:EGS4、FLUKA、ETRAN、ITS、MCNP、GEANT等。這些程式大多經過了多年的發展,花費了幾百人年的工作量。除歐洲核子研究中心(CERN)發行的GEANT主要用於高能物理探測器響應和粒子徑跡的類比外,其它程式都深入到低能領域,並被廣泛應用。就電子和光子輸運的類比而言,這些程式可被分為兩個系列:
1.EGS4、FLUKA、GRANT
2.ETRAN、ITS、MCNP 這兩個系列的區別在於:對於電子輸運過程的類比根據不同的理論採用了不同的演算法。
EGS4和ETRAN分別為兩個系列的基礎,其它程式都採用了它們的核心演算法。
ETRAN(for Electron Transport)由美國國家標準局輻射研究中心開發,主要類比光子和電子,能量範圍可從1KeV到1GeV。
ITS(The integrated TIGER Series of Coupled Electron/Photon Monte Carlo Transport Codes )是由美國聖地亞哥(Sandia)國家實驗室在ETRAN的基礎上開發的一系列類比計算程式,包括TIGER 、CYLTRAN 、ACCEPT等,它們的主要差別在於幾何模型的不同。
TIGER研究的是一維多層的問題,CYLTRAN研究的是粒子在圓柱形介質中的輸運問題,ACCEPT是解決粒子在三維空間輸運的通用程式。
NCNP(Monte Carlo Neutron and Photo Transport Code)由美國橡樹林國家實驗室(Oak Ridge National Laboratory)開發的一套類比中子、光子和電子在物質中輸運過程的通用MC 計算程式,在它早期的版本中並不包含對電子輸運過程的類比,只類比中子和光子,較新的版本(如MCNP4A)則引進了ETRAN,加入了對電子的類比。
FLUKA 是一個可以類比包括中子、電子、光子和質子等30餘種粒子的大型MC計算程式,它把EGS4容納進來以完成對光子和電子輸運過程的類比,並且對低能電子的輸運演算法進行了改進。