蒙特卡羅演算法介紹

2021-09-06 17:14:39 字數 863 閱讀 6011

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

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

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

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

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

蒙特卡羅演算法

蒙特卡羅演算法並不是一種演算法的名稱,而是對一類隨機演算法的特性的概括。說 蒙特卡羅演算法打敗武宮正樹 這個說法就好比說 我被乙隻脊椎動物咬了 是比較火星的。實際上是zen的演算法具有蒙特卡羅特性,或者說它的演算法屬於一種蒙特卡羅演算法。那麼 蒙特卡羅 是一種什麼特性呢?我們知道,既然是隨機演算法,...

蒙特卡羅演算法

演算法原理 蒙特卡羅方法也稱統計模擬方法,是1940年代中期由於科學技術的發展和電子計算機的發明,而提出的一種以概率統計理論為指導的數值計算方法。是指使用隨機數 或更常見的偽隨機數 來解決很多計算問題的方法。原理大致如下圖所示 很簡單,舉個例子就是扔石子到方形區域,區域內有個圓,圓內石子的比例即為圓...

蒙特卡羅演算法

構造描述概率過程 實現從已知概率分布抽樣 隨機數是實現模擬的工具 建立各種估計量 得到無偏估計 clear dt 1 365.0 一天的年單位時間 s0 20 在初始時刻的 程式中假設 r 0.031 期望收益率 sigma 0.6 波動率 0.6 expterm r dt 漂移項dt stddev...