A Survey of Monte Carlo Tree Search Method 筆記以及中文翻譯概要

摘要:MCTS蒙特卡羅樹搜索(Monte Carlo Tree Search)結合了精確的樹搜索和隨機採樣的搜索方法,其在圍棋和很多領域取得了矚目的成就。本文對近五年的與其相關的文章做了總結,包括起源、變種、提高其性能的方法、應用領域做了介紹。

1 簡介

MCTS是一個通過在決定空間內隨機採樣建立搜索樹,從而得出最佳決策的方法,在AI領域已有廣泛應用。
自其被提出的五年時間以來,其在圍棋領域的應有鼓舞着人們。通過對其算法的不斷改進人們已經瞭解到了其優點與缺點。
特點:
1.他需要不斷地進行統計,需要更好的計算能力支撐。
2.他不需要特定領域的知識,而只需要直到規則,就可以在很困難的領域取得成功,但很多其他的方法都是需要特定領域的知識的。
作者調研了近五年的論文,可以提供一個對MCTS的初期印象

1.1 概述

MCTS的過程:
①尋找需要開採的節點,這裏就涉及到了exploration(探測沒采樣的節點)和exploitation(開發已知的優秀節點)的平衡。
②在找到的節點上進行模擬,並更新存儲的數據,包括對該節點該行動的獎勵值更新和對該節點之前的歷史節點的獎勵值更新。
③在第二點中究竟應該怎樣對第一點中找到的節點進行模擬呢?最簡單的辦法就是使其隨機的選取一個行動,當然也有複雜一些的辦法。
MCTS的最大的好處:
不需要對中間過程進行判斷,也就是即使很有很有效的評估函數來評估遊戲過程的得分,只要知道遊戲規則,能在最終的節點判斷出輸贏即可,這可以有效的避免局部最優的影響。

1.2 重要性

MCTS在數字遊戲和信息不完整的遊戲中均取得了不少成就,在圍棋上的成就最大。因爲人類圍棋選手與原有的電腦僞智能的差距太大了,而2012年之前的MCTS縮小了這個差距。然而其只能在9*9的棋盤上取得佳績,像是19*19這樣的正規棋盤上還沒有出現超越,因爲正規棋盤的搜索樹分支太大,樹的深度太深,導致計算量極大,而目前有沒有完美的判斷中間節點是否優秀的評估函數。
即使是這樣,MCTS也已經成爲了AI的很重要的研究方法和工具,只要引入一點點專業領域的知識,就可以極大地降級計算量,雖然在降低計算量的同時也引入了人爲的知識可能不夠準確的後果,但是整體來看還是可以接受的。同時人們也希望他可以和其他的算法進行雜交,並且作者相信他會成爲主流工具。

1.3 目標

本文通過介紹算法本身、變種、性能提升、應用等知識,想要告訴讀者MCTS很強!瞭解已有的MCTS應用,並且可以以這篇文章爲索引將已有的算法結合到新的問題上使用。

1.4 文章結構

第一部分 概要
第二部分 介紹了一些專業術語和概念
第三部分 MCTS算法的具體細節
第四部分 MCTS的變種,從其基本方法引申出了很多其他方法
第五部分 提升其構造樹能力的方法
第六部分 提升其模擬和記錄數據能力的方法
第七部分 介紹其在遊戲中和其他領域上的應用
第八部分 對MCTS如今狀態、優缺點進行分析,對未來進行展望
第九部分 總結和致謝

本文喪心病狂的引用了240個參考文獻,均爲近五年來對MCTS的研究,在上面的每一部分裏只是簡要的對提到的內容進行介紹,如果有精力可以讀一下參考文獻。

在文章的最後有兩個表分別是MCTS在遊戲領域應用的各種方法及其優勢,和在非遊戲領域的對應表格。


2 背景

通過對決策理論、博弈論、蒙特卡羅和基於綁匪的方法的介紹,對MCTS的發展進行講解。主要介紹了在博弈論中的應用。

2.1 決策理論

