『壹』 蒙特卡洛樹是什麼演算法
蒙特卡羅樹搜索(MCTS)會逐漸的建立一顆不對稱的樹。可以分為四步並反復迭代:
(1)選擇
從根節點,也就是要做決策的局面R出發向下選擇一個最急迫需要被拓展的節點T;局面R是第一個被檢查的節點,被檢查的節點如果存在一個沒有被評價過的招式m,那麼被檢查的節點在執行m後得到的新局面就是我們所需要展開的T;如果被檢查的局面所有可行的招式已經都被評價過了,那麼利用ucb公式得到一個擁有最大ucb值的可行招式,並且對這個招式產生的新局面再次進行檢查;如果被檢查的局面是一個游戲已經結束的游戲局面,那麼直接執行步驟4;通過反復的進行檢查,最終得到一個在樹的最底層的最後一次被檢查的局面c和它的一個沒有被評價過的招式m,執行步驟2。
(2)拓展
對於此時存在於內存中的局面c,添加一個它的子節點。這個子節點由局面c執行招式m而得到,也就是T。
(3)模擬
從局面T出發,雙方開始隨機的落子。最終得到一個結果(win/lost),以此更新T節點的勝利率。
(4)反向傳播
在T模擬結束之後,它的父節點c以及其所有的祖先節點依次更新勝利率。一個節點的勝利率為這個節點所有的子節點的平均勝利率。並從T開始,一直反向傳播到根節點R,因此路徑上所有的節點的勝利率都會被更新。