我有一个关于MCTS的基本问题。我的问题是关于处理起始状态的。我理解的搜索树是通过对有效动作进行分支构建的,这导致每次从相同状态开始时会遍历相同的搜索树。但是,如果游戏每次开始时的起始状态都不同呢?(例如,发不同的牌)这是否意味着会产生多个根节点,实际上导致对于有N种可能发牌组合的游戏产生N个不同的搜索树?这是否意味着如果起始状态不同,我在之前游戏中构建的搜索树就毫无用处了?在MCTS中是如何处理不同起始状态的?
提前感谢您。
回答:
据我所知,MCTS用于快速逼近最小-最大树。这里不存在所谓的“不同起始节点”——您运行算法时是基于特定的当前状态来寻找最佳答案/行动。在纸牌游戏中,您在看到自己的牌后运行它。一般来说,这种“问题”出现在非确定性游戏中,在这些游戏中您无法确定特定行动的结果(由于游戏规则的随机性等)。这种情况被称为“非确定性游戏”(如骰子游戏)或“部分信息游戏”(如纸牌游戏)。对于每种情况,都已经为MCTS开发了方法。
我建议查看http://mcts.ai/,您可以在那里找到与MCTS相关的优秀论文库。