決策理論結合了概率論和效用理論,在不缺的情況下提供決策。涉及到了運籌學和馬爾科夫鏈決策程序。

2.1.1 馬爾科夫決策程序(Markov Decision Processes)MDPs

對全部可觀察的環境中的決策問題進行建模,具體如下

  • S:狀態集合,S0爲初始狀態
  • A:行動集合
  • T(s,a,s’):在狀態s的情況下,選取動作a到達狀態s’的概率分佈
  • R(s):獎勵函數
    建模實際上就是形成一個狀態動作對的概率分佈,得出在狀態s時採取動作a的概率。
    而政策(在後文中指的是樹的政策)則是想要找到最大收益的動作。

2.1.2 部分可觀測的馬爾科夫決策程序

其比正常的MDPs多了一個條件

  • O(s,o):狀態s下,環境因素o可以被觀測的概率
    無論是以上那種決策程序,最優決策都是確定的而不是按照概率分佈的。

2.2 博弈論

博弈論涉及到了多智能體之間的交互。
每一次遊戲都從初態開始運行,直到某個終態結束。每一個玩家在狀態轉換函數的引導下進行動作選擇,同時評估函數要對每一次動作進行獎勵賦值。例如最終勝利則+1,失敗-1,平局0分等。
也可能會存在無法分出勝負的情況,每個玩家都在和對方的博弈中採取了最優的行動,但是同時無法取得勝利,這成爲納什均衡。他的計算量很大,通常無法解決。

2.2.1 組合遊戲

組合遊戲的五點要求

  • 獎勵和爲0:最終狀態勝利和失敗的總獎勵狀態和爲0(單獨有正有負,總體上爲0)
  • 信息可見:不存在隱藏信息
  • 無可變影響:沒有按照一定概率決定遊戲發展方向的因素
  • 動作按順序:像下棋這樣你一步我一步的,不存在同時啓動等問題
  • 動作離散

像是象棋,圍棋都屬於組合遊戲。多人的可結盟遊戲也不屬於組合遊戲。組合遊戲可以用來做AI的練習。

2.2.2 真是世界的AI

真實世界所獲得的獎勵通常會延時到達,決策理論如下
Minimax(極小極大算法):將對手多獲得的最大獎勵極小化,他假設對手總是能做出最好的決策,而總是在被動的應對對手的決策,例如僞AI五子棋中電腦總是不停的堵你的兩個或三個連在一起的棋子一樣。但是由於該算法並沒有尋找自己能夠獲得的最大收益,所以往往不是自己活得最大收益的行動。同時還採用了α-β啓發式算法進行剪枝。

2.3 蒙特卡羅方法

蒙特卡羅方法來自於統計物理,在遊戲領域有很多應用。
這裏寫圖片描述
Q:在狀態太s下選擇a動作的平均得分
N(s,a):狀態s下選擇a動作的次數
求和項:在狀態太s下選擇a動作的總得分
最基本的蒙特卡羅可能會被困在局部最優,這就需要與後面所介紹的UCT算法結合,跳出局部最優。
即便如此,最基本的蒙特卡羅也可以根據歷史的獎勵值選取相對較好的行動。

2.4 基於強盜的方法

該方法是一個跳出局部最優的方法,在已經找到的較優的行動的開發,和目前認爲不夠優秀但可能對以後有很好的影響的行動的勘探,兩方面進行平衡。

2.4.1 遺憾

遺憾定義爲當前狀態的最優獎勵之和減去真正獲得的獎勵之和。研究發現隨着試驗次數的增多,沒有一種方法可以把遺憾控制在O(ln n)的範圍內,一個控制遺憾的有效方法如下

2.4.2 上置信區間(UCB)

