🏠 返回首页 🎲

MCST 图解

用一局井字棋,看懂蒙特卡洛树搜索(Monte Carlo Tree Search,常见缩写 MCTS)的四步循环:选择 → 扩展 → 模拟 → 反向传播。你执白棋(先手),AI 执黑棋(后手)。

🎮 3×3 井字棋人机对战 · 🔁 四步思考可视化 · 📊 搜索统计 · ⏱ 约 20 分钟

棋盘

你 = 白棋 ⚪ 先手 AI = 黑棋 ⚫ 后手
准备开局…

你先走:点任意空格落下白棋。之后 AI 每走一步,都会在右边把「选择 → 扩展 → 模拟 → 反向传播」走给你看;勾选「单步显示」后,AI 会等你看完搜索树再落子。

AI 的思考

等待开局
UCB WV + C · √ln N父V W 胜分 · V 访问次数 · N父 父节点访问次数

公式里的 W / V 是从「父节点(走棋的那一方)」看的胜率:子节点记的是轮到对手走棋时的胜分,所以真正比较时要用 1 − W / V。例如子节点是白棋视角、W/V = 0,说明这一路模拟里白棋一次没赢,换成黑棋(AI)看就是 1 − 0 = 1 分。

搜索树

等待 AI 思考…
—

每个节点就是当时的那张棋盘(圆环标出新建这个节点的那步棋);棋盘下面是访问次数 V 与胜分 W;蓝色 = 这次搜索走过的路径,橙色虚线 = 这次新长出的节点,⭐ = AI 最终选择。一次搜索的四步都在这里演:① 选择高亮路径 → ② 扩展长出新节点 → ③ 模拟给出胜负 → ④ 反向传播让路径上的 V / W 加一。点到某一行记录,可以让树直接跳到那一次。

逐次记录

AI 思考后,这里逐条列出每次搜索的四步

AI 每走一步,这里会逐条列出每次搜索的四个步骤(选择 → 扩展 → 模拟 → 反向传播)。

小棋盘上方:W = 胜分(按该节点轮到走棋的一方计)· V = 访问次数 · P = 父节点编号(根节点为 -1,也就是「这个节点是从哪个节点走出来的」)。虚线框是本次新长出来的节点。

最终搜索树

AI 思考后,这里会列出根节点下每个候选落点的访问次数与模拟胜率。

四步循环,一次看懂

同一局棋,在「脑内」反复预演几千次,再挑最稳的一手
🔎

① 选择

SELECTION

从根局面出发,按「胜率高 + 试得少」的分数(UCB)一路往下挑,走到一个还有没试过走法的节点。

🌱

② 扩展

EXPANSION

在这个节点里挑一个还没试过的走法,像树枝一样长出一个新子节点——它就是接下来要考察的新局面。

🎲

③ 模拟

SIMULATION

从新局面开始,让双方随机把棋下到结束,看看这局是赢、是平、还是输。这一步完全不动脑,所以很快。

🔁

④ 反向传播

BACKPROPAGATION

把这一局的胜负沿原路回传:路径上每个节点都记下「访问次数 +1、胜分加上结果」,下次选择就更聪明。

💡 小提示:AI 并不是「算尽所有可能」,而是靠成百上千次随机模拟做统计,挑出看起来最稳的一步。
(注:该算法英文缩写常见写法为 MCTS,课程卡片沿用「MCST」的叫法。)