首页 文章

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

提问于
浏览
1

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

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

然而,当我查看访问统计数据时,这个节点被重新访问了数千次,所以很明显UCB1'选择'多次访问这个节点,但实际上这有点浪费,我应该回传一些不是单一的赢得这些“永远胜利”的节点?

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

2 回答

  • 1

    目前我只是将其作为最后剩余球员的“胜利”,并为他们反击传播 . 然而,当我查看访问统计数据时,这个节点被重新访问了数千次,所以很明显UCB1'选择'多次访问这个节点,但实际上这有点浪费,我应该回传一些不是单一的赢得这些“永远胜利”的节点?

    不,你现在做的是正确的 .

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

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

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


    这个答案只是关于基本UCT(MCTS和UCB1 for Selection)的实现 . 有关与该问题相关的基本MCTS实现的更复杂修改,请参阅manlio's answer

  • 1

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

    有MCTS变种能够证明一个位置的游戏理论 Value .

    MCTS-Solver(非常)是众所周知的:为这个变体修改了反向传播和选择步骤,以及选择最终移动的过程 .

    树中发生的终端输赢位置的处理方式不同,在树上支持这些已证实的值时会采取特殊措施 .

    你可以看看:

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

    详情 .

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

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

相关问题