蒙特卡羅演算法是什麼?

時間 2021-05-06 08:46:00

1樓:據說他姓feng

我說通俗一點。

只要我蒙的次數足夠多,那總有能蒙對的。

矇對的概率在大數定理下和真實的概率分布非常接近。

通過統計矇對的概率分布,也就能近似擬合真實的概率分布。

也俗稱 「瞎JB蒙演算法」。

2樓:摸魚的王同學

蒙卡演算法在反應堆物理領域也有應用。

(1)根據反應堆的條件,列出中子輸運方程,在某些幾何條件和邊界條件下,可以做近似,然後通過迭代等方法求解。這種方法有個缺點,如果幾何複雜,那麼邊界條件的近似處理就很麻煩,而且不同幾何之間無法直接移植套用。

(2)蒙卡方法則是模擬若干數量的粒子,抽樣粒子的運動方向、反應型別,最後統計得到結果,這一過程受幾何條件影響較小。但是計算量比(1)大,早期是個缺點。隨著計算機能力的進步,蒙卡方法在反應堆物理領域的地位是逐漸提高的。

(寫的很糙,不完善)

3樓:身高163

感覺就是大數定律的思想嘛…

只不過大數定理強調統計學中的極限和期望, Monte Carlo方法這是計算機中的模擬, 用有限隨機數去計算估計值.

4樓:裡裡

Monte Carlo核心思想很簡單,就是通過頻率來估計概率

它所求解問題通常是某隨機事件A出現的概率,或者是某隨機變數B的期望值。通過某種「實驗」的方法,得出A事件出現的頻率,以此估計出A事件出現的概率(或者得到隨機變數B的某些數字特徵,得出B的期望值)。

會想初學概率論時,不也是通過簡單的頻率概念來引入概率這個概念嗎?Monte Carlo只不過讓我們回到最初。

5樓:失落的兔子

之前有位答案是以管窺豹。

從統計角度來講,我覺得更形象一點的表述可能是以管窺毛窺皮窺指窺手窺臂窺身最後窺豹。管子的大小本身也在窺的過程中不斷在增大。

6樓:羅YQ

阮一峰的總結:蒙特卡羅方法入門

我結合 @蘇椰

@鵪鶉 的答案,對蒙特卡羅演算法有了形象理解。下面是蒙特卡羅演算法的數學描述,截圖來自受限玻爾茲曼機(RBM)學習筆記(一)預備知識。深度學習中的RBM演算法用到了蒙特卡羅演算法。

7樓:鵪鶉

蒙特卡羅演算法——大家聽說過蒙特卡羅求π吧?就是畫乙個正方形和內切圓,隨機撒點,數一下點落在園內和正方形內的數量之比,就是二者面積之比π/4。

所以蒙特卡羅就是求面積的方法。

而積分是曲線下的面積

所以蒙特卡羅就是求積分的方法

而均值就是概率密度與自變數乘積的積分

所以蒙特卡羅就是求均值的方法

而期望就是均值

所以蒙特卡羅就是求期望的方法

而最優值往往接近或就是期望

所以蒙特卡羅就是求最優值的方法

8樓:

所有涉及隨機取樣和平均的演算法都可以稱為蒙特卡洛演算法。用於取樣的metropolis演算法非常有名,曾經被評為20世紀最美演算法之一。

9樓:湛彥

蒙特卡羅是一類隨機方法的統稱。這類方法的特點是,可以在隨機取樣上計算得到近似結果,隨著取樣的增多,得到的結果是正確結果的概率逐漸加大,但在(放棄隨機取樣,而採用類似全取樣這樣的確定性方法)獲得真正的結果之前,無法知道目前得到的結果是不是真正的結果。

10樓:

很多類演算法都叫蒙特卡羅(簡稱蒙卡)。蒙卡最重要的應用是算積分,尤其是高維 —— 例如無窮維的積分(路徑積分),其他數值積分演算法可能完全不適用。

舉個例子:統計力學指出,系統的乙個熱力學量的平均值等於,其中是乙個場,取決於空間中的每一點;是能量,取決於場的分布;T是溫度。一般來說可以講空間離散化成為的格點;再將場函式的取值離散化。

