2017-02-17 56 views
2

我對如何實施MCTS「樹策略」有點困惑。我讀過的每篇論文或文章都會談到從目前的遊戲狀態(在MCTS teminology中:玩家即將採取行動的根源)進入樹狀結構。我的問題是我如何選擇最好的孩子,即使我在MIN玩家級別(假設我是MAX玩家)。即使我選擇MIN可能採取的一些特定動作,並且我的搜索樹在該節點中的深度也會更大,但MIN玩家在選擇其他節點時可能會選擇不同的節點(如果min玩家是業餘人員,以及選擇一些不一定最好的節點)。由於MIN選擇了不同的節點,所以這種做法使得MAX的整個工作通過該節點無效傳播。 對於我所指的步驟: https://jeffbradberry.com/posts/2015/09/intro-to-monte-carlo-tree-search/ 其中的樹策略:https://jeffbradberry.com/images/mcts_selection.png 種類讓我相信他們正在從單一玩家的角度來執行它。蒙特卡洛樹搜索:雙人遊戲的樹策略

+0

我;在問題中沒有看到任何Python。 –

+0

剝削性遊戲需要對手建模。對於大多數遊戲來說,假設對手玩得最好就足夠了。撲克可能是一個例外。 –

+0

對不起,彼得的標籤!我是新手,我主要使用python編寫代碼。現在我意識到這是無關緊要的。 –

回答

0

對於MCTS,您需要一些方法來生成合理估計可能移動的概率分佈。對於AlphaGo [1]而言,這是本文中的快速推出概率,$ p_ \ pi $,它取得一個狀態並輸出所有可能移動的粗略概率分佈。 AlphaGo團隊將此作爲一個淺層神經網絡,首先在專家級遊戲上進行訓練,然後通過對抗自己而得到改善。

[1] http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html

+0

所以你的意思是說它不會影響我的遊戲,因爲當MIN玩不同的棋步或朝着我喜歡的遊戲方向發展時,我會以任何一種方式再次做MCTS? –

+0

不完全。很顯然,在完全不瞭解對手的情況下,完全無法預測MIN的每一個動作,因此我們猜測一些最好的候選人並看看他們的領先位置。看一下expectimax算法而不是簡單的極小極大值可能會對這裏的直覺有所幫助 – user3080953