MCTS处理N队员对手的比赛动作

时间:2013-09-13 12:51:49

标签: tree machine-learning artificial-intelligence multiplayer

我想知道如何在MCTS中处理N个玩家游戏。对手的动作是否嵌入搜索树中? 它们的值是否与其他Actions一样生成? 如果是这样,它们的值不会以错误的方式改变父状态的总值? mcts.ai是一个很好的有用的网站,但关于n-player游戏。示例代码只是说“对于n-player游戏需要额外的逻辑”

提前谢谢。

2 个答案:

答案 0 :(得分:4)

事实上,它并不是那么简单,只是为少数额外的玩家建模,以最大化自己的利润。

对于多人游戏问题,至少有几种不同的方法,包括:

  • max^n(最简单的)
  • 偏执
  • 最佳回复搜索(BRS)
  • 联盟混合机

基于MCTS的方法的主要问题是找到轻量级模拟/评估和嵌入其中的知识之间的平衡。多玩家游戏将自己的参数引入到这个复杂的等式中,因此有一些有趣的修改可以找到更好的解决方案(就有限的资源而言)然后是天真的方法。一种这样的方法是“播出搜索”,在Playout Search for Monte-Carlo Tree Search in Multi-Player Games中详细描述。

2人和多人游戏最重要的区别在于,在大多数2人游戏中,积分系统在某种程度上是“对称的” - 如果我赢了,你输了,反之亦然。因此,假设我想赢,我可以把它想象成我试图获胜和我的对手试图获胜之间的战斗。一旦我们介绍了第三个玩家,它就不再那么简单了。现在,如果我赢了 - 一切都好。但是其他两个玩家没有必要赢得比赛,这足以让他们输掉(并且其中任何一个获胜),这是偏执战略的基础 - 我们假设所有球员与我们对抗,而不关心谁真正获胜。这交替了所需的模型(因为它们不再最大化任何利润),并且只是可能的场景之一。董事会中有N名玩家,可能的数量(以及他们的混合)是巨大的。

答案 1 :(得分:1)

我认为它与标准Minimax算法的情况相同。毕竟MCST只是估算完整Minimax树的一种方法。所以你可以将故事作为N奖励的游戏价值向量,每个玩家最大化他的结果。

考虑到勘探政策,我认为理论上政策没有改变,但我可能错了。