即使如此,每乙個場分布對應於;假定場函式取值可以離散為個值;那麼場分布(又叫構型)的總數為個 —— 這是直接計算時的複雜度。取! 用最強的超級計算機來計算,1 exaFLOPS = 10^18 次每秒,一共需要秒遠遠大於宇宙年齡秒。

蒙卡解決的辦法是,按照波爾滋蔓分布隨機抽樣出一小部分場分布(構型)來計算的平均值。只要抽樣足夠好,的計算就能夠足夠準確。

常用的隨機抽樣演算法是Metropolis,這是乙個滿足馬爾科夫過程的演算法。

當然除了算積分蒙卡還可以幹別的事情,比如在大構型空間尋找最低態(只要注意到 min、max、算符與sum算符的代數性質很接近,都可以用來做reduce)。你提到的圍棋演算法就是其中一例,在這個例子中,每乙個構型就是一局從開始到結束的棋 —— 構型空間顯然是巨大的。

11樓:

蒙特卡洛演算法是將乙個不確定性的問題轉化成很多個確定性問題的方法,也可以看成是列舉法的一種變異。

總體說來,蒙特卡洛就是拿一堆點去模擬乙個概率密度分布,這樣原來概率密度分布的不確定性就被一堆確定的點所代替。蒙特卡洛的優點很明顯,簡單,計算準確;缺點就是計算的速度慢,收斂慢。用的點越多,對概率密度分布的模擬就越好,得到的結果就越準確,每乙個點都得算一遍啊,所以工作量會及其的大。

為什麼說是列舉法的一種呢?列舉法是我們小學就接觸的演算法,就是把所有情況都考慮進去,這就與蒙特卡洛方法的想法很類似,點考慮的越多計算的就越準確。

12樓:

蒙特卡羅演算法是一種隨機化演算法,最簡單的解釋就是,把問題的正確性擺上賭桌,來換取在一定的時間內解決這一問題,從而實現演算法的簡化。

蒙特卡羅演算法有兩個主要特徵:

1,正確地概率要比錯誤的概率大,並且錯誤的概率有限。(否則這一演算法就沒有意義了)

2. 資源的使用是確定的(這個演算法的優點)具體的例子可以參考羅蘋素性檢測

13樓:

粗暴點說的話,蒙特卡羅演算法複雜度不高,有比較高的概率得到正確的結果

舉例:利用費馬小定理判斷乙個數是不是質數,因為存在卡麥可數(不多),所以有一定機率會判斷錯誤

相對的,拉斯維加斯演算法的複雜度不高,一定會得到正確結果

14樓:presia

假定問題的最佳答案在某個範圍裡,將範圍內的每個值都試一遍,理論上,一定可以找到最佳答案,這叫窮舉法.

窮舉法的問題在於效率不高,實際操作中往往難於實現(需要嘗試的值,數量多到無窮大),因此發展出一種更加智慧型,選擇範圍更有目的性的窮舉法,即蒙特卡羅法.

可以理解為使用隨機數(類似投骰子),來指定整個範圍內的某些區域的值進行嘗試,這樣就縮小了嘗試的規模,實際操作中易於實現.

15樓:陳義

蒙特卡羅是一類隨機方法的統稱。這類方法的特點是,可以在隨機取樣上計算得到近似結果,隨著取樣的增多,得到的結果是正確結果的概率逐漸加大,但在(放棄隨機取樣,而採用類似全取樣這樣的確定性方法)獲得真正的結果之前,無法知道目前得到的結果是不是真正的結果。

舉例說明,乙個有10000個整數的集合,要求其中位數,可以從中抽取m<10000個數,把它們的中位數近似地看作這個集合的中位數。隨著m增大,近似結果是最終結果的概率也在增大,但除非把整個集合全部遍歷一邊,無法知道近似結果是不是真實結果。

另外乙個例子,給定數N,要求它是不是素數,可以任選m個小於N的數,看其中有沒有能整除N的數,如果沒有則判斷為素數。這和通常見到的蒙特卡羅例子不同,近似結果往往錯得更離譜,但隨著m增大,近似結果是最終結果的概率也在增大。

