❶ 蒙特卡洛演算法是什麼
是二十世紀提出的數值計算方法。
蒙特·卡羅方法(Monte Carlo method),也稱統計模擬方法,是二十世紀四十年代中期由於科學技術的發展和電子計算機的發明,而被提出的一種以概率統計理論為指導的一類非常重要的數值計算方法。
是指使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。與它對應的是確定性演算法。蒙特·卡羅方法在金融工程學,宏觀經濟學,計算物理學(如粒子輸運計算、量子熱力學計算、空氣動力學計算)等領域應用廣泛。
基本原理:
蒙特卡羅方法通過抓住事物運動的幾何數量和幾何特徵,利用數學方法來加以模擬,即進行一種數字模擬實驗。它以一個概率模型為基礎,按照這個模型所描繪的過程,通過模擬實驗的結果,作為問題的近似解。
蒙特卡羅解題可歸結為三個主要步驟。
構造或描述概率過程。
實現從已知概率分布抽樣。
建立各種評估量。
❷ 能不能簡單的給我解釋一下蒙特卡羅演算法
以概率和統計的理論、方法為基礎的一種計算方法,將所求解的問題同一定的概率模型相聯系,用電子計算機實現統計模擬或抽樣,以獲得問題的近似解,故又稱統計模擬法或統計試驗法。
蒙特卡羅是摩納哥的一個城市,以賭博聞名於世界。蒙特卡羅法借用這一城市的名稱是為了象徵性地表明該方法的概率統計的特點。
蒙特卡羅法作為一種計算方法,是由S.M.烏拉姆和J.馮·諾伊曼在20世紀40年代中葉為研製核武器的需要而首先提出來的。在此之前,該方法的基本思想實際上早已被統計學家所採用了。例如,早在17世紀,人們就知道了依頻數來決定概率的方法。
20世紀40年代中葉,出現了電子計算機,使得用數學方法模擬大量的試驗成為可能。另外,隨著科學技術的不斷發展,出現了越來越多的復雜而困難的問題,用通常的解析方法或數值方法都很難加以解決。蒙特卡羅法就是在這些情況下,作為一種可行的而且是不可缺少的計算方法被提出和迅速發展起來的。
基本原理 考慮一個射擊運動員的射擊成績 G。令x表示彈著點到靶心的距離,g(x)表示得分,而�0�6(x)表示該運動員的彈著點的分布密度,則
。
另一方面,如果該運動員進行了實彈射擊,彈著點依次為X1,X2,…,XN,則平均得分為
。
很明顯,弿N是G 的一個近似估計。蒙特卡羅法正是用弿N作為G 的近似估計。
假設 x不是一維空間的點,而是一個S 維空間的點(x1,x2,…,xs),則上述積分變為
。
蒙特卡羅法計算此積分是用
作為G 的近似估計,式中(X1n,X2n,…,Xsn)是由�0�6(x1,x2,…,xs)中抽取的第n 個樣本點。同上述一維積分比較,相同點是,都以某隨機變數的N 個獨立抽樣值的算術平均作為近似估計;不同點僅僅是,決定隨機量的樣本點不同,一個是一維空間的點,另一個是S 維空間的點。由上式可見, 決定近似估計 弿N好壞的僅僅是隨機變數g(x)或g(x1,x2,…,xs)的分布情況,而與它們是由怎樣的樣本點對應過來的無關。換言之,如果隨機變數g(x)和g(x1,x2,…,xs)具有相同分布,在不計抽樣,不計計算g(x)和g(x1,x2,…,xs)的差別的情況下,S維情況與一維情況無任何差異。這是其他計算方法所不具有的、一個非常重要的性質。
蒙特卡羅法解題的一般過程是,首先構成一個概率空間;然後在該概率空間中確定一個隨機變數g(x),其數學期望
正好等於所要求的值G,其中F(x)為x的分布函數;最後,以所確定的隨機變數的簡單子樣的算術平均值
作為G 的近似估計。由於其他原因,如確定數學期望為G 的隨機變數g(x)有困難,或為其他目的,蒙特卡羅法有時也用G 的漸近無偏估計代替一般過程中的無偏估計弿N來作為G 的近似估計。
收斂性、誤差和費用 蒙特卡羅法的近似估計弿N依概率1收斂於G的充分必要條件是隨機變數g(x)滿足
。
如果隨機變數g(x)滿足條件
,
式中1≤r<2,則
,
亦即弿N依概率1收斂於G 的速度為。總之,蒙特卡羅法的收斂性取決於所確定的隨機變數是否絕對可積,而蒙特卡羅法的收斂速度取決於該隨機變數是幾次絕對可積的。
根據中心極限定理,只要隨機變數g(x)具有有限的異於零的方差σ2,當N 足夠大時便有蒙特卡羅法的誤差公式如下:
,
式中1-α為置信水平,x由置信水平所惟一確定。根據上述誤差公式,為滿足問題的誤差和置信水平的要求,子樣容量N必須大於(x/ε)2σ2,其中ε表示誤差。進一步假設每觀察一個樣本所需要的費用是C,則蒙特卡羅法的費用是。這一結果表明,在相同誤差和置信水平要求下,一個蒙特卡羅法的優劣完全取決於σ2C 的值的大小,它的值越小相應的方法越好,或者說,蒙特卡羅法的效率與σ2C 成反比。
提高效率的方法
降低方差技巧 降低方差是提高蒙特卡羅法效率的重要途徑之一。考慮二重積分
,
式中�0�6(x,y)為x和y的分布密度函數,g(x,y)的方差存在。蒙特卡羅法計算Eg的一般技巧是用g=g(x, y)作為所確定的隨機變數,其中x和y服從分布�0�6(x,y)。降低方差的具體辦法有:
① 統計估計技巧用�0�6(x) 和�0�6x(y)分別表示分布�0�6(x,y)的邊緣分布和條件分布。計算Eg的統計估計技巧是用y的統計估計量
作為所確定的隨機變數,其中x服從分布�0�6(x)。g的方差恰好為兩個方差的和,它們分別是對隨機變數x和隨機變數y採用抽樣辦法而產生的。gSE的方差正好等於前者,因此gSE的方差一定比g的方差小。統計估計技巧的一般原理是,對於問題中所出現的諸隨機變數,能夠確定其相應的統計估計量的,就不要再對它們採用隨機抽樣的辦法。
② 重要抽樣技巧引入任意分布密度函數�0�6*(x,y),則
的數學期望同樣為Eg,其中x和y服從分布�0�6*(x,y)。當�0�6*(x,y)~|g(x,y)|�0�6(x,y)時,gIS的方差達到最小。在g(x,y)≥0時,方差等於零,gIS實際上變成了與其中出現的隨機變數無關的常數。重要抽樣技巧的一般原理是,盡量使所確定的隨機變數與問題中所出現的隨機變數關系不大。
③ 相關抽樣技巧考慮一個新的、積分值已知的二重積分
,
可得知
的數學期望同樣為Eg,式中x和y服從分布�0�6(x,y),α為任意常數。當為隨機變數g(x,y)和g*(x,y)的均方差σg、λg*之比時,gCS的方差達到最小。此時的方差等於g 的方差 1-ρ2倍,ρ為隨機變數g(x,y)和g*(x,y)的相關系數。當ρ=1時,方差變為零。相關抽樣技巧的一般原理是,尋找一個數學期望已知的且與原確定的隨機變數正相關的隨機變數,使相應的相關系數盡量接近1,然後用這兩個隨機變數的線性組合作為蒙特卡羅法最終所確定的隨機變數。
降低方差的技巧還有對偶變數技巧、系統抽樣技巧和分層抽樣技巧等。對偶變數技巧的一般原理是,除了原確定的隨機變數外,尋找另一個(或多個)具有相同數學期望的隨機變數,使得它們之間盡量是對偶負相關的,然後用它們的線性組合作為蒙特卡羅法最終所確定的隨機變數。系統抽樣技巧的一般原理是,對問題中所出現的某些隨機變數按相應分布所確定的比例進行抽樣,而不是進行隨機抽樣。分層抽樣技巧的一般原理是,對問題中所出現的某些隨機變數進行分層,盡量使所確定的隨機變數在各層中相對平穩,各層間的抽樣按相應分布所確定的比例進行。
其他途徑 為了提高蒙特卡羅法的效率,除了簡單地降低方差外,還有為降低費用設計的分裂和輪盤賭技巧,為逐步降低方差而設計的多極抽樣技巧,為改善收斂速度而設計的擬蒙特卡羅法,為計算條件期望而設計的條件蒙特卡羅法等等。分裂和輪盤賭技巧的一般原理是,將x的積分區域分為重要和非重要兩部分,對於抽樣確定的X,當它屬於重要區域時,對相應的Y 進行多次抽樣;當它屬於非重要區域時,只有在賭獲勝時才對相應的Y 進行抽樣。多級抽樣技巧的一般原理是,在進行某一級抽樣計算的同時,根據它所提供的抽樣觀察值,設計更好的抽樣技巧,用新設計的抽樣技巧進行新的一級的抽樣計算,依次類推,最後用各級的結果的線性組合作為蒙特卡羅法的近似估計。擬蒙特卡羅法與一般蒙特卡羅法的最大區別是,前者不像後者那樣要求子樣 g(X1),g(X2),…,g(Xn)是相互獨立的。用一致分布點列替代由隨機數組成的點列的所謂數論方法,實際上就是一種擬蒙特卡羅法。條件蒙特卡羅法的一般原理是,首先將條件期望問題轉化成為非條件期望問題,然後用解非條件期望的一般方法來解決條件期望計算問題。由於條件蒙特卡羅法中引進了任意分布密度函數,因此,可以選取合適的分布密度函數來實現進一步降低方差的目的。
優缺點 蒙特卡羅法的最大優點是,在方差存在的情況下,問題的維數不影響它的收斂速度,而隻影響它的方差;問題幾何形狀的復雜性對它的影響不大;它不象其他數值方法那樣對問題一定要進行離散化處理,而是常可以進行連續處理;它的程序結構簡單,所需計算機存貯單元比其他數值方法少,這對於高維問題差別尤其顯著。蒙特卡羅法的最大缺點是,對於維數少的問題它不如其他數值方法好;它的誤差是概率誤差,而不是一般意義下的誤差。
應用 隨著電子計算機的迅速發展和科學技術問題日趨復雜,蒙特卡羅法的應用越來越廣泛,已經滲透到科學技術的各個領域。
在一些典型數學問題方面的應用主要有:多重積分計算、線性代數方程組求解、矩陣求逆、常微分方程邊值問題求解、偏微分方程求解、非齊次線性積分方程求解、本徵值計算和最優化計算等等。其中的多重積分計算、非齊次線性積分方程求解和齊次線性積分方程本徵值計算等,不僅非常有代表性,而且有很大的實用價值,對於高維問題常比其他數值方法好。
在一些實際問題方面的應用主要有,屏蔽計算、核臨界安全計算、反應堆物理計算、微擾計算、實驗核物理計算、高能物理計算、核物理計算、統計物理計算、真空技術、公用事業、資訊理論、系統模擬、可靠性計算和計算機科學等等。其中的屏蔽計算、核臨界安全計算、微擾計算、實驗核物理計算和統計物理計算等,不僅非常有代表性,而且應用得很廣泛,按蒙特卡羅法解決這些問題的能力講,已經超過了其他計算方法的水平。
❸ 蒙特卡羅演算法是什麼
蒙特卡羅(MonteCarlo)方法,或稱計算機隨機模擬方法,是一種基於「隨機數」的計算方法。這一方法源於美國在第二次世界大戰進行研製原子彈的「曼哈頓計劃」。
該計劃的主持人之一、數學家馮·諾伊曼用馳名世界的賭城—摩納哥的MonteCarlo—來命名這種方法,為它蒙上了一層神秘色彩。
主要是:
使用隨機數( 或更常見的偽隨機數)來解決很多計算問題的方法。 將所求解的問題同一定的概率模型相聯系, 用電子計算機實現統計模擬或 抽樣 ,以獲得問題的近似解。 為象徵性地表明這一方法的概率統計特徵, 故借用賭城蒙特卡羅命名。
❹ matlab如何實現蒙特卡洛演算法
1、打開MATLAB軟體,如圖所示,輸入一下指令。
❺ 什麼是蒙特卡洛分析
蒙特卡羅分析法(統計模擬法),是一種採用隨機抽樣統計來估算結果的計算方法,可用於估算圓周率,由約翰·馮·諾伊曼提出。由於計算結果的精確度很大程度上取決於抽取樣本的數量,一般需要大量的樣本數據,因此在沒有計算機的時代並沒有受到重視。
利用蒙特卡羅分析法可用於估算圓周率,如圖,在邊長為 2 的正方形內作一個半徑為 1 的圓,正方形的面積等於 2×2=4,圓的面積等於 π×1×1=π,由此可得出,正方形的面積與圓形的面積的比值為 4:π。
現在讓我們用電腦或輪盤生成若干組均勻分布於 0-2 之間的隨機數,作為某一點的坐標散布於正方形內,那麼落在正方形內的點數 N 與落在圓形內的點數 K 的比值接近於正方形的面積與圓的面積的比值,即,N:K ≈ 4:π,因此,π ≈ 4K/N 。
用此方法求圓周率,需要大量的均勻分布的隨機數才能獲得比較准確的數值,這也是蒙特卡羅分析法的不足之處。
(5)蒙特卡洛演算法視頻講解擴展閱讀:
使用蒙特·卡羅方法進行分子模擬計算是按照以下步驟進行的:
1. 使用隨機數發生器產生一個隨機的分子構型。
2. 對此分子構型的其中粒子坐標做無規則的改變,產生一個新的分子構型。
3. 計算新的分子構型的能量。
4. 比較新的分子構型於改變前的分子構型的能量變化,判斷是否接受該構型。
若新的分子構型能量低於原分子構型的能量,則接受新的構型,使用這個構型重復再做下一次迭代。 若新的分子構型能量高於原分子構型的能量,則計算玻爾茲曼因子,並產生一個隨機數。
若這個隨機數大於所計算出的玻爾茲曼因子,則放棄這個構型,重新計算。 若這個隨機數小於所計算出的玻爾茲曼因子,則接受這個構型,使用這個構型重復再做下一次迭代。
5. 如此進行迭代計算,直至最後搜索出低於所給能量條件的分子構型結束。
項目管理中蒙特·卡羅模擬方法的一般步驟是:
1.對每一項活動,輸入最小、最大和最可能估計數據,並為其選擇一種合適的先驗分布模型;
2.計算機根據上述輸入,利用給定的某種規則,快速實施充分大量的隨機抽樣
3.對隨機抽樣的數據進行必要的數學計算,求出結果
4.對求出的結果進行統計學處理,求出最小值、最大值以及數學期望值和單位標准偏差
5.根據求出的統計學處理數據,讓計算機自動生成概率分布曲線和累積概率曲線(通常是基於正態分布的概率累積S曲線)
6.依據累積概率曲線進行項目風險分析。
❻ 蒙特卡洛演算法和拉斯維加斯演算法
一、定義:
特卡羅是一類隨機方法的統稱。這類方法的特點是,可以在隨機采樣上計算得到近似結果,隨著采樣的增多,得到的結果是正確結果的概率逐漸加大,但在(放棄隨機采樣,而採用類似全采樣這樣的確定性方法)獲得真正的結果之前,無法知道目前得到的結果是不是真正的結果。
拉斯維加斯方法是另一類隨機方法的統稱。這類方法的特點是,隨著采樣次數的增多,得到的正確結果的概率逐漸加大,如果隨機采樣過程中已經找到了正確結果,該方法可以判別並報告,但在但在放棄隨機采樣,而採用渣豎類似全采樣這樣的確定性方法之前,不保證能找到任何結果(包括近似結果)
二、場景舉例
假如筐里有100個蘋果,讓我每次閉備梁銀眼拿1個,挑出最大的。於是我隨機拿1個,再隨機拿1個跟它比仿宴,留下大的,再隨機拿1個……我每拿一次,留下的蘋果都至少不比上次的小。拿的次數越多,挑出的蘋果就越大,但我除非拿100次,否則無法肯定挑出了最大的。這個挑蘋果的演算法,就屬於蒙特卡羅演算法——盡量找好的,但不保證是最好的。
而拉斯維加斯演算法,則是另一種情況。假如有一把鎖,給我100把鑰匙,只有1把是對的。於是我每次隨機拿1把鑰匙去試,打不開就再換1把。我試的次數越多,打開(最優解)的機會就越大,但在打開之前,那些錯的鑰匙都是沒有用的。這個試鑰匙的演算法,就是拉斯維加斯的——盡量找最好的,但不保證能找到。
三、結論
•蒙特卡羅演算法
:采樣越多,越近似最優解;
•拉斯維加斯演算法:采樣越多,越有機會找到最優解;
這兩類隨機演算法之間的選擇,往往受到問題的局限。如果問題要求在有限采樣內,必須給出一個解,但不要求是最優解,那就要用蒙特卡羅演算法。反之,如果問題要求必須給出最優解,但對采樣沒有限制,那就要用拉斯維加斯演算法。