蒙特卡洛与围棋
今天看到頭條上有位網(wǎng)友提出了一個(gè)蒙特卡洛和圍棋的問題,以為大佬的回答我覺得很有意思,特摘抄與此。
蒙特卡洛算法是20世紀(jì)十大最偉大的算法,阿法狗就采用了蒙特卡洛算法。蒙特卡洛樹不是一種算法,蒙特卡洛才是一種算法。
先來個(gè)動(dòng)態(tài)圖感受下蒙特卡洛樹:
在五子棋中,因?yàn)槊恳徊降倪x擇點(diǎn)并不多,以當(dāng)前電腦的計(jì)算力可以用窮舉找到最佳下法。
顯然,以當(dāng)前電腦的計(jì)算力,無法對圍棋進(jìn)行暴力窮舉。
那么,蒙特卡洛算法有什么神奇之處呢?
一、為什么叫蒙特卡洛(蒙特.卡洛)
20世紀(jì)40年代美國“曼哈頓計(jì)劃”的成員S.M.烏拉姆和J.馮·諾伊曼首先提出的,用馳名世界的賭城—摩納哥的Monte Carlo命名。
二、原理
本質(zhì)是一種統(tǒng)計(jì)方法,即用大量的隨機(jī)樣本,以出現(xiàn)概率當(dāng)作問題的解。
比如計(jì)算圓周率π:
顯然上圖1/4圓與正方形的面積比為:
那么,如果在正方形內(nèi)隨機(jī)產(chǎn)生n個(gè)點(diǎn),通過計(jì)算這些點(diǎn)和原點(diǎn)的距離,判斷這些點(diǎn)是否在1/4圓內(nèi)。
在1/4圓內(nèi)的點(diǎn)數(shù)/n = π/4 。即點(diǎn)落在1/4圓內(nèi)的概率*4 = π。 隨機(jī)模擬30000個(gè)點(diǎn),$ \pi$的估算值與真實(shí)值相差0.07%.
原來概率與統(tǒng)計(jì)可以這么用。
推而廣之,可以計(jì)算任意一個(gè)積分的值。
關(guān)于蒙特卡洛還有許多神奇的應(yīng)用,請移步
《A Business Planning Example》
《蒙特卡羅(Monte Carlo)模擬的一個(gè)應(yīng)用實(shí)例》
《微觀不可預(yù)測的交通的蒙特卡羅模擬》
《基于蒙特卡羅數(shù)值模擬的大跨橋梁狀態(tài)評(píng)估》
回到問題上,阿法狗是怎么選擇下一步的呢?
簡單的說
以上2步反復(fù)進(jìn)行,顯然,模擬的次數(shù)越多,越有可能得到最優(yōu)解。
這也就是為什么同樣的zen7軟件,電腦越快、計(jì)算時(shí)間越久,下法越厲害。
總結(jié)
- 上一篇: 【导航链接】计算机科研学习
- 下一篇: 中国旋转开关行业市场供需与战略研究报告