想象你是一位美食爱好者,刚到一座拥有上万家餐厅的陌生城市,却只住三晚、每晚只能吃一顿晚饭。想找到全城最棒的那家店,光靠运气乱撞显然不行。你于是准备了一本“探店笔记”:每天根据笔记挑一家最值得去的店,点几道招牌菜,吃完认认真真记下满意度,第二天再参考这些记录做新决定。这家店好吃,就去它附近的同类型店试试;那家店踩了雷,就在笔记里给它记上一笔。三晚过去,你虽然没吃遍全城,却已经对“哪里值得吃”有了很靠谱的判断。这座美食城就是庞大到无法穷举的状态空间,那本探店笔记就是搜索树,而你每晚“挑最值得去的店”的判断,就是在有限预算下权衡探索与利用。这套“吃遍一座城”的聪明策略,正是蒙特卡洛树搜索规划(MCTS)的核心思想:用少量精心安排的模拟,替你在巨大的决策迷宫里找到一条接近最优的路。
学透 MCTS,你就掌握了 AI 在博弈对抗、Agent 行动规划中“算力有限却要做出最优选择”的核心方法论,是面试算法题与工程落地中的高频考点。
可视化演示
展示蒙特卡洛树搜索的选择、扩展、模拟和回传四步循环,包含UCB选择策略与价值反向传播更新机制。
本节配有交互动效(进入视口后自动加载,约 3KB)。
选择:UCB策略权衡探索与利用 红色路径为UCB最高选择 每条边标注UCB得分 UCB1 = V_i + C*sqrt(ln(N_p)/N_i) 从根节点沿UCB最大值递归选择直至叶节点。
核心定义
小明刚到美食城时,面对的第一件事就是:城市太大,餐厅太多,而自己只有三顿晚饭的预算。他不可能把每家店都吃一遍,因此必须想一个聪明的办法,让这三顿饭吃得值。这个“想办法在有限预算里做最优选择”的过程,映射到人工智能中,就是蒙特卡洛树搜索规划(MCTS)要解决的问题。
在 AI 决策场景中,Agent 同样面对“状态空间爆炸”的困境:围棋有 \(10^{170}\) 种棋局,网页导航有无数种点击路径,快递调度有数不清的路线组合。MCTS 的定位,是“连接搜索算法与大模型规划能力”的桥梁——它不要求你拥有全局完整地图,而是靠反复模拟试错,一点点修正对“哪些方向值得走”的判断,最终输出一条近似最优的行动序列。
从技术上讲,MCTS 是一种基于采样的最佳优先搜索算法。它把决策问题看作一棵树,树的每个节点代表一个局面,每条边代表一个行动。算法反复迭代四步循环,不断用模拟的胜负结果来更新节点的统计量,从而让搜索重心逐渐向“胜率更高”的区域倾斜。无论是 AlphaGo 下围棋,还是 Agent 决定先搜网页还是先调工具,MCTS 都是背后那个“最值得去哪家店”的决策引擎。
你看,小明最后吃到了全城最棒的餐厅,不是因为运气好,而是因为他把每顿饭都变成了数据分析。MCTS 也一样:它不靠蛮力穷举,而是靠聪明的模拟和复盘,把有限的算力花在真正有希望的地方。
四步循环
小明探店有一套固定流程:先翻笔记,选一家当前得分最高的店;进店后发现菜单上有没吃过的菜,就点一道,给笔记加一条新记录;等餐时,他会想象“如果这顿饭后继续在这附近逛,还会遇到什么好吃的”;吃完回家,他再把真实感受更新到笔记里。这套“选店—加菜—假想—记感受”的流程,恰好对应 MCTS 的四个阶段:选择、扩展、模拟、回溯。
对应到技术上:选择阶段从根节点出发,依据某种策略(通常是 UCB 公式)逐层挑选最有希望的子节点,直到到达一个尚未完全展开的节点;扩展阶段为该节点添加一个新的子节点,记录新的局面状态;模拟阶段从新节点开始,用随机策略快速走子直到终局,得到一个 0/1 的胜负结果;回溯阶段把这个结果沿路径传回去,更新路径上每个节点的统计量。四步循环往复,搜索树就这样一步步长高变密。
为了让“笔记上的分数”有意义,每个节点会维护两个数字:访问次数 \(N(s,a)\) 和累计回报 \(W(s,a)\)。节点的胜率估计就是两者相除:
一次完整的“选店—用餐—记录”,就是 MCTS 的一轮迭代。小明每晚靠这套流程吃出一份越来越可靠的美食地图,MCTS 则靠一次次循环,把搜索树打磨成一张越来越精确的决策地图。
- 累计回报把历次模拟中这家店带来的“满意/不满意”(1 或 0)全部相加。
- 访问次数这家店一共被光顾(该分支被选中)的总次数。
- 平均满意度两者相除,得到这家店目前的平均得分,它代表“已知口碑”。
探索利用
小明遇到一个纠结的问题:有一家老店,他去了三次都很好吃,平均分高达 0.9;但城里还有几十家没尝过的新店,其中可能藏着一家 1.0 分的绝世美味,也可能全是雷。如果一直去老店,虽然稳,却可能错过最好的;如果总去新店,又容易连续踩雷。这个“老熟店与新店”的两难,正是探索与利用的经典权衡。
在 MCTS 中,利用指优先选择平均回报高、已经被验证过的节点,让搜索集中到“已知好”的区域;探索指主动尝试访问次数少的节点,因为它们的估值还不准确,可能被低估,也可能藏着惊喜。如果只利用不探索,搜索会陷在局部最优;如果只探索不利用,前面的经验就全浪费了。好的策略必须像聪明的小明一样,在两者之间动态平衡。
更妙的是,MCTS 天然包含一个“冷启动”机制:当一个新节点从未被访问过时,它的吸引力会被设成无穷大,这相当于说“没吃过的新店永远值得优先试一次”。这一设计保证了搜索树不会无限偏向某一支,而是会逐步铺开,让每个角落都有被探查的机会。
所以,小明最终的原则是:把大多数胃口留给口碑扎实的老店,但永远保留一两顿给新店。MCTS 的探索与利用平衡,正是这种朴素生活智慧的数学化表达。
UCB公式
小明需要把“值得去”的直觉变成可计算的分数。他发现纯看平均分不行——一家只吃过一次且刚好好吃的店,不该比一家吃过十次仍好吃的店更值得信赖。于是他设计了一个“探店评分”:平均满意度加上一个好奇心加分。这个加分项会随着光顾次数增多而变小,但不会完全消失。这个公式正是 UCB(上限置信区间)的核心思想。
UCB 全称是 Upper Confidence Bound,它给每个节点计算一个“乐观估计”:平均回报再加一个不确定性带来的奖励。公式如下:
当 \(n(s,a)\) 从 1 变成 100 时,好奇心项会明显缩小,但不会归零;这意味着即使一家店已经吃过一百次,只要它隔壁还有没去过的新店,小明依然会保留一丝探索的冲动。UCB 就这样用一个简洁的公式,自动完成了探索与利用的平衡。
- 平均回报项已知的满意度均值,代表“利用”这部分价值。
- 父节点总访问次数取对数\(N(s)\) 是当前局面被访问的总次数,取自然对数后,让增长越来越平缓。
- 子节点访问次数\(n(s,a)\) 是该具体行动被选中的次数,它在分母上——被选中越多,好奇心奖分越小。
- 平方根与平衡系数开根号让奖分衰减得更温和,\(c\) 则整体控制“好奇心”的强度。
回溯机制
小明吃完晚饭回到住处,不会只更新那一家店的评分,而是会掏出笔记,把这家店所在的那一整条路线上的所有记录都翻出来,挨个更新一遍。比如今晚他去了“老城区—巷子尾—那家川菜馆”,他不仅会更新川菜馆的分数,还会顺带更新“老城区”和“巷子尾”这两个区域的评价——因为这条路线好不好走、周边值不值得逛,也会影响下次该不该再往这个方向走。
在 MCTS 中,回溯就是把模拟阶段得到的结果,沿着搜索路径一路向上传播,更新路径上每个节点的统计量。这样做的意义在于:父节点是子节点的“区域代表”,一个子节点表现好,说明这个父节点所在的区域整体有希望。更新的内容有两项——访问次数加一,以及累计回报加上这次模拟的结果。
为了让更新更高效,实际实现通常用增量均值公式,而不是每次重新求和:
回溯是 MCTS 的“复盘时刻”:每次吃完一顿饭,整条路线上的所有笔记都变得更准确。这正是 MCTS 与随机搜索最大的区别——它不是闷头随机试,而是把每一次试探的教训,系统性地传回给所有相关节点。
- 旧平均值更新前节点的历史平均满意度。
- 新旧差距这次模拟的结果 \(v_k\) 与旧均值的差,代表“这顿饭刷新了多少认知”。
- 学习率\(1/n_k\) 是权重,访问次数越多、新结果影响越小,保证均值稳定。
- 新平均值旧均值加上差距的加权修正,相当于“把最新体验平滑地融入历史判断”。
树与状态
小明的笔记一开始只有几页,三晚过后已经变成一棵枝繁叶茂的“美食树”:树根是他住的城市,每个树枝是一个城区,再往下的枝桠是街道,叶片是具体的餐厅。但注意,他并没有把八千家餐厅都画进笔记——他只记录自己去过或听路人提过的那些。这就是 MCTS 的高明之处:它只建立“已探索”的局部树,而不是维护完整的全局地图。
从数据结构上看,MCTS 的搜索树中每个节点存着一个局面状态(比如棋局、网页快照、路线位置),每条边存着导致状态转移的行动。节点上的统计量(访问次数、胜率)则记录了“这个局面被探索到什么程度、表现如何”。由于每轮迭代只会扩展一个节点,整棵树的体积增长是缓慢而可控的,内存压力远小于显式枚举所有状态。
为什么不能直接枚举全部状态?因为状态空间是指数级增长的:
面对指数爆炸,MCTS 的应对策略是“局部开花”:让整棵树只向最有希望的几根枝条延伸,同时对表现差的枝条进行剪枝(不再深入探索)。小明的美食树也是如此——他只会三刷喜欢的店,而不会在踩雷的街区继续浪费晚饭。树越长越“偏科”,这恰恰是聪明的体现。
- 分支因子每个局面平均有多少个合法行动可选。
- 决策深度从当前局面到终局平均要走多少步。
- 指数爆炸状态数等于 \(b\) 的 \(d\) 次方,两个数字稍微变大,总数就会爆炸式增长。
规划应用
现在,小明把整套探店方法教给了他的 AI 助手:以后不仅吃饭,就连“先查攻略还是先订酒店”“走哪条路逛夜景”这类决策,助手都会用“探店笔记”的逻辑来推演。这个场景正是 MCTS 在现代 AI 中最受期待的应用方向——Agentic AI 的自主规划。
在大模型驱动的 Agent 中,模型每一步都会生成多个候选行动(搜索网页、调用工具、写代码、读文件……),但哪一步最值得先做?如果只看模型的单步打分,很容易因为局部判断失误而累积成大错。MCTS 的做法是:把这些候选行动当作树的分支,先快速模拟几条完整的“行动-结果”路径,再依据模拟成功率回溯更新每个候选的评分,最后选择整体回报最高的那一步执行。这种方式让 Agent 的规划从“贪心猜”升级为“谋定而后动”。
真实场景已经开始落地:在网页导航任务中,Agent 用 MCTS 在多个点击链接之间做出选择,成功率显著高于单步贪心;在代码生成中,MCTS 可以模拟“先写测试还是先写实现”的多种路线,选一条最可能编译通过的方案;在游戏 AI 中,AlphaGo 的后继者 AlphaZero 完全靠 MCTS 加神经网络,从零学会了击败人类顶尖棋手。这些应用的共同点是:状态空间巨大、单步评估不可靠、但模拟成本可控——这正是 MCTS 的舒适区。
小明的 AI 助手靠着这套方法,从“想到什么做什么”变成了“先想三步再行动”的规划高手。MCTS 给 Agent 的核心能力正是这种远见:用有限的推演,换取全局的决策质量,找到那条“近似最优”的行动序列。
安全应对
小明渐渐发现,“探店笔记”也有被操纵的风险:有些餐厅会雇人刷好评,有些网红店靠营销造出虚假热度。如果 AI 助手完全相信笔记上的评分,就可能被误导,带着他走进一家又贵又难吃的店。这个“笔记可信度”问题,映射到 MCTS 的实际部署中,就是必须正视的安全与伦理挑战。
当 MCTS 被用在真实决策系统里——比如自动驾驶的避让策略、医疗方案的推荐排序、金融交易的行动选择——错误的评估可能带来真实伤害。传统的做法是“先上线再说”,但 MCTS 这类基于模拟的决策方法更强调事前评估:通过大量对抗性测试(故意投喂恶意数据、设计极端场景)来检测搜索是否会被带偏。同时还要建立沙盒防护机制,让 Agent 先在受控环境中完成模拟规划,确认风险可控后再执行真实操作。
从工程实践看,防护机制已经从前瞻讨论进入落地阶段:给搜索树的评分加入不确定性惩罚,防止“小样本高评分”的节点被过度信任;对规划结果进行人工抽检和回滚;对明显偏离正常范围的行动序列设置熔断。更重要的是,伦理讨论必须前置——在 MCTS 被大模型 Agent 大规模使用之前,就要想清楚“什么决策不该交给自动搜索来定”。
小明的 AI 助手最后养成了一个好习惯:看到评分超高但从没听过的店,会先查证评价来源,再决定要不要推荐。MCTS 的安全应对也是一样——既要相信模拟给出的方向,也要对“纸面分数”保持警惕,用制度化的评估与防护,让智能决策在风险边界内稳健运行。
---
AI 应用场景
围棋与电子游戏 AI 的博弈决策
阶段:自主决策 / 强化学习
解决的问题:围棋、星际争霸等游戏的状态空间大得惊人,传统搜索无法穷举,而手写评估函数又极其困难。MCTS 用“模拟+回溯”的方式,在不依赖领域专家知识的情况下,仅凭自我对弈就能持续提升棋力。
具体案例:2016 年 AlphaGo 击败李世石,其核心引擎就是 MCTS 与深度神经网络的结合——神经网络提供落子先验和局面评估,MCTS 负责在有限算力下搜索最佳落子。后来的 AlphaZero 更进一步,用同一套 MCTS 框架从零学会了围棋、国际象棋和将棋。
大模型 Agent 的行动规划
阶段:Agentic AI 规划 / 推理与行动
解决的问题:大模型在长任务中容易“走一步算一步”,单步决策失误会不断累积。MCTS 允许 Agent 在多个候选行动上展开模拟推演,像“先想三步再落子”一样评估行动的长期回报,显著提升任务成功率。
具体案例:在网页导航任务中,Agent 面对一个页面上的十几个可点击元素,用 MCTS 对“点击哪个链接更接近最终目标”进行多轮模拟,再决定真实点击。在代码生成工具中,MCTS 也被用来规划“先写测试、再写实现、最后重构”的步骤顺序,提高生成代码的编译通过率。
机器人路径规划与调度
阶段:决策控制 / 运筹优化
解决的问题:仓库机器人需要在短时间内规划多条取货路径,MCTS 通过模拟不同路径的拥堵与耗时,快速找到一条接近最优的路线,比传统图搜索更能适应动态环境。
具体案例:某电商仓库调度系统中,几十台 AGV 小车共享地面。MCTS 为每台小车模拟“先走 A 还是先走 B”的多种方案,再依据整体吞吐量回溯更新选择,最终让全场效率提升约 15%。
Python 演示
import mathimport random class GameState: """从 1 开始喊数,每次可加 1 或加 2,先到达 21 者获胜。""" def __init__(self, value=1): self.value = value def legal_moves(self): if self.is_terminal(): return [] return [1, 2] def apply(self, move): return GameState(self.value + move) def is_terminal(self): return self.value >= 21 def winner(self): return 1 if self.value >= 21 else 0 class Node: def __init__(self, state, parent=None): self.state = state self.parent = parent self.children = [] self.visits = 0 self.wins = 0 def ucb(self, c=1.4): if self.visits == 0: return float("inf") exploit = self.wins / self.visits parent_visits = self.parent.visits if self.parent else 1 explore = c * math.sqrt(math.log(parent_visits) / self.visits) return exploit + explore class MCTS: def __init__(self, state, iterations=2000): self.root = Node(state) self.iterations = iterations def select(self, node): while node.children: node = max(node.children, key=lambda ch: ch.ucb()) return node def expand(self, node): if node.visits == 0: return node for move in node.state.legal_moves(): node.children.append(Node(node.state.apply(move), node)) return node def simulate(self, state): while not state.is_terminal(): state = state.apply(random.choice(state.legal_moves())) return 1.0 if state.winner() == 1 else 0.0 def backpropagate(self, node, result): while node is not None: node.visits += 1 node.wins += result node = node.parent def search(self): for _ in range(self.iterations): leaf = self.expand(self.select(self.root)) result = self.simulate(leaf.state) self.backpropagate(leaf, result) best = max(self.root.children, key=lambda ch: ch.visits) return best.state.value - self.root.state.value if __name__ == "__main__": state = GameState() mcts = MCTS(state, iterations=2000) move = mcts.search() print("推荐走法: 加", move)
Node搜索树中的节点,记录局面、父节点、子节点、访问次数与胜场。def ucb(self, c=1.4)计算节点的 UCB 探店评分,未访问节点返回无穷大以保证优先探索。def select(self, node)从根出发反复取 UCB 值最大的子节点,直到叶节点。def expand(self, node)为叶节点生成所有合法行动对应的子节点。def simulate(self, state)随机走子直到终局,返回 0/1 胜负结果。def backpropagate(self, node, result)把结果沿父指针一路传回根节点,更新统计量。max(self.root.children, key=lambda ch: ch.visits)最终选择访问次数最高的子节点作为推荐行动。
常见误区
误区MCTS 的模拟阶段是随机的,所以整个算法就是靠大量随机试错碰运气,和盲目枚举没有本质区别。
正解随机模拟只是其中一个环节。MCTS 真正的智慧在于“选择性扩展”和“回溯更新”:选择阶段用 UCB 把资源导向最有希望的节点,回溯阶段把每一次随机试错的教训系统性地传回路径上每个节点。随机模拟提供的是数据,而选择与回溯保证这些数据被用在刀刃上。就像小明探店:点菜可能是随机的,但选哪家店、之后如何更新笔记,全靠深思熟虑。
为何常见:因为 rollout(模拟)阶段的名字和表现都太像随机过程,初学者容易以偏概全,忽略了前后两个环节的决定性作用。
误区既然探索重要,那就把 \(c\) 调得很大,让算法多尝试新节点,肯定能找到更好的解。
正解\(c\) 控制的是探索与利用的权重,而不是“探索越多越好”。\(c\) 过大时,算法会像“每家店都只去一次”的小明,永远在尝鲜却从不深耕真正好吃的店,搜索变成近似均匀随机;\(c\) 过小时,又会早早锁死在一家店,错过更好的选择。实际工程中,\(c\) 通常取 1~2 之间的经验值,或者随搜索进度动态衰减。
为何常见:探索听起来积极向上,直觉上容易认为“多探索没坏处”,忽略了算力总预算有限、探索过度会稀释有效利用的事实。
误区只要模拟次数足够多,MCTS 最终一定能找到跟穷举一样的最优行动。
正解MCTS 是“近似最优”算法。它只在有限预算内把搜索重心偏向最有希望的区域,收敛速度虽然快,但并不保证在有限时间内找到数学意义上的全局最优。更准确的说法是:随着模拟次数趋于无穷,MCTS 的搜索过程会以概率 1 收敛到最优行动,但现实中的算力预算远达不到无穷。这就像小明三晚不可能尝遍全城,只能保证自己吃到的“很可能是最好的”。
为何常见:很多讲解会提到“收敛于最优”的数学性质,初学者容易忽略“无穷多次迭代”这个前提,误以为实际运行中也能保证最优。
误区MCTS 的 rollout 必须从当前节点一直随机走到终局,否则没法得到胜负结果。
正解完整走到终局只是最基础的形式。实践中模拟可以被截断——比如到达一定深度后,用神经网络价值网络直接评估当前局面,代替后续的随机走子。AlphaGo 就是把 rollout 换成“价值网络评估 + 策略网络引导”,大幅缩短模拟深度。模拟的深度可以灵活设计,关键是得到的回报估计要足够反映局面好坏。
为何常见:教科书中通常以“随机走子到终局”作为标准教学形式,导致学习者把这种简化形式当成了算法的完整定义。
面试题
Q1. MCTS 四步循环的正确顺序是什么?
- A.选择、扩展、模拟、回溯← 正确答案
- B.扩展、选择、回溯、模拟
- C.模拟、回溯、选择、扩展
- D.回溯、模拟、扩展、选择
答案:A。MCTS 的标准流程是先从根节点选择最有希望的分支,再扩展一个新节点,接着从新节点随机模拟到终局,最后把结果回溯更新路径上的所有节点。就像探店:先选店、再加菜、再想象、再写笔记,顺序不能乱。
Q2. 在 UCB 公式中,若某子节点从未被访问,它的 UCB 值应看作?
- A.直接把值记为零
- B.等于它当前均值回报
- C.无限制视为正无穷大← 正确答案
- D.无法计算视为负无穷
答案:C。未访问节点的平均回报无定义,且不确定性最大。UCB 的设计是给未访问节点“正无穷”的优先级,保证每个新节点至少被尝试一次。这就像从没去过的餐厅,永远值得先去试一顿,而不是直接给零分。
Q3. UCB 公式中的探索系数 c 增大,主要会产生什么效果?
- A.更偏向访问次数多的节点
- B.更偏向从未访问的新节点← 正确答案
- C.完全忽略胜负结果的影响
- D.搜索时间会缩短为一半
答案:B。探索系数 c 控制“好奇心加分”的权重。c 越大,不确定性项越占主导,算法越愿意尝试访问次数少的新节点;c 越小则越依赖已知平均回报。但 c 过大也不等于“完全忽略胜负”,只是探索比例明显上升。
Q4. MCTS 回溯阶段的主要任务是什么?
- A.从根节点向下重新做选择
- B.沿路径更新胜率和访问数← 正确答案
- C.将整棵搜索树全部清空
- D.重新执行一次随机快速模拟
答案:B。回溯是把模拟得到的胜负结果沿路径传回,更新每个节点的访问次数和累计回报。这就像小明吃完饭后,把感受写回笔记中涉及的所有区域,让整条路径上的评估都更准确。
Q5. 为什么 MCTS 适合围棋这类超大状态空间问题?
- A.能穷举所有可能棋局
- B.只把算力聚焦最看好的子区域← 正确答案
- C.利用专家棋谱替代深层搜索
- D.每次只模拟一步就停下
答案:B。MCTS 不需要遍历所有状态,而是根据 UCB 评分把搜索资源集中在最有希望的分支上,形成一棵“偏科”但高效的搜索树。这正像小明只深耕几家口碑好的店,而不是把全城每家店都吃一遍。
Q6. MCTS 的模拟(rollout)阶段通常采用什么策略?
- A.使用穷举遍历全部局面
- B.使用动态规划求精确解
- C.使用随机快速走子策略← 正确答案
- D.使用专家千谱辅助选择
答案:C。模拟阶段要求“快而非准”,通常用均匀随机策略快速走子到终局,以较低成本获得一个胜负样本。虽然单次模拟很粗糙,但大量样本的统计平均能提供可靠的胜率估计,这正是蒙特卡洛方法的精髓。
Q7. 在完全确定的博弈中,随迭代次数趋于无穷,MCTS 最终会收敛到什么结果?
- A.收敛到均匀随机选择策略
- B.收敛到最小化对手胜率策略
- C.最优行动被选中概率趋近一← 正确答案
- D.搜索树内存占满提前终止
答案:C。这是 MCTS 的重要理论性质:在无限次迭代下,根节点选择最优行动的概率收敛到 1。但要注意这个结论以“无穷次模拟”为前提,实际有限算力下得到的是近似最优,而非严格最优。
Q8. MCTS 相比传统深度优先搜索的优势有哪些?
- A.无需显式设计评估函数← 正确答案
- B.可以随时停止并给出答案← 正确答案
- C.天然支持并行和增量模拟← 正确答案
- D.能保证每一步都是精确最优
答案:ABC。MCTS 通过随机模拟获得回报统计,不需要人工设计启发式评估函数;由于搜索树逐步构建,任何时刻停止都能返回当前最优估计;各模拟分支相互独立,便于并行加速。但它不保证精确最优,D 错误。
Q9. 下列关于探索-利用权衡的说法,正确的有哪些?
- A.利用让 agent 坚持高回报动作← 正确答案
- B.探索让 agent 多试未验证动作← 正确答案
- C.探索项会随访问次数而增大
- D.最佳策略是只探索而不利用
答案:AB。利用是选择已知高回报的节点,探索是尝试估值不确定的新节点。UCB 中探索项随访问次数增大而减小,所以 C 说反了;只探索不利用会浪费已有经验,不是最佳策略,D 错误。
Q10. 在 AlphaZero 风格的 MCTS 中,神经网络的引入带来了哪些变化?
- A.用策略网络引导选择阶段← 正确答案
- B.用价值网络评估叶节点状态← 正确答案
- C.模拟深度被进一步大幅削减← 正确答案
- D.数学公式 UCB 完全不使用
答案:ABC。AlphaZero 中策略网络提供落子先验概率来引导选择,价值网络直接评估局面胜负,替代原来自底向上的随机 rollout,从而大幅削减模拟深度。但 UCB 公式依然保留,只是新增了先验概率与价值评估两项,D 错误。