我想了解在MCTS中如何处理N玩家游戏。对手的行动是否嵌入到搜索树中?他们的价值是否与其他行动的生成方式相同?如果是这样,他们的价值不会以错误的方式改变父状态的总价值吗?mcts.ai是一个不错的有帮助的网站,但关于n玩家游戏,示例代码只是说明“需要针对n玩家游戏的额外逻辑”。
提前感谢您。
回答:
事实上,这并不像仅仅模拟几个额外玩家来最大化他们自己的利益那么简单。
对于多玩家游戏的问题,至少有几种不同的方法,包括:
max^n
(最简单的)- 偏执
- 最佳回应搜索(BRS)
- 联盟混合器
基于MCTS的方法的主要问题是,在轻量级模拟/评估与其中嵌入的知识之间找到平衡。多玩家游戏为这个复杂的方程引入了它们自己的参数,因此,结果是有一些有趣的修改,可以在有限资源的情况下找到比 naive 方法更好的解决方案。其中一种方法是“Playout搜索”,在Playout Search for Monte-Carlo Tree Search inMulti-Player Games中详细描述。
2玩家游戏和多玩家游戏之间最重要的区别是,在大多数2玩家游戏中,积分系统在某种程度上是“对称的”——如果我赢了,你就输了,反之亦然。因此,假设我想赢,我可以把它看作是我试图赢和我的对手试图赢之间的战斗。一旦我们引入了第三个玩家,情况就不那么简单了。现在,如果我赢了,一切都好。但另外两个玩家不必为了赢而玩,只要他们让我输(并且其中一个赢了)就足够了,这构成了偏执策略的基础——我们假设所有玩家都在与我们对抗,而不关心谁实际上赢了。这改变了所需的模型(因为他们不再最大化任何利润),这只是可能的场景之一。在棋盘上有N
个玩家,可能的联盟数量(及其混合)是巨大的。