2017-02-17 53 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