把蒙特卡羅方法和另外一類方法——拉斯維加斯方法[1]——對比一下,更容易了解哪些方法屬於蒙特卡羅,哪些不屬於。拉斯維加斯方法是另一類隨機方法的統稱。這類方法的特點是,隨著取樣次數的增多,得到的正確結果的概率逐漸加大,如果隨機取樣過程中已經找到了正確結果,該方法可以判別並報告,但在但在放棄隨機取樣,而採用類似全取樣這樣的確定性方法之前,不保證能找到任何結果(包括近似結果)。

舉例說明,有乙個有死胡同但無環路的迷宮,要求從入口走到出口的一條路徑。可以從入口出發,在每個叉路口隨機選擇乙個方向前行,到死胡同則報告失敗並回到入口重新試探,到出口則報告成功。隨著試探次數增多,找到一條入口到出口的路徑的概率增大,但除非全列舉,即使試12023年,也無法保證找到任何要求的路徑。

16樓:邢懷震

簡單講就是:

乙個面積為1的圓盤上,有一小塊圈定的區域,向圓盤上隨機扔飛鏢1萬次(或者更多),其中打在圈定區域中假設5千次。那麼可以得出結論:圓盤上圈出的圖形,面積約為1*(5千/1萬)=0.5

17樓:ReVanTis

上面敘述的是定義,我來描述乙個例子,也是自己做過的乙個最簡單的實現:蒙特卡羅法計算圓周率

考慮乙個圓半徑R,它有乙個外切正方形邊長2R。

易知:圓面積pi*R^2

正方形面積 2R*2R=4R^2

從這個正方形內隨機抽取乙個點,對這個點的要求是在正方形內任意一點的概率平均分布。

那麼這個點在圓以內的概率大概就是pi*R^2/4R^2=pi/4

生成若干個這樣的點,利用平面上兩點間距離公式計算這個點到圓心的距離來判斷是否在圓內。

當我們使用足夠多的點來進行統計時,我們得到的概率值十分接近pi/4

這樣就可以得到pi值實際上足夠多的點大概要取10萬個。

《三體》描述這一演算法用於解決三體問題的一般情況,因為計算量過大未能成功。

大劉形容這個演算法是使用蠻力對抗精密的方法,我覺得這一說法很好。

18樓:Sonnenlicht

蒙地卡羅方法Monte Carlo method),也稱統計模擬方法,是二十世紀四十年代中期由於科學技術的發展和電子計算機的發明,而被提出的一種以概率統計理論為指導的一類非常重要的數值計算方法。是指使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。

詳細內容,參見:http://

en.wikipedia.org/wiki/Monte_Carlo_method

19樓:沈鵬程

蒙特卡羅法(Monte Carlo method)是以概率和統計的理論、方法為基礎的一種計算方法,將所求解的問題同一定的概率模型相聯絡,用電子計算機實現統計模擬或抽樣,以獲得問題的近似解,故又稱統計模擬法或統計試驗法。這個在計算物理裡面學過的。

Metropolis 蒙特卡羅方法 動力學蒙特卡羅方法 分子動力學方法這三種模擬方法有何特點與差異?

偶然發現這個問題以及諸位大神的回答,大致看了一遍之後發現諸位的回答雖然沒啥大問題,然而無論是MC還是MD,本質上都是一門技術而不是一種理論,只要是技術就必須勤加練習才能真正掌握,光說不練看再多書也沒用。而上面的大多數回答都太過理論,顯然對於剛入門的同學是很難看懂的。而且大部分回答也過於羅嗦,畢竟問題...

蒙特卡羅模擬是不是解決一切數學建模類問題的通用方案?

明州雨 蒙特卡洛演算法不是萬能的。舉個物理裡邊的例子 通常用於研究強關聯電子體系的哈伯模型,在運用蒙特卡洛演算法時候會出現乙個臭名昭著的 費公尺符號問題 fermion sign problem 這個問題會把蒙卡的統計概率從正實數變成複數,從而使抽樣演算法失效 參考文獻 Chongjun Wu an...

退火演算法是什麼?

零獨葉 一種獲得全域性最優解的演算法,因為在其中引入了概率性而不會侷限於區域性最優解,在解決優化問題的過程中有很大作用 進一步了解可以瀏覽我的文章 零獨葉 數學模型 模擬退火演算法及其在TSP問題中的應用 春眠不覺曉 乙個人被扔在一座山頂上,現在他要下山 一開始,他體力充沛,哪怕是上坡路,也敢走 慢...