MCTS处理N玩家游戏中的对手行为

我想了解在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个玩家,可能的联盟数量(及其混合)是巨大的。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注