該方法在開發與探索中做了一個平衡
這裏寫圖片描述
開發:第一項爲針對土匪問題選擇第j個手臂所獲得的平均獎勵,平均獎勵越高約鼓勵繼續對其開發
探索:第二項鼓勵探索,nj代表對第j個手臂的探索的次數,n爲總探索次數。對於第一項大的手臂,其nj肯定也大,第二項趨近於0;對於第一項小的手臂,其被認爲是對當前狀態的價值不高的節點,nj相對較小,隨着n的增長,第二項將會變大,如果還不對其進行探索(nj很小),第二項將會超過第一項的影響,從而鼓勵對其探索,當對其開發之後nj下降,如果此時該節點的探索沒有獲得很大收益將會暫緩對其的探索,直到n增大到需要重新對其探索爲止。


3 蒙特卡羅搜索樹

本節介紹了與蒙特卡洛搜索樹相關的一系列算法
兩個基本假定

  • 行動的價值可以通過隨機模擬得出
  • 這些價值可以用來調整行動策略以選出最佳策略

通過逐漸的構建搜索樹,對行動的價值進行評估,最佳行動將會越來越準確。

3.1 算法

蒙特卡羅搜索樹的算法是通過迭代搜索策略來構建一個搜索樹,直到找到最佳策略或達到了預先限定的時間或內存空間或是迭代次數的限制,根據找到的結果返回根節點的最佳動作。每一個節點代表一個狀態,指向子節點的線代表一個動作。
迭代分爲以下四步:

  • 選擇:使用樹策略從根節點開始採取行動,直到選擇到一個最緊急的可擴展節點(不一定是葉子節點,也可能是含有部分未探索的行動的中間節點)
  • 擴展:在該節點上通過樹策略選擇一個可行的行動,並將其指向的節點添加到搜索樹中。
  • 模擬:從新節點開始採用默認策略進行模擬,直到達到一個終端狀態並得出獎勵。
  • 獎勵回傳:模擬得出的獎勵回傳到新節點到根節點的每一個經由節點上,回傳的獎勵將會影響樹策略
    這裏寫圖片描述
    上面提到了兩個策略:

  • 樹策略:在已有的樹中從本節點選擇行動,進入到下一個要探索的原有節點或新節點。樹策略的形成是由一次一次的迭代並將獎勵反向傳播而形成的,它所選擇的下一個動作的概率由回傳的獎勵影響。(從後文所講述的UCT中可以看出還與訪問次數有關)

  • 默認策略:在非終端節點上採用隨機或者啓發式算法尋找未探索過的動作和節點,並最終得出獎勵評估。

何時迭代結束:
達到與限定於德計算預算時迭代結束。這是將會返回根節點的下一步動作,其指向的節點一般都是訪問次數最多並且獎勵最高的節點。

3.2 樹的上置信區間UCT

UCT與UCB1的形式非常相近,知識前面多了2倍的常數係數,常數大於0。
這裏寫圖片描述
nj代表第j個動作的訪問次數,訪問次數爲0時下一次訪問的概率爲1(若有多個0訪問的動作則依次訪問),這樣做是爲了保證每個節點在進行擴展時,每個動作都至少被訪問了一次。其試圖以此來平衡開採與探索,保證即使目前獎勵低的節點也最終會被訪問到,可以跳出局部最優。每一個節點同時保存其被訪問的次數和獲得的獎勵,已決定下一次使用樹策略時的動作選擇概率。

3.3 算法實現

這裏寫圖片描述
UCT的搜索算法:首先建立初始狀態的節點,在迭代允許的次數或者時間和存儲空間內進行迭代,首先使用樹策略找到待擴展的節點並擴展,其次使用默認策略進行模擬並得出最終獎勵,再利用獎勵回傳函數對擴展的 節點和之前的節點回傳獎勵,最終返回根節點的最好行動。

這裏寫圖片描述
樹策略:只要當前節點不是遊戲終端狀態,如果當前節點的所有動作未被完全拓展,則拓展本節點的其他動作並返回下一個新節點,否則選擇一個最佳子節點。若到達了終端節點,則返回終端節點。

