蒙特卡洛树搜索 是什么
·
蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)是一种基于随机模拟的启发式搜索算法,核心是通过“采样+统计”的方式,在复杂决策空间中高效探索最优路径,广泛用于博弈(如围棋、国际象棋)、规划、强化学习等领域。
一、核心定位
MCTS的设计目标是解决“决策空间过大、无法穷举所有可能”的问题(比如围棋有(10^{170})种可能走法,传统搜索无法遍历),它不需要预先知道所有规则的最优解,而是通过多次随机模拟+统计分析,逐步聚焦有潜力的路径,平衡“探索新路径”和“利用已验证的优路径”。
二、MCTS的核心步骤(经典四阶段循环)
MCTS的流程是迭代循环的,直到时间/计算资源耗尽,核心分为4步:
-
选择(Selection)
- 从根节点出发,用“UCT公式”(Upper Confidence Bounds for Trees)选择下一个节点:优先选“访问少但价值高”的节点,避免只走已知路径(利用)或盲目乱走(探索)。
- 公式:( UCT(s) = V(s) + c \cdot \sqrt{\frac{\ln N§}{N(s)}} )
- ( V(s) ):节点的平均价值(比如胜率);
- ( N§/N(s) ):父节点/当前节点的访问次数;
- ( c ):探索系数(控制探索-利用的平衡)。
-
扩展(Expansion)
- 当选中的节点不是终端节点(比如围棋没下完),就从该节点生成1个或多个子节点(比如围棋的可能落子点),扩展搜索树。
-
模拟(Simulation)
- 从扩展出的子节点出发,随机模拟后续步骤(比如随机落子),直到终端状态(比如围棋分出胜负),得到该路径的“结果(赢/输)”。
-
回溯(Backpropagation)
- 将模拟得到的“结果”反向传播到路径上的所有节点,更新这些节点的“访问次数”和“平均价值”(比如赢了就给路径上的节点加胜率)。
三、MCTS的特点
- 无需先验知识:不需要预先知道最优策略,靠随机模拟和统计学习;
- 自适应探索:通过UCT公式动态调整路径优先级,避免陷入局部最优;
- 高效收敛:随着模拟次数增加,搜索树会逐渐聚焦到最优路径。
四、LATS对MCTS的适配
LATS把MCTS的思路“移植”到语言模型中,做了3个关键适配:
- 节点定义:MCTS的节点是“博弈状态”,LATS的节点是“任务状态(问题+行动+环境反馈)”;
- 模拟步骤:MCTS是“随机落子”,LATS是“语言模型生成推理/行动”;
- 价值函数:MCTS是“胜率”,LATS是“LM评分+自一致性评分”。
要不要我帮你整理一份MCTS与LATS核心设计的对应表?
更多推荐



所有评论(0)