我想了解MCTS算法是如何工作的,以及如何在紙牌遊戲中實現它以改善AI引擎。蒙特卡洛與UCB應用於複雜的紙牌遊戲
我讀過mcts.ai/網站和許多關於它的論文,其中包括一個關於在智能卡牌遊戲中將AI蒙特卡洛搜索與UCB一起應用於AI的成功性的結果,或多或少是什麼我需要這樣做,但是我在嘗試理解一些要點以及如何應用它以解決我需要的問題時遇到了一些麻煩。我在數學方面也沒有那麼多的經驗,所以當論文用複雜的公式解釋所有這些東西時,我就會迷失方向。
這就是我想出迄今:
鑑於遊戲狀態(在遊戲中用戶的手),確定哪個都可以做出那麼我將可能的法律戲劇創建一個節點列表(一個表示每個玩家)作爲MCTSTree根節點中的一個屬性,並且每個節點的結果(得分值?)
模擬一個完整的(直到結束)隨機玩家並將結果記錄在每個節點中,無論玩家是贏了還是輸了,以獲得完整的圖片。
這裏就是「我想」蒙特卡洛+ UCB應適用:
選擇使用UCB遞歸更有前途的播放(節點),並在情況下,其葉,擴大與該節點從它的gameState所有可能的戲劇。
模擬n從選定節點播放直到達到一定的時間。
- 在這個階段,我有一些懷疑...說我嘗試隨機播放給出了可能的播放列表...我爲了繼續模擬該第一個結果必須做什麼?我應該讓樹長大嗎?
如何反向傳播結果?
然後,
念及,由於這是一個複雜的玩牌,我有這麼多的可能的行動......將它有足夠好的性能,有這麼多孩子的在任何節點?
如果每次模擬都基於一個遊戲狀態,並且每次玩家應用移動時遊戲都在改變狀態,那麼我怎麼能知道樹是否真的有用?
我真的很感激任何幫助。
非常感謝!
本調查文件(自2012年3月起)列出了核心MCTS框架,然後討論了許多變體:http://www.doc.ic.ac.uk/~sgc/papers/browne_ieee12.pdf它包含有關計算UCB。 – jspcal
謝謝@ jspcal! – magnoz