我目前正在为策略游戏 AI 编写 Monte Carlo Tree Search 的实现,并且对 Rollout(模拟阶段)有疑问。
该算法的描述建议您应该运行模拟,直到达到最终状态,但是当您有很大的搜索空间和有限的时间时,这是不切实际的。就我而言,我将模拟步骤的数量限制为某个值(如果终止,则提前完成)。
在模拟的每个步骤中,我都会评估状态,但由于模拟由一系列随机动作组成,因此评估值可以在模拟期间增加或减少。问题是:对于非终端状态模拟,我应该返回最后的状态评估,还是在运行期间观察到的最佳状态评估?