从很多博客和这个https://web.archive.org/web/20160308070346/http://mcts.ai/about/index.html 我们知道 MCTS 算法的过程有 4 个步骤。
- 选择:从根节点 R 开始,递归地选择最优子节点,直到到达叶节点 L。
叶节点 L 在这里是什么意思?我认为它应该是一个代表游戏结束状态的节点,或者另一个结束游戏的词。如果 L 不是终端节点(游戏的一个结束状态),我们如何确定选择步骤在节点 L 上停止?从一般算法的角度来看,叶子节点是没有任何
- 扩展:如果L不是一个终端节点(即它没有结束游戏)则创建一个或多个子节点并选择一个C。
从这个描述中我意识到我之前的想法显然是错误的。那么如果 L 不是终端节点,则意味着 L 应该有孩子,为什么不在“选择”步骤继续从 L 中寻找孩子呢?在这一步我们有 L 的孩子列表吗?
从这一步本身的描述来看,我们什么时候创建一个子节点,什么时候需要创建多个子节点呢?我们根据什么规则/策略选择节点 C?
- 模拟:从 C 运行模拟播放,直到获得结果。
由于第一个问题的混乱,我完全无法理解为什么我们需要模拟游戏。我认为从选择步骤,我们可以到达终端节点,游戏应该在这条路径的节点 L 上结束。我们甚至不需要做“扩展”,因为节点 L 是终端节点。
- 反向传播:用模拟结果更新当前移动序列。美好的。
最后一个问题,你从哪里得到这些问题的答案?
谢谢