在蒙特卡洛树搜索中何时扩展以及何时模拟?
人工智能
蒙特卡罗树搜索
2021-11-11 03:19:15
1个回答
最常见的策略是每次迭代只扩展一个节点;您可以将其视为扩展播放阶段的第一个节点(图像中的“模拟”),而不是扩展播放阶段的任何其他节点。这也是在您的图像中所做的。
这是最常见也可能是最简单的策略,但肯定不是唯一的策略。这几乎是您必须扩展的最低限度,但如果您愿意,您可以扩展更多。每次迭代只扩展一个节点的最常见的方法基本上就在那里,因为它最大限度地减少了内存耗尽的风险;当您每次迭代只向树添加一个新节点时,树的增长相对较慢,因此您必须让算法运行很长时间才能耗尽内存。
如果你不怕内存不够,你可以选择扩展任意数量的节点。例如,我的通用视频游戏 AI 代理会立即扩展播放期间遇到的每个节点,因为在那个特定域中,无论如何我们只能运行相对较少的迭代,所以我不怕内存不足,即使我确实扩展了很多节点。
反向传播步骤只能将迭代的结果(信息)存储在实际存在的节点中,即已扩展的节点中。因此,扩展更多(如果可能)的好处是您将从早期迭代中保留更多信息,您的反向传播步骤立即将结果存储在路径上的所有节点中,而不仅仅是前几个节点。一般来说,这是一个相对较小的好处;无论如何,树深处/模拟深处的节点不太可能被多次访问,然后这无关紧要。但是理论上,扩展更多可以在更接近根的节点中产生更准确的值估计。
其它你可能感兴趣的问题