当分数在0和n之间,用于蒙特卡洛树搜索的UCB公式



我正在实现使用蒙特卡洛树搜索播放2048的AI。根据Wikipedia https://en.wikipedia.org/wiki/monte_carlo_tree_search以及我在扩展步骤中检查的所有其他资源,您应该使用UCB公式以确定哪个节点访问wi/ni + c*sqrt(ln(N)/ni)。当末尾的分数为01(获胜或输(时,此公式效果很好,但是,该公式在2048年不起作用,因为得分是我们想要最大化的0n之间的值。

有人知道当分数是0n之间的值时,MCT中使用哪种最佳公式,以便我可以在2048游戏中使用它?

谢谢。

2048的最高得分似乎在4000000点附近。

因此,您只需要将最大可能的分数扩展到1

game_score / 3932156

挤压到[0, 1]范围很常见。

可能的问题是最大得分与最可能的分数之间的差异。在 2048 中,得分可能远远低于最大缩放量的最大分数,将产生大多数分数(将其余的范围留至1很少使用(。

这可能会在UCT计算中产生意外的后果,因为由于这种挤压,节点看起来会更相似(在不切实际的最高最大分数下(。

您必须尝试:这也是如此,挤压准确性的影响很小(请使用域知识来改善蒙特卡洛树搜索性能,以参数化的扑克平方 - 罗伯特·阿灵顿,克莱·兰利和史蒂文·博格尔特斯,以获取更多详细信息(。

最新更新