📑 本页目录(点开跳转)
01 · 第一天:Wumpus 世界
⏱ 30 分钟 | ⭐ 不讲算法,先让你亲手当一次 AI
🎯 一句话
这一章你只做一件事:在一个 4×4 的小洞穴里,靠三种气味推断出哪一格能踩。
⭐ 推完你会撞上三堵墙 —— 那三堵墙就是后面 19 章要解决的三件事。 现在完全不需要记任何术语。
🕳️ 一、规则(30 秒读完)
一个 4×4 的洞穴,你从左下角 (1,1) 出发。
| 格子里有什么 | 你在相邻格能感觉到 |
|---|---|
| 💀 坑(Pit) —— 掉进去就死 | 🌬️ 微风(Breeze) |
| 👹 Wumpus —— 碰上就死 | 🤢 臭味(Stench) |
| 💰 金子(Gold) | ✨ 闪光(Glitter),⚠️ 只在同一格能看到 |
- 你看不见地图,只能感觉到自己当前这格的微风/臭味/闪光。
- 「相邻」只算上下左右,不算斜角。
- 目标:拿到金子并活着走回 (1,1)。
⭐ 关键约束:踩错一格就死,没有第二次机会。 所以「先试试看」不是选项 —— 你必须在踏出去之前就推理出那一格是安全的。
🔨 二、跟着推一遍(拿张纸,别跳过)
用这套记号:OK = 已确认安全,P? = 可能有坑,W? = 可能有 Wumpus,✓ = 已走过。
第 1 步:站在 (1,1)
感知:没有微风,没有臭味。
「没有微风」意味着什么?—— 相邻格一定没有坑(有坑的话我这里就该有风)。 「没有臭味」同理。相邻的是 (1,2) 和 (2,1)。
4 | | | | |
3 | | | | |
2 | OK | | | |
1 | ✓ | OK | | |
1 2 3 4
⭐ 注意你刚做了什么:你从「没感觉到什么」推出了结论。 缺席也是信息 —— 这一点在后面第 14 章的约束传播里会反复用到。
第 2 步:走到 (2,1)
感知:有微风,没有臭味。
有微风 ⟹ 相邻格里至少有一个坑。(2,1) 的邻居是 (1,1)、(3,1)、(2,2)。 (1,1) 已经走过是安全的,所以:
$$\text{坑在 } (3,1) \ \textbf{ 或 } \ (2,2)$$
⚠️ 注意这里出现了「或」 —— 你推不出具体是哪一格。两格都不能踩。
4 | | | | |
3 | | | | |
2 | OK | P? | | |
1 | ✓ | ✓ | P? | |
1 2 3 4
第 3 步:退回 (1,1),走到 (1,2)
感知:有臭味,没有微风。
两条新信息:
- 没有微风 ⟹ (1,2) 的邻居全都没坑 ⟹ ⭐ (2,2) 没有坑!
- 有臭味 ⟹ Wumpus 在 (1,3) 或 (2,2)
现在把第 2 步的结论拿出来对一下:
坑在 (3,1) 或 (2,2) + (2,2) 没有坑 ⟹ ⭐ 坑一定在 (3,1)
⭐⭐ 这一步是全章的高潮:两条各自模糊的信息,合起来变成了确定的答案。 单看任何一条你都不知道坑在哪。
第 4 步:Wumpus 在哪?
还剩「Wumpus 在 (1,3) 或 (2,2)」。再想想第 2 步:
你站在 (2,1) 时没有闻到臭味 ⟹ (2,1) 的邻居没有 Wumpus ⟹ (2,2) 没有 Wumpus
于是 ⟹ ⭐ Wumpus 在 (1,3)。
而 (2,2) 既没坑、也没 Wumpus ——
4 | | | | |
3 | W! | | | |
2 | ✓ | OK | | |
1 | ✓ | ✓ | 坑! | |
1 2 3 4
⭐⭐ (2,2) 是安全的,可以踩。 而你从来没去过 (2,2),也没去过 (1,3) 和 (3,1) —— 全是推出来的。 这就是「知识表示与推理」这四个字的意思。
🧱 三、你刚刚撞上的三堵墙
💥 墙一:安全的格子有好几个,先去哪个?
第 4 步之后,你手上有 (2,2) 可以走。但如果同时有五六格是安全的呢? 金子可能在任何地方,你需要一个策略决定先探哪里、怎么走最省步数。
而且注意:这不是「选一个动作」,是「选一整条路径」 —— 走到 (4,4) 要经过好几格,每一格的选择都影响后面。
⭐ 这是搜索问题。 状态空间有多大?4×4 的格子、朝向、有没有拿到金子、箭还在不在…… 组合起来轻松上千。穷举不现实,得有聪明的找法。
通向:05 状态空间与搜索框架 → 06 无信息搜索 → ⭐ 07 启发式与 A*
💥 墙二:那些「或」怎么系统地消掉?
上面第 3、4 步你是靠脑子把两条「或」拼在一起的。三四条约束还行, 几十条呢? 你需要一套机械的、能交给计算机执行的办法。
而且换个角度看这个问题:它其实不是在找路径,是在给每一格填一个值 (有坑/没坑)。填值要满足所有观测到的约束。
⭐ 这是两条不同的路:把它写成逻辑公式去推(推理), 或者把它当成「给每个变量填值」的问题(约束满足)。 后者往往更快 —— 因为你可以在填的过程中不断把不可能的值删掉。
通向:13 CSP 是什么 → ⭐ 14 回溯与约束传播 → 15 CSP 的启发式
💥 墙三:如果推不出唯一答案呢?
把第 3 步改一下:假设你在 (1,2) 也感觉到了微风。
那么「坑在 (3,1) 或 (2,2)」这条还在,而 (2,2) 也不再被排除。 ⭐⭐ 现在你推不出任何确定的结论了 —— 但你还是得走一步。
纯逻辑到这里就卡死了:它只会告诉你「(2,2) 可能有坑」, 而「可能」这个词没法拿来做决定。你真正想知道的是:
(2,2) 有坑的概率是多少?0.3 还是 0.9? 如果只有 0.1,那值得赌一把。
💀 墙三:逻辑的世界只有真和假,没有「多半」。 而真实世界里,AI 要行动的时候几乎从来没有足够的信息推出确定结论。
通向:16 不确定性下的推理 → ⭐ 17 贝叶斯网络
🗺️ 四、还有两块没在这个洞穴里出现
Wumpus 世界很小,装不下两件事:
| 缺的 | 为什么重要 | 去哪 |
|---|---|---|
| ⚔️ 有人跟你作对 | 洞穴里的坑不会为了坑你而移动。但下棋时对面会 —— 他每一步都在让你的处境变糟。搜索一棵「对手在跟你反着来」的树,需要另一套办法 | 10 博弈树与 Minimax · ⭐ 11 α-β 剪枝 · 12 评估函数与棋类 AI |
| 👁️ 感知本身就很难 | 这里的「微风」是直接告诉你的。真机器人得从摄像头的像素里自己看出来有没有风险,从一句话里自己解析出用户要什么 | 18 经典计算机视觉 · 19 经典 NLP |
🤔 五、⭐ 这一章最该带走的一件事
回头看第 1–4 步,你有没有注意到:你自始至终没有用到任何数据。
- 没有训练集,没有标注,没有梯度下降
- 你知道的只有规则(有坑就有风、有 Wumpus 就有臭味)和当前的观测
- 剩下的全靠推
⭐⭐ 这就是这个板块的名字的由来。 站里另外 13 个板块讲的是「给我一堆数据,学出一个函数」; 这一套讲的是「规则我已经知道了,帮我把答案找出来」。
⚠️ 别误会成「过时」。 你今天用的导航是 A(第 7 章), 排课表和排考场是 CSP(第 13–15 章),象棋引擎的底座仍然是 α-β 剪枝(第 11 章)。 ⭐ 这些方法没有被取代,它们只是不上新闻。*
💡 反过来也成立:当规则不已知的时候(什么样的图片算猫?),这套方法就无能为力 —— 那才是机器学习的主场。两边解决的是不同的问题,不是新旧关系。
🔗 这一章连到哪里
| 去哪 | 为什么 |
|---|---|
| 02 · AI 在解什么问题 | ⭐ 你刚才那套「靠规则推理」的做法有个名字叫符号主义,而全站其他板块走的是联结主义。那一章讲这两条路怎么分的家 |
| 03 · 任务环境 | Wumpus 世界的正式描述:部分可观测、确定性、序贯、静态、离散、单 agent —— 那一章给了描述任何任务的六个维度 |
| 05 · 状态空间与搜索框架 | 墙一的答案从这里开始 |
| ../机器学习与深度学习基础/02-机器学习到底在干什么.html | ⭐ 对照着读很有用:那一章开头讲「机器学习是从数据里找规律」,本章从头到尾一个数据点都没用过。两套方法的分界在这里最清楚 |
| ../博弈论与集体决策/09-正常形博弈.html | 「有人跟你作对」这件事的理论版本在那边(会怎样),本板块第 10–12 章是算法版本(怎么算) |
✅ 检查点
- 站在 (1,1) 没感觉到微风和臭味,能推出什么?这一步用到的信息有什么特别之处?
- 在 (2,1) 闻到微风,能推出什么?为什么这时候还不能动 (2,2) 和 (3,1)?
- 走到 (1,2) 后为什么能确定坑在 (3,1)?完整复述这条推理链。
- Wumpus 在哪?用到了第几步的哪条信息?
- 你判定 (2,2) 安全时,去过 (2,2) 吗?这说明了什么?
- 三堵墙分别是什么?各自通向哪几章?
- 如果在 (1,2) 也闻到了微风,会发生什么?为什么说「逻辑到这里就卡死了」?
- 这一章从头到尾用了多少训练数据?这说明这个板块和其他板块的分界在哪?
- 「经典方法已经过时了」—— 错在哪?举三个今天仍在用的例子。
👀 答案
- 相邻的 (1,2) 和 (2,1) 都安全(既没坑也没 Wumpus)。⭐ 特别之处:你是从「没感觉到什么」推出结论的 —— 缺席也是信息,这一点在第 14 章约束传播里会反复用到。
- 「有微风 ⟹ 相邻格至少有一个坑」,邻居里 (1,1) 已知安全,所以 坑在 (3,1) 或 (2,2)。⚠️ 这是一个「或」,推不出具体哪一格,所以两格都不能踩 —— 踩错就死,没有第二次机会。
- 在 (1,2) 没有微风 ⟹ 它的邻居都没坑 ⟹ (2,2) 没坑。与第 2 步的「坑在 (3,1) 或 (2,2)」合并 ⟹ ⭐ 坑一定在 (3,1)。⭐⭐ 关键在于:两条各自模糊的信息,合起来变成了确定答案 —— 单看任何一条都不知道坑在哪。
- Wumpus 在 (1,3)。用的是第 2 步:站在 (2,1) 时没闻到臭味 ⟹ (2,1) 的邻居没有 Wumpus ⟹ (2,2) 没有 Wumpus;与 (1,2) 的臭味给出的「Wumpus 在 (1,3) 或 (2,2)」合并即得。
- 没去过。 (1,3) 和 (3,1) 也没去过。⭐ 全部结论都是推出来的 —— 这就是「知识表示与推理」的含义。
- 墙一:安全格有多个,先去哪、怎么走最省 → 搜索(05–08 章,核心是 A)。墙二:那些「或」怎么机械地消掉 → 约束满足(13–15 章)。墙三:推不出唯一答案时怎么办 → 不确定性与贝叶斯网络*(16–17 章)。
- 「坑在 (3,1) 或 (2,2)」仍然成立,而 (2,2) 不再被排除 ⟹ ⭐⭐ 推不出任何确定结论,但你还是得走一步。💀 逻辑的世界只有真和假,没有「多半」 —— 它只能说「(2,2) 可能有坑」,而「可能」没法拿来做决定。你真正需要的是概率:0.1 就值得赌,0.9 就不值得。
- 零。 没有训练集、没有标注、没有梯度下降 —— 只有规则和当前观测。⭐⭐ 分界:其他 13 个板块是「给我数据,学出一个函数」,这一套是「规则我已知道,帮我把答案找出来」。💡 反过来,规则不已知时(什么样的图片算猫)这套就无能为力 —— 两边解决不同的问题,不是新旧关系。
- 错在把「不上新闻」当成「被淘汰」。三个例子:导航用 A(第 7 章)、排课排考用 CSP(13–15 章)、象棋引擎底座仍是 α-β 剪枝*(第 11 章)。
🛑 可以停在这里
⚡ 走神救援
这一章不讲算法,只让你在 4×4 的 Wumpus 洞穴里亲手推一遍。规则:坑和 Wumpus 在相邻格分别产生微风和臭味,金子只在同格发出闪光;你看不见地图,⭐ 踩错一格就死、没有第二次机会,所以必须在踏出去之前就推出那格安全。推理链走一遍:①(1,1) 无风无臭 ⟹ (1,2)、(2,1) 安全 —— ⭐ 注意你是从「没感觉到什么」推出结论的,缺席也是信息;②走到 (2,1) 闻到微风 ⟹ 坑在 (3,1) 或 (2,2),⚠️ 这是个「或」,推不出具体哪格,两格都不能踩;③退回走到 (1,2),闻到臭味但没有微风 ⟹ (2,2) 没坑,与②合并 ⟹ ⭐⭐ 坑一定在 (3,1) —— 两条各自模糊的信息合起来变成了确定答案,这是全章高潮;④再用②里「站在 (2,1) 时没闻到臭味」⟹ (2,2) 没 Wumpus ⟹ Wumpus 在 (1,3),于是 (2,2) 安全可踩。⭐ 而你从没去过 (2,2)、(1,3)、(3,1),全是推出来的 —— 这就是「知识表示与推理」。三堵墙:💥墙一,安全格有好几个先去哪、怎么走最省步数,而且要选的是一整条路径不是一个动作 → 搜索(05–08,核心 A);💥墙二,那些「或」怎么机械地消掉 —— 换个角度看它不是在找路径,是在给每格填值(有坑/没坑)并满足所有约束 → CSP(13–15);💥墙三,把③改成「(1,2) 也有微风」,⭐⭐ 就推不出任何确定结论了,但你还是得走一步 —— 💀 逻辑的世界只有真和假,没有「多半」,你真正需要的是概率(0.1 值得赌,0.9 不值得)→ 不确定性与贝叶斯网络(16–17)。洞穴装不下的还有两块:有人跟你作对(坑不会为坑你而移动,但下棋时对面会 → 10–12 章对抗搜索)和感知本身很难(这里微风是直接告诉你的,真机器人要从像素里自己看出来 → 18–19 章)。⭐⭐ 最该带走的一件事:整章从头到尾一个数据点都没用过 —— 没有训练集、没有标注、没有梯度下降,只有规则和当前观测,剩下全靠推。这就是板块名字的由来:其他 13 个板块讲「给我数据学出函数」,这一套讲「规则我已知道,帮我把答案找出来」。⚠️ 别误会成过时 —— 导航是 A、排课排考是 CSP、象棋引擎底座仍是 α-β,它们只是不上新闻。💡 反过来,规则不已知时(什么样的图片算猫)这套就无能为力,两边解决的是不同问题,不是新旧关系**。
下一节 👉 02-AI在解什么问题.md