蒙特卡罗方法(Monte Carlo method)浅入
蒙特卡羅方法概述
蒙特卡羅方法又稱統計模擬法、隨機抽樣技術,是一種隨機模擬方法,以概率和統計理論方法為基礎的一種計算方法,是使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。將所求解的問題同一定的概率模型相聯系,用電子計算機實現統計模擬或抽樣,以獲得問題的近似解。為象征性地表明這一方法的概率統計特征,故借用賭城蒙特卡羅命名。蒙特卡羅方法的提出
蒙特卡羅方法于20世紀40年代美國在第二次世界大戰中研制原子彈的“曼哈頓計劃”計劃的成員S.M.烏拉姆和J.馮·諾伊曼首先提出。數學家馮·諾伊曼用馳名世界的賭城—摩納哥的Monte Carlo—來命名這種方法,為它蒙上了一層神秘色彩。在這之前,蒙特卡羅方法就已經存在。1777年,法國Buffon提出用投針實驗的方法求圓周率∏。這被認為是蒙特卡羅方法的起源。蒙特卡羅方法的基本思想
Monte Carlo方法的基本思想很早以前就被人們所發現和利用。早在17世紀,人們就知道用事件發生的“頻率”來決定事件的“概率”。19世紀人們用投針試驗的方法來決定圓周率π。本世紀40年代電子計算機的出現,特別是近年來高速電子計算機的出現,使得用數學方法在計算機上大量、快速地模擬這樣的試驗成為可能。考慮平面上的一個邊長為1的正方形及其內部的一個形狀不規則的“圖形”,如何求出這個“圖形”的面積呢?Monte Carlo方法是這樣一種“隨機化”的方法:向該正方形“隨機地”投擲N個點,有M個點落于“圖形”內,則該“圖形”的面積近似為M/N。 可用民意測驗來作一個不嚴格的比喻。民意測驗的人不是征詢每一個登記選民的意見,而是通過對選民進行小規模的抽樣調查來確定可能的優勝者。其基本思想是一樣的。科技計算中的問題比這要復雜得多。比如金融衍生產品(期權、期貨、掉期等)的定價及交易風險估算,問題的維數(即變量的個數)可能高達數百甚至數千。對這類問題,難度隨維數的增加呈指數增長,這就是所謂的“維數的災難”(Curse of Dimensionality),傳統的數值方法難以對付(即使使用速度最快的計算機)。Monte Carlo方法能很好地用來對付維數的災難,因為該方法的計算復雜性不再依賴于維數。以前那些本來是無法計算的問題現在也能夠計算量。為提高方法的效率,科學家們提出了許多所謂的“方差縮減”技巧。另一類形式與Monte Carlo方法相似,但理論基礎不同的方法—“擬蒙特卡羅方法”(Quasi-Monte Carlo方法)—近年來也獲得迅速發展。我國數學家華羅庚、王元提出的“華—王”方法即是其中的一例。這種方法的基本思想是“用確定性的超均勻分布序列(數學上稱為Low Discrepancy Sequences)代替Monte Carlo方法中的隨機數序列。對某些問題該方法的實際速度一般可比Monte Carlo方法提出高數百倍,并可計算精確度。蒙特卡羅方法的基本原理
由概率定義知,某事件的概率可以用大量試驗中該事件發生的頻率來估算,當樣本容量足夠大時,可以認為該事件的發生頻率即為其概率。因此,可以先對影響其可靠度的隨機變量進行大量的隨機抽樣,然后把這些抽樣值一組一組地代入功能函數式,確定結構是否失效,最后從中求得結構的失效概率。蒙特卡羅法正是基于此思路進行分析的。設有統計獨立的隨機變量Xi(i=1,2,3,…,k),其對應的概率密度函數分別為fx1,fx2,…,fxk,功能函數式為Z=g(x1,x2,…,xk)。首先根據各隨機變量的相應分布,產生N組隨機數x1,x2,…,xk值,計算功能函數值 Zi=g(x1,x2,…,xk)(i=1,2,…,N),若其中有L組隨機數對應的功能函數值Zi≤0,則當N→∞時,根據伯努利大數定理及正態隨機變量的特性有:結構失效概率,可靠指標。從蒙特卡羅方法的思路可看出,該方法回避了結構可靠度分析中的數學困難,不管狀態函數是否非線性、隨機變量是否非正態,只要模擬的次數足夠多,就可得到一個比較精確的失效概率和可靠度指標。特別在巖土體分析中,變異系數往往較大,與JC法計算的可靠指標相比,結果更為精確,并且由于思路簡單易于編制程序。蒙特卡羅方法在數學中的應用
通常蒙特·卡羅方法通過構造符合一定規則的隨機數來解決數學上的各種問題。對于那些由于計算過于復雜而難以得到解析解或者根本沒有解析解的問題,蒙特·卡羅方法是一種有效的求出數值解的方法。一般蒙特·卡羅方法在數學中最常見的應用就是蒙特·卡羅積分。蒙特卡羅算法表示采樣越多,越近似最優解。舉個例子,假如筐里有100個蘋果,讓我每次閉眼拿1個,挑出最大的。于是我隨機拿1個,再隨機拿1個跟它比,留下大的,再隨機拿1個……我每拿一次,留下的蘋果都至少不比上次的小。拿的次數越多,挑出的蘋果就越大,但我除非拿100次,否則無法肯定挑出了最大的。這個挑蘋果的算法,就屬于蒙特卡羅算法。告訴我們樣本容量足夠大,則最接近所要求解的概率。蒙特卡羅方法的工作過程
在解決實際問題的時候應用蒙特·卡羅方法主要有兩部分工作:
1. 用蒙特·卡羅方法模擬某一過程時,需要產生各種概率分布的隨機變量。2. 用統計方法把模型的數字特征估計出來,從而得到實際問題的數值解。蒙特卡羅方法分子模擬計算的步驟
使用蒙特·卡羅方法進行分子模擬計算是按照以下步驟進行的:
1. 使用隨機數發生器產生一個隨機的分子構型。2. 對此分子構型的其中粒子坐標做無規則的改變,產生一個新的分子構型。3. 計算新的分子構型的能量。4. 比較新的分子構型于改變前的分子構型的能量變化,判斷是否接受該構型。若新的分子構型能量低于原分子構型的能量,則接受新的構型,使用這個構型重復再做下一次迭代。 若新的分子構型能量高于原分子構型的能量,則計算玻爾茲曼因子,并產生一個隨機數。若這個隨機數大于所計算出的玻爾茲曼因子,則放棄這個構型,重新計算。若這個隨機數小于所計算出的玻爾茲曼因子,則接受這個構型,使用這個構型重復再做下一次迭代。 5. 如此進行迭代計算,直至最后搜索出低于所給能量條件的分子構型結束。蒙特卡羅方法是以概率統計原理為基礎,模擬事物的形成過程,以達到認識事物特征及其變化規律的方法。這種方法的前提假設是不確定性參數可以用概率分布來描述。蒙特卡羅方法實施步驟:
1、通過敏感性分析,確定隨機變量;
2、構造隨機變量的概率分布模型;
3、為各輸入隨機變量抽取隨機數;
4、將抽得的隨機數轉化為各輸入隨機變量的抽樣值;
5、將抽樣值組成一組項目評價基礎數據;
6、根據基礎數據計算出評價指標值;
7、整理模擬結果所得評價指標的期望值、方差、標準差和它的概率分布及累計概率,繪制累計概率分布圖,計算項目可行或不可行的概率。
項目管理中蒙特卡羅模擬方法的一般步驟
項目管理中蒙特卡羅模擬方法的一般步驟是:
1、對每一項活動,輸入最小、最大和最可能估計數據,并為其選擇一種合適的先驗分布模型;2、計算機根據上述輸入,利用給定的某種規則,快速實施充分大量的隨機抽樣;3、對隨機抽樣的數據進行必要的數學計算,求出結果;4、對求出的結果進行統計學處理,求出最小值、最大值以及數學期望值和單位標準偏差;5、根據求出的統計學處理數據,讓計算機自動生成概率分布曲線和累積概率曲線(通常是基于正態分布的概率累積S曲線);6、依據累積概率曲線進行項目風險分析。非權重蒙特卡羅積分
非權重蒙特卡羅積分,也稱確定性抽樣,是對被積函數變量區間進行隨機均勻抽樣,然后對被抽樣點的函數值求平均,從而可以得到函數積分的近似值。此種方法的正確性是基于概率論的中心極限定理。當抽樣點數為m時,使用此種方法所得近似解的統計誤差恒為 1除于根號M,不隨積分維數的改變而改變。因此當積分維度較高時,蒙特卡羅方法相對于其他數值解法更優。蒙特卡羅方法案例分析
案例一:蒙特卡羅模型在投資項目決策中的開發應用
一、問題的提出
隨著社會主義市場經濟體制的逐步完善、經濟水平的逐步提高,我國社會經濟活動日趨復雜,越來越多變,其影響越來越廣泛,越來越深遠,不確定性逐漸成為企業決策時所面臨的主要難題。因此,如何在不確定條件下做出投資決策,就成為目前理論和實踐工作者們廣泛關注的一個核心課題。傳統的投資評價理論——以凈現值法(NPV) 為代表的投資決策分析方法,其根本缺陷在于它們是事先對未來的現金流量做出估計,并假設其為不變或靜態的狀況,無法衡量不確定因素的影響,不能體現遞延決策以應對所帶來的管理彈性。所以,在不確定環境下的投資,用凈現值法評估項目不能體現柔性投資安排決策所體現的價值,無助于項目在決策中回避風險。在多變的市場環境中,不確定性與競爭者的反應使實際收入與預期收入有所出入, 所以凈現值法(NPV) 適用于常規項目,未來不確定性比較小的項目。為此理論界對未來投資環境不確定性大的項目提出了實物期權法,但在實踐中應用的還是比較少。實物期權法的應用對企業決策者的綜合素質要求比較高,對企業資源能力要求也比較高。但是實物期權法改變了我國管理者對戰略投資的思維方式。基于以上的分析,我們得出這樣的結論:傳統的投資決策方法對風險項目和不確定性項目的評價有較多不完善之處,有必要對其改進;實物期權法理論上解決了傳統決策方法對不確定性項目評價的不足,但其應用尚處于體系不成熟階段,在實踐中應用并不廣泛。至此,引入蒙特卡羅模型的理論和其分析方法,此方法特別適用于參數波動性大,且服從某一概率分布的項目,例如地質勘察、氣田開發等項目。蒙特卡羅模型是利用計算機進行數值計算的一類特殊風格的方法, 它是把某一現實或抽象系統的某種特征或部分狀態, 用模擬模型的系統來代替或模仿, 使所求問題的解正好是模擬模型的參數或特征量, 再通過統計實驗, 求出模型參數或特征量的估計值, 得出所求問題的近似解。目前評價不確定和風險項目多用敏感性分析和概率分析,但計算上較為復雜,尤其各因素變化可能出現概率的確定比較困難。蒙特卡羅模型解決了這方面的問題,各種因素出現的概率全部由軟件自動給出,通過多次模擬,得出項目是否應該投資。該方法應用面廣, 適應性強。惠斯通(Weston) 對美國1 000 家大公司所作的統計表明: 在公司管理決策中, 采用隨機模擬方法的頻率占29 % 以上, 遠大于其他數學方法的使用頻率 。特別, 該方法算法簡單, 但計算量大, 在模擬實際問題時, 要求所建模型必須反復驗證,這就離不開計算機技術的幫助, 自然可利用任何一門高級語言來實現這種方法。通過一案例具體實現了基于Excel 的Monte Carlo 模擬系統, 由于Microsof tExcel 電子表格軟件強大的數據分析功能和友好的界面設計能力, 使系統實現起來頗感輕松自如。二、理論和方法
蒙特卡洛模擬早在四十年前就用于求解核物理方面的問題。當管理問題更為復雜時,傳統的數學方法就難以進行了。模擬是將一個真實事物模型化,然后對該模型做各種實驗,模擬也是一個通過實驗和糾正誤差來尋求最佳選擇的數值性求解的過程。模擬作為一種有效的數值處理方法, 計算量大。以前只是停留在理論探討上, 手工是無法完成的。在管理領域由于規律復雜隨機因素多, 很多問題難以用線性數學公式分析和解決, 用模擬則有效得多。在新式的計算機普及后, 用模擬技術來求解管理問題已成為可能。計算機模擬技術和其它方法相比有以下優點:
1) 成本低、風險小, 在產品未投產, 實際生產未形成就可以對市場進行分析模擬, 極大地減少費用和風險。2) 環境條件要求低, 工作人員不需要高深的數學能力, 完全依靠計算機進行, 在硬件和軟件日益降價的情況下, 可以成為現實。3) 可信度高, 常用的統計推理方法需要大量歷史數據(如平均數法、最小二乘法) , 對無歷史資料的場合就無能為力(如新產品) , 而且精度低。模擬的最大特點是借助一個隨機數來模仿真實的現實, 隨機數的產生則由計算機來產生。稱為偽隨機數。即:
Rn = F (r - 1 , r - 2 ,……r - k)
在以對象為中心的軟件中, EXCEL 有一個RANE()函數實現偽隨機數功能。RANE( )實際上是一個會自動產生偽隨機數的子程序。用產生的偽隨機數模擬市場購買行為, 得出產品銷售量, 在生產成本相對固定時進而推測出產品的利潤。此方法不用編制復雜的程序, 思路假設為, 作為系統內部是可以控制的, 即企業內部生產成本可以人為控制, 但系統外部因素是不可控制的(消費心理導致的消費行為) , 則生產與銷售就會產生矛盾。生產量小于銷售量, 造成開工不足資源浪費;生產量大于銷售量, 造成產品積壓, 資金占用, 同樣形成資源的浪費。最好生產量等于銷售量, 則資源浪費最小, 自然經濟效益就最高, 實際就是利潤最大化。如果能科學地測算出在什么情況下利潤最大, 則這時的產量就是最佳產量, 成本也就最低。這就是市場作為導向, 以銷定產的公認市場經濟的準則。實際工作中, 很多產品的消費是具有隨機性的, 主要是一些需求彈性大、價格彈性大、價格低、與日常生活有關的中、小商品, 如副食品、日用消費品、玩具、輕工業產品。對企業而言利潤較高的產品。
從以上分析可以看出, 蒙特卡洛模擬可以動態實現對產品利潤的預測, 從而對產品產量科學控制,實現資源優化, 是一種較好的決策支持方法。
更多內容請參考:
蒙特卡羅方法(Monte Carlo method)
蒙特卡羅方法
蒙特卡羅方法在計算機上的實現
總結
以上是生活随笔為你收集整理的蒙特卡罗方法(Monte Carlo method)浅入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: window10上的LaTex使用指南(
- 下一篇: PHP单例模式使用clone