1

我正在使用蒙特卡罗树搜索实现一个播放 2048 的 AI。根据维基百科https://en.wikipedia.org/wiki/Monte_Carlo_tree_search和我在扩展步骤中检查的所有其他来源,您应该使用 UCB 公式来确定要访问的节点wi/ni + c*sqrt(ln(N)/ni)。当最后的分数是01(赢或输)时,这个公式很有效,但是,这个公式在 2048 年不起作用,因为分数是一个介于0n我们想要最大化的值。

当分数介于两者之间时,有谁知道哪个是 MCTS 中用于 UCB 的最佳公式0n所以我可以在 2048 游戏中使用它?

谢谢你。

4

1 回答 1

0

2048年的最高分数似乎接近 4000000 分

因此,您只需将最大可能分数缩放为1

game_score / 3932156

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

一个可能的问题是最大可能分数和最可能分数之间的差异。在2048中,分数可能远低于最大值,简单的缩放会在一个狭窄的范围内产生大多数分数(使其余的范围1很少使用)。

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

您必须尝试:它也会发生,而压缩精度的影响最小(请参阅使用领域知识来提高参数化扑克广场中的蒙特卡洛树搜索性能 - Robert Arrington、Clay Langley 和 Steven Bogaerts了解更多详细信息)。

于 2019-09-04T16:00:29.263 回答