這裏寫圖片描述
拓展本節點:選擇本節點沒有被訪問的一個動作,並把該動作指向的節點添加到樹中,同時記錄下指向該節點的動作,返回該節點。
這裏寫圖片描述
最好的子節點:UCT算法的精髓部分,用於在樹策略中尋找下一個節點中使用。
這裏寫圖片描述
默認策略:用於模擬時使用,隨機選取當前節點的一個動作,直到模擬到最終的節點,並返回其終端狀態對應的獎勵。
這裏寫圖片描述
獎勵回傳:從當前擴展節點到根節點的每一個節點的訪問次數+1,獎勵增加。

可以證明UCT經過多次迭代後會收斂到最優行動。

3.4.1 啓發式算法

蒙特卡羅搜索方法的最大優點就是不需要特定領域的啓發式算法,但是如果採用了啓發式算法會極大地降低模擬次數、減少分支。可以很快的得出結果,但是也會降低探索的空間,容易陷入局部最優。是否使用啓發式算法,和啓發式算法的使用強度需要權衡。

3.4.2 非對稱

搜索樹的形狀是非對稱的,對於優秀的行動的探索更多。

3.4.3 比較

比較MINIMAX(最小化敵方最大獎勵)和MCTS可以看出後者不需要啓發式算法,而前者必須要啓發式算法,國際象棋在數據的維度上比圍棋大的多,故使用啓發式算法的MINIMAX更好,而MCTS在圍棋中的表現更爲優秀。


4 變種算法

傳統AI適用於兩個人對戰的組合遊戲,MCTS的變種算法已經可以適用於單人、多人、策略、實時、不確定性和同時移動的遊戲。

4.1 Flat UCB

每一個葉子節點都作爲單一的強盜手臂問題來判斷,與Flat MC 不同,FlatMC沒有建立樹,把UCT的遺憾界提高了。

4.2 Bandit Algorithm for Smooth Trees (BAST)

使用了回報是平滑的的假設,可以識別出是否是最優分支,並且會不斷拓展最優分支,並假設如果時間無限則只有最優分支會被不斷拓展上去,而普通的UCT則會拓展全部的分支

4.3 Learning in MCTS

MCTS是強化學習的一種,可以應用於時間差異學習

4.3.1 Temporal Difference Learning (TDL) 時間差異學習

TDL和MCTS都是根據狀態對應的價值或者狀態行動對來選取行動的。差異在於TDL是提前運行好全部的過程並保存下來,而MCTS是一邊運行一邊計算。

4.4 Single-Player MCTS (SP-MCTS)

單玩家模式的修正在UCB公式中添加了第三項,用於代表可能的偏差
這裏寫圖片描述
根號內部第一項爲方差,ni爲該節點訪問次數,D爲常數,第二項可以認爲是對不常訪問的節點,其統計偏差更大。該方法還使用了啓發式算法。
如果單一使用平均值可能會掩蓋好的行動策略,這裏採用了方差,也就是如果有一次的獎勵很大則會有更大的可能性訪問這裏,即使平均值不大。
單人玩家可能會有氣特定的操作習慣,這也是不能應用到對所有玩家的策略中的。

4.5 Multi-player MCTS

在Minimax方法中,每一名玩家都希望自己的獎勵最大化,敵人的獎勵最小化。
而在多玩家應該採用max^n方法,對應於每個節點都存儲一個獎勵向量,在計算時整體考慮本聯盟的獎勵,從字面上理解爲使得我方n的隊友的獎勵最大,這有可能對於本玩家並不是最大獎勵。其將會考慮減少不利於友方玩家的影響,就好像都是自己的棋子一樣。

對於多玩家的不同聯盟情況有三種決策方法

  • Paranoid UCT:認爲所有人都是敵對的
  • UCT with Alliances:有明確的聯盟成員名單
  • Confident UCT:對每一個玩家進行搜索比較,確定是否可以形成聯盟

對於多個合作的對手,可以看成單一有效的對手。

4.6 Multi-agent MCTS 和 Ensemble UCT

有些研究認爲在默認策略的模擬階段,採用並行化的多個智能體單獨模擬並結合分析結果,產生的結果要優於只有一個智能體模擬的結果。

4.7 Real-time MCTS

MCTS在實時遊戲中的應用不夠優秀,因爲其需要大量的時間進行模擬。

4.8 Nondeterministic MCTS

對應於非確定性的遊戲並不是所有信息均可觀測,大部分現實中的應用均不是全部可觀測的。

4.8.1 Determinization

可以通過對已有的偶然事件的結果進行分析,進而預測未來結果

4.8.2 Hindsight optimisation (HOP)

事後優化,提前設置好每一個節點的獎勵上限,在最終由人爲選取較優的行動

4.8.3 Sparse UCT

稀疏UCT,某些節點可能一個動作按照概率對應於多個孩子。

4.8.5 Multiple MCTS

同時搜索多個樹,綜合得出最佳結論

4.8.6 UCT+

不使用UCB的第二項,而是直接選取平均值最大的,這樣有可能會導致陷入局部最優,但是速度上有很大的提升。

4.9 Recursive Approaches

遞歸調用會記錄下當前最佳操作和之後的一系列最佳操作串,我的理解是,對應於我的當前最佳操作,在模擬過程中同時得出敵方下一步的最佳操作,和我方應對的方法。如果敵方的最佳操作預測成功,則可以大幅度減少運算的代價。

5 樹政策的增強

對於樹政策的增強主要有兩方面

  • 獨立於特定應用領域:不需要任何領域的先驗知識,均可以應用其中,一般只能做到微小的提高,只能對特定種類的領域起到提高作用。
  • 對於特定領域的應用:絕大部分對於特定領域的性能提升都是應用了特定領域的先驗知識。

5.1 Bandit-Based Enhancements

基於綁匪問題的UCB算法是MCTS樹策略搜索過程的核心,下面列出了一些對其提升的方法

5.1.1 UCB1-Tuned

對其第二個參數的常數項係數人們已經研究出了一些較爲穩妥的改進
這裏寫圖片描述
s爲第j個手臂被選取的次數,t爲總實驗次數。

5.1.2 Bayesian UCT

貝葉斯UCT被認爲可以極大地改善原來的算法,其提出了兩個用於改進原有公式的看法,較爲優秀的是
這裏寫圖片描述
到目前爲止已經有三個隊原有公式的改進方案了,其一是添加第三項,其二的更該第二項的常數部分,其三就是本方法多乘了一項。無論是怎麼改進,都是在原有公式基礎上增加了方差這一項,不僅考慮平均值,加大了對最大值的考慮,從而進一步平衡開發與勘探。

5.2 Selection Enhancements

在樹政策的選擇節點方面,很多實驗已經證明特定領域內的知識對提升其性能有很大的幫助。

5.2.1 First Play Urgency

普通的樹策略在某節點存在多個未探索的行動,決定選擇哪一個未探索的行動時,採用的是隨機的策略。本方法對每一個行動進行預評分,鼓勵在早期的開發階段對其開發。

5.2.2 Decisive and Anti-Decisive Moves

決定性行動代表立刻取得勝利,反決定性行動代表阻止對手立刻取得勝利。
舉個例子,對於五子棋而言,在每次探索之前,先檢測我方是否有已經連成的四個字,並且還有下第五個子的空間,如果有則停止選擇和模擬,該位置就是決定性行動,可以直接選擇;而如果敵方已經有上述情況出現,則直接堵死敵方,成爲反決定性行動。
然而對於一些複雜的像圍棋一樣很難有一招定勝負的情況,添加先驗知識則會更加困難,即使是五子棋也會有出現多個反決定性行動的位置,也需要對出現的這幾個位置進行探索已決定最佳操作。

5.2.3 Move Groups

有時很多動作在最終獲得了近乎相同的獎勵,如果想要分清具體選擇哪一個要耗費很大的計算量,這時可以在計算的初期對行動進行分組,使用UCB1選擇行動組。

5.2.5 Progressive Bias

漸進偏差,在節點的訪問數量較小時,其統計值的偏差很大。如果在其訪問初期人爲按照先驗知識設置其訪問概率,並設置隨着實驗次數的增多,人工添加的部分佔比越來越小,可以有效的在初期起到預熱的作用。
這裏寫圖片描述
Hi爲人爲對i節點設置的獎勵,ni爲第i個節點的訪問次數。

5.2.6 Opening Books

將模擬過程中生成的數據存儲下來,並形成一整套棋譜。

5.2.7 Monte Carlo Paraphrase Generation (MCPG)

完全拋棄UCB1的,不選取每個行動的平均得分,而選取最大得分。

5.2.8 Search Seeding

與5.2.5類似,爲每一個狀態賦初值,相當於在UCB標準公式上加上常數項,只不過這個常數項不像5.2.5一樣會衰減。

5.2.9 Parameter Tuning

UCB的公式裏的勘探參數Cp等常數項均爲人爲設定的,對應於不同遊戲該常數應該選取不同的值。需要人爲實驗後調整。

5.3 All Moves As First (AMAF)

其核心思想是,對於行動分支很大的模擬,不僅把模擬的結果更新到已有樹策略上,還把模擬過程中的行動的得分記錄到樹策略上同一級的行動上。
例如坦克在向敵方坦克行進的過程中,此時有兩個行動可以選擇,一是繼續行進,二是開炮,假設樹策略選擇了繼續前進,在之後的模擬的默認策略上選擇了開炮並得到了獎勵,則不僅給當前的選擇,即繼續前進加分,也給當前節點的動作開炮加分。雖然本節點的動作開炮沒有被本次選擇,但是在下一次被選擇了,故也加分。

5.3.1 Permutation AMAF

當前狀態選擇了一系列動作的不同排列組合,到達了同樣的終端狀態,並獲得獎勵,該方法會對多種不同的組合賦分。

5.3.2 α-AMAF

把標準UCT和AMAF按照一定的比例進行混合
這裏寫圖片描述

5.3.3 Some-First AMAF

在m次模擬後將5.2.5的先驗概率截斷。

5.3.4 Cutoff AMAF

在前m次模擬中使用AMAF算法,此後的使用UCT。

5.3.5 RAVE

將5.3.2中的α換成
這裏寫圖片描述

5.3.6 Killer RAVE

只有最重要的行動採取RAVE,對於普通行動減少計算量

5.3.8 PoolRAVE

修改了MCTS的步驟,首先通過RAVE進行預熱,選出當前狀態最佳行動池,以概率P執行步驟m,否則執行默認策略。

5.4 Game-Theoretic Enhancements

如果某個狀態在博弈論中的價值是確定的,則可以備份到樹上,對應於普通的勝利平局失敗的得分,計+1,0,-1分,但對於一些關鍵性的可以確認致勝或導致失敗的步驟,可以計正無窮和負無窮。

5.4.1 MCTS-Solver

當發現子節點均爲失敗時,本節點既可以認爲是失敗了,並且賦值爲負無窮。
當發現子節點有一個成功,既可以認爲本節點成功,並賦值爲正無窮。這裏是對單人玩家而言的。

5.4.3 Score Bounded MCTS

設置悲觀和樂觀邊界,認爲獎勵不得超過此值。

5.5 Move Pruning

剪枝可以加快搜索效率,對於不會選取的行動就不再搜索。分爲軟剪枝和硬剪枝。

  • 軟剪枝:被剪去的行動經過一段時間之後還可能被選擇,可以防止最好的舉措被過早的修建。
  • 硬剪枝:決定修剪後不會再訪問該行動。

6 OTHER ENHANCEMENTS

本節介紹了除樹策略之外的提升,例如默認策略,獎勵回傳,並行化等。

6.1 Simulation Enhancements

模擬的默認策略是隨機選取,隨着時間的增長會慢慢的遍佈整個狀態空間。如果則模擬過程中加上預先認爲設定的先驗知識,或通過學習得到的知識,會加快模擬,也會得到更多有效的模擬。

6.1.1 Rule-Based Simulation Policy

基於一定認爲設定的規則進行模擬。

在選擇下一步動作時參考之前的動作,形成連貫動作。

6.1.3 Fill the Board

選擇周圍沒有棋子的地方下棋,儘快填充棋盤。

6.1.4 Learning a Simulation Policy

  • Move-Average Sampling Technique (MAST) :將樹策略中的行動得分應用於模擬的默認策略中
  • Predicate-Average Sampling Technique (PAST):將狀態動作對的得分應用於模擬中。

6.1.5 Using History Heuristics

與6.1.4類似,在選擇過程中選擇了行動a,則模擬也選擇行動a

6.1.6 Evaluation Function

也可以通過評估函數進行模擬。普遍是在模擬初期使用評估函數,過渡到根據歷史知識選擇最佳行動。

6.2 Backpropagation Enhancements

6.2.1 Weighting Simulation Results

對反向傳播的獎勵進行加權。因爲模擬時間越久越準確,所以後來模擬的獎勵權重更高。因爲模擬越短越準確,所以模擬越短權重越高。

6.2.2 Score Bonus

對於勝利失敗不止設置+1和-1,而是設置在+1到-1的區間內部,用於區分大勝小勝。

6.2.3 Decaying Reward

對應於當前節點返回的獎勵值最大,此前的每一個節點的獎勵返回值都乘以一個小於一的常數。

6.3 Parallelisation

由於MCTS的每次模擬都具有獨立性,因此可以採用並行化來加快運行速度。
這裏寫圖片描述

6.3.1 Leaf Parallelisation

葉子節點進行模擬時同時進行多個模擬
缺點:要等待最長的模擬結束後才能開始新的搜索。

6.3.2 Root Parallelisation

對於已有的搜索樹,並行的從根節點開始並行的先採用樹策略選擇要拓展的節點再採用默認策略進行模擬。

6.3.3 Tree Parallelisation

樹並行化考慮到多線程對資源的訪問問題,引入了全局鎖和局部鎖。這在模擬過程遠長於樹搜索過程的時候是可行的。

6.4 Considerations for Using Enhancements

某些領域中,增強有很好的效果,某些領域中無法提升計算速度,甚至還會產生出錯誤的決策,這就會適得其反。因此對於MCTS的各類增強要結合特定的領域來使用才更加有效。

7 APPLICATIONS

在本節中,主要介紹了MCTS在圍棋,連接遊戲,其他組合遊戲,單人遊戲,綜合遊戲(非應用於單一領域),實時遊戲,非決定因素的遊戲,非遊戲領域的應用。
在每一領域都介紹了代表性的遊戲的玩法,有很多遊戲是國內沒有接觸過的,理解起來有些困難。同時也介紹了特定領域的知識,現有的應用,並指明瞭未來會朝着什麼方向進行完善。

8 SUMMARY

對本篇文章做一個總結,從本文附錄的兩張表中可以看出UCT是MCTS使用最頻繁的方法,在圍棋領域的應用最多,在其他以組合遊戲爲主的領域也有很廣泛的應用。

8.1 Impact

MCTS有效的解決了中間狀態的評估問題,在遊戲領域成爲了強大的電腦玩家,在非遊戲領域也有很強的應用。

8.2 Strengths

其一個很大的優勢是在不知道遊戲知識而只知道遊戲規則時可以形成良好的策略。
整合人類已有知識,結合啓發式算法,可以使得效率大大提升。
其另外一大優勢是,即使先驗知識有錯誤的引導,MCTS也能夠通過大量的模擬來消除他的影響。

8.3 Weaknesses

缺點在於對於擁有大量分支結構的問題,其實時性非常差,對應於很多問題只能夠給出相當淺的搜索樹。如果其搜索的算法沒有從本質上改變,則很難對複雜實時問題進行應用。

8.4 Research Directions

未來的研究方向主要爲:

  • 總體上提升MCTS性能
  • 在特定領域提升MCTS性能
  • 理解其搜索過程內在是如何運行的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章