有没有比计算获胜机会更好的方法μ ∗ ( 1 - ( σ* f) ) * 100μ∗(1−(σ∗f))∗100对于纸牌游戏 schnapsen?

人工智能 游戏-ai 蒙特卡罗树搜索
2021-11-15 08:25:52

我的 AI(用于纸牌游戏 schnapsen)目前计算游戏可能结束的所有可能方式,然后评估每张可玩纸牌/移动的获胜百分比。计算是使用树递归完成的。如果游戏可以以三种不同的方式继续进行,则在该节点上获胜的百分比将是

μ(1(σf))100,

在哪里f介于 0 和 2 之间,μ是平均值并且σ标准差。当游戏无法进行时,AI 获胜百分比为 100,失败时为 0。我将标准差包括在此公式中,以防止 AI 冒太大风险。换句话说:我使用的是使用百分比的 MCTS。

有没有更好的公式或方法来计算下一步行动,以最大限度地提高获胜的机会?包括标准偏差有意义吗?

1个回答

以某种方式结合基于蒙特卡洛的评估的标准偏差以降低风险是有意义的,但我认为您描述的使用它的方式不会很好。

对于 MCTS 评估,如果您采用零和式方法(如果您尝试估计赢/输概率,您就是这种方法),您的估计对于玩家来说是“对称的”非常重要。如果您评估玩家 A 获胜的概率为p,重要的是您的算法同时评估其他玩家 B 的概率等于1p(或者,如果您更喜欢获胜机会,如果一名玩家获胜的机会是p%, 它应该是100%p%为其他玩家)。这似乎违反了您的想法,无论玩家“视角”如何,都会减去标准偏差。

例如,考虑标准偏差(或类似地,方差)的更好地方是 MCTS 的选择阶段。选择阶段最常见的策略是使用“UCB1 方程”。您可以对其进行修改以将方差包含在您的观察中,例如使用“多臂老虎机问题的有限时间分析”第 4 节开头所述的“UCB1-Tuned”策略。


在我上面的回答中,我假设您在谈论算法“内部”的评估,而它仍在运行。如果您在运行算法一段时间后更愿意考虑“真实”游戏的最终移动选择,最常见的方法是简单地以最大访问次数玩移动(也称为鲁棒子) , 而不是以最高分下棋。在此阶段不再需要包括标准偏差。