蒙特卡罗树搜索 - 处理游戏结束节点

时间:2018-06-11 11:42:23

标签: artificial-intelligence monte-carlo-tree-search

我为一个运行良好的4人游戏实施了一个MCTS,但是当游戏结束移动在实际的树而不是推出时,我不确定我是否理解扩展。

在游戏开始时,游戏中止/失败位置只能在首次展示中找到,我了解如何对这些进行评分并将它们传播回树上。但随着游戏的进行,我最终找到了一个由UCB1选择的叶子节点,由于它是一个失败的位置,没有可能的移动,所以无法扩展,所以没有什么可以扩展,也没有一个游戏可以推出' rollout& #39 ;.目前我只是将其评为“胜利”。对于剩下的最后一名球员并为他们反击传播。

然而,当我查看访问统计数据时,这个节点会被重新访问数千次,所以显然UCB1会选择'多次访问这个节点,但实际上这有点浪费,我是否应该为这些节目反向宣传以外的其他东西“总是赢得”#39;节点?

我有一个很好的谷歌搜索这个,并且真的不能提到它,所以我误解了一些东西或遗漏了一些明显的东西,没有一个标准的' MCTS教程/算法甚至提到树中的游戏结束节点作为特例,所以我担心我误解了一些基本的东西。

2 个答案:

答案 0 :(得分:2)

  

目前我只是将此作为“胜利”而得分。对于剩下的最后一名球员并为他们反击传播。

     

然而,当我查看访问统计数据时,这个节点会被重新访问数千次,所以显然UCB1会选择'多次访问这个节点,但实际上这有点浪费,我是否应该为这些节目反向宣传以外的其他东西“总是赢得”#39;节点?

不,你目前所做的事情是正确的。

MCTS实质上将节点的值评估为您通过该节点运行的所有路径的结果的平均值。实际上,我们通常对极小极大风格的评估感兴趣。

对于MCTS'基于平均的评估等于限制中的极小极大评估(在无限长的时间之后),我们依靠选择阶段(例如UCB1)发送如此多的模拟(=选择+播出阶段) 根据最小极大评估最佳路径,即平均评估在极限情况下也倾向于极小极大评估。

例如,假设根节点下方有一个获胜节点直接。这是您的情况的一个极端示例,其中终端节点已在选择阶段到达,之后不需要播出。根节点的极小极大评估将是一场胜利,因为我们可以一步到位获得胜利。这意味着我们希望MCTS的基于平均值的评分也变得非常接近根节点的获胜评估。这意味着我们希望选择阶段将绝大多数模拟立即发送到此节点。如果是99%的模拟立即从根节点进入这个获胜节点,根节点的平均评估也将非常接近胜利,而这正是我们所需要的。

这个答案仅涉及基本UCT的实施(MCTS与UCB1 for Selection)。有关与该问题相关的基本MCTS实现的更复杂修改,请参阅manlio's answer

答案 1 :(得分:1)

  

没有'标准'MCTS教程/算法甚至提到树中的游戏结束节点作为特殊情况

MCTS变体能够证明一个位置的游戏理论价值。

MCTS-Solver(非常)众所周知:针对此变体修改了反向传播和选择步骤,以及选择最终移动的过程 玩。

树中发生的终端赢利和亏损位置的处理方式不同,在树上支持这些已证实的值时会采取特殊规定。

你可以看看:

Monte-Carlo Tree Search Solver作者:Mark H. M. Winands,YngviBjörnsson,Jahn Takeshi Saito(计算机科学系列讲义第5131卷)

了解详情。

  

所以我担心我误解了一些基本的东西。

虽然从长远来看,配备UCT公式的MCTS能够收敛到游戏理论值,但基本的MCTS无法证明游戏理论价值。