据我了解,MCTS 中的 playout 或模拟阶段的目标是在反向传播期间获得结果并奖励或惩罚路径上的节点。(如果我错了请纠正我)
我的问题是我是否可以使用领域知识启发式来获得这个结果,而不是实际模拟游戏到底。
我问的原因是我在做类似于寻路的事情,目标是找到到达目标状态(节点)的路径,这意味着在我的情况下模拟游戏到最后是非常困难的。
据我了解,MCTS 中的 playout 或模拟阶段的目标是在反向传播期间获得结果并奖励或惩罚路径上的节点。(如果我错了请纠正我)
我的问题是我是否可以使用领域知识启发式来获得这个结果,而不是实际模拟游戏到底。
我问的原因是我在做类似于寻路的事情,目标是找到到达目标状态(节点)的路径,这意味着在我的情况下模拟游戏到最后是非常困难的。
是的,你绝对可以。我个人在一些游戏领域中做到了这一点,在这些领域中一直运行适当数量的模拟直到达到终端状态是不可行的。
如果您总是提前终止模拟并使用启发式评估函数对其进行评估,您将失去 UCT(最常见的 MCTS 实现)在无限量处理时间的情况下找到最佳操作的保证,但您很少有无限量的无论如何,在实践中的处理时间。在可以运行足够的模拟直到结束的领域中,它可能是有害的(除非它是一个非常好的启发式函数并允许您运行更多的模拟)。
我实际上找到了这篇论文“实时战略游戏中的寻路蒙特卡洛规划”。它使用欧几里得距离的倒数作为奖励。