🎮 博弈树:会下棋的人工智能

探索 AI 如何在井字棋中思考与决策

学习进度

🎯 先来玩几局!

在开始学习之前,先和电脑下几局井字棋,试着找到"先手不会输的秘籍"!

井字棋对战

你是 ✕(先手),点击格子开始!

📊 对战记录

0
你赢了
0
平局
0
AI赢了
🤔 思考一下:
先手(第一个落子的人)有没有"不会输"的策略?试着多玩几局,找找规律!
游戏规则提示:
横线连三
竖线连三
斜线连三

🔑 先手不会输的秘籍

只要前3步按照秘籍来,先手永远不会输!

1
第一步:落子在中间
占据中心位置,可以控制最多的连线方向(4条线)
← 点击查看演示
2
第二步:落子在角
占据4个角之一,形成双重威胁,让对手顾此失彼
← 点击查看演示
3
第三步:阻止或完成连线
如果对手快要连三,就阻止;否则自己完成连线
← 点击查看演示
🧠 为什么这个策略有效?
中心格参与4条线,角格参与2条线。先占中心+角,可以同时威胁多条线,对手无法同时防守所有威胁!

点击左侧步骤查看演示

选择左侧的步骤,查看每一步的落子位置和原因
位置价值分析:
角 ×4
参与2条线
边 ×4
参与2条线
中心 ×1
参与4条线

🧩 残局挑战

下面这个残局,轮到 下子,你会下在哪里?

当前棋局(轮到 ✕ 下)

点击空格落子,看看结果如何

💭 你是怎么思考的?

当前局面分析:
✕ 已有:位置 0, 2, 5
○ 已有:位置 1, 3, 6
空格:位置 4, 7, 8
你会选择哪个位置?

🌳 博弈树

AI 把每种可能的落子都列出来,形成一棵"树",然后从结果反推最优选择

🌱
根节点
当前棋局状态(残局起点)
🌿
分支节点
每种可能的落子后的棋局
🍂
叶子节点
游戏结束(赢/输/平)

交互式博弈树(残局示例)

绿色=✕赢 红色=○赢 黄色=平局
💡 如何读懂博弈树:
从根节点(状态0)出发,每个分支代表一种落子选择。沿着树往下走,直到游戏结束(叶子节点)。 关键:从叶子节点的结果反推,选择能保证最好结果的分支!

🔄 决策树 vs 博弈树

📊 决策树
节点:根据特征提出的问题
叶子:特征指引下的最终答案
用途:分类和预测
特点:单方决策,无对手
🎮 博弈树
节点:棋盘上棋子的状态
叶子:棋局的输赢结果
用途:游戏策略决策
特点:双方交替决策,有对手

🔍 深度优先 vs 广度优先

AI 读取博弈树时,需要一个节点一个节点地搜索。有两种方式:

⬇️
深度优先搜索 (DFS)
Depth-First Search
沿着一条路径尽可能深地搜索,到底后再回溯,探索其他路径。
搜索顺序:1 → 2 → 4 → 5 → 3 → 6 → 7
➡️
广度优先搜索 (BFS)
Breadth-First Search
先探索当前层的所有节点,再进入下一层。
搜索顺序:1 → 2 → 3 → 4 → 5 → 6 → 7

🎬 搜索过程动画

已访问节点数
0
当前搜索路径
-

🤔 井字棋应该用哪种搜索?

深度优先的优势
可能只需访问 5个节点 就找到必赢路径! 一旦发现某条路径必赢,立即返回结果,无需遍历整棵树。
广度优先的劣势
需要先把整棵树的所有节点都访问一遍(约 13个节点),才能确定最优落子位置。
✅ 结论:井字棋使用深度优先搜索更高效!
深度优先搜索配合"剪枝"技术(发现必赢就停止),可以大幅减少需要计算的节点数量。 这就是为什么 AI 能快速做出决策!

🏆 练习挑战

模仿 AI 的思考过程,用博弈树推理最优落子位置

练习残局(轮到 o 下)

✕ 已有:位置 1, 3, 5
○ 已有:位置 0, 2, 7
空格:位置 4, 6, 8

🎯 轮到 X 下子

点击棋盘上的空格(✕ 表示 X),观察博弈树如何推导后续的变化。

练习题的博弈树

📚 本章总结

博弈树把每种可能的棋局状态都列出来,形成树形结构
从叶子节点(输赢结果)反推,确定最优落子位置
深度优先搜索更适合博弈树,效率更高
博弈树节点是棋盘状态,叶子是输赢结果
决策树用于分类预测,博弈树用于对抗决策
AI 通过穷举所有可能性,找到必赢或不输的策略