🏠 总目录📚 本教程 01 · 第一天:Wumpus 世界
📑 本页目录(点开跳转)

01 · 第一天:Wumpus 世界

30 分钟 | ⭐ 不讲算法,先让你亲手当一次 AI


🎯 一句话

这一章你只做一件事:在一个 4×4 的小洞穴里,靠三种气味推断出哪一格能踩。

⭐ 推完你会撞上三堵墙 —— 那三堵墙就是后面 19 章要解决的三件事。 现在完全不需要记任何术语。


🕳️ 一、规则(30 秒读完)

一个 4×4 的洞穴,你从左下角 (1,1) 出发。

格子里有什么 你在相邻格能感觉到
💀 坑(Pit) —— 掉进去就死 🌬️ 微风(Breeze)
👹 Wumpus —— 碰上就死 🤢 臭味(Stench)
💰 金子(Gold) 闪光(Glitter),⚠️ 只在同一格能看到

关键约束:踩错一格就死,没有第二次机会。 所以「先试试看」不是选项 —— 你必须在踏出去之前就推理出那一格是安全的。


🔨 二、跟着推一遍(拿张纸,别跳过)

用这套记号: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)

感知:有臭味,没有微风。

两条新信息:

现在把第 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 步,你有没有注意到:你自始至终没有用到任何数据。

⭐⭐ 这就是这个板块的名字的由来。 站里另外 13 个板块讲的是「给我一堆数据,学出一个函数」; 这一套讲的是「规则我已经知道了,帮我把答案找出来」。

⚠️ 别误会成「过时」。 你今天用的导航是 A(第 7 章), 排课表和排考场是 CSP(第 13–15 章),象棋引擎的底座仍然是 α-β 剪枝(第 11 章)。 ⭐ 这些方法没有被取代,它们只是不上新闻。*

💡 反过来也成立:当规则已知的时候(什么样的图片算猫?),这套方法就无能为力 —— 那才是机器学习的主场。两边解决的是不同的问题,不是新旧关系。


🔗 这一章连到哪里

去哪 为什么
02 · AI 在解什么问题 ⭐ 你刚才那套「靠规则推理」的做法有个名字叫符号主义,而全站其他板块走的是联结主义。那一章讲这两条路怎么分的家
03 · 任务环境 Wumpus 世界的正式描述:部分可观测、确定性、序贯、静态、离散、单 agent —— 那一章给了描述任何任务的六个维度
05 · 状态空间与搜索框架 墙一的答案从这里开始
../机器学习与深度学习基础/02-机器学习到底在干什么.html 对照着读很有用:那一章开头讲「机器学习是从数据里找规律」,本章从头到尾一个数据点都没用过。两套方法的分界在这里最清楚
../博弈论与集体决策/09-正常形博弈.html 「有人跟你作对」这件事的理论版本在那边(会怎样),本板块第 10–12 章是算法版本(怎么算)

✅ 检查点

  1. 站在 (1,1) 没感觉到微风和臭味,能推出什么?这一步用到的信息有什么特别之处?
  2. 在 (2,1) 闻到微风,能推出什么?为什么这时候还不能动 (2,2) 和 (3,1)?
  3. 走到 (1,2) 后为什么能确定坑在 (3,1)?完整复述这条推理链。
  4. Wumpus 在哪?用到了第几步的哪条信息?
  5. 你判定 (2,2) 安全时,去过 (2,2) 吗?这说明了什么?
  6. 三堵墙分别是什么?各自通向哪几章?
  7. 如果在 (1,2) 也闻到了微风,会发生什么?为什么说「逻辑到这里就卡死了」?
  8. 这一章从头到尾用了多少训练数据?这说明这个板块和其他板块的分界在哪?
  9. 「经典方法已经过时了」—— 错在哪?举三个今天仍在用的例子。
👀 答案
  1. 相邻的 (1,2) 和 (2,1) 都安全(既没坑也没 Wumpus)。⭐ 特别之处:你是从「没感觉到什么」推出结论的 —— 缺席也是信息,这一点在第 14 章约束传播里会反复用到。
  2. 「有微风 ⟹ 相邻格至少有一个坑」,邻居里 (1,1) 已知安全,所以 坑在 (3,1) 或 (2,2)。⚠️ 这是一个「」,推不出具体哪一格,所以两格都不能踩 —— 踩错就死,没有第二次机会。
  3. 在 (1,2) 没有微风 ⟹ 它的邻居都没坑 ⟹ (2,2) 没坑。与第 2 步的「坑在 (3,1) 或 (2,2)」合并 ⟹ ⭐ 坑一定在 (3,1)。⭐⭐ 关键在于:两条各自模糊的信息,合起来变成了确定答案 —— 单看任何一条都不知道坑在哪。
  4. Wumpus 在 (1,3)。用的是第 2 步:站在 (2,1) 时没闻到臭味 ⟹ (2,1) 的邻居没有 Wumpus ⟹ (2,2) 没有 Wumpus;与 (1,2) 的臭味给出的「Wumpus 在 (1,3) 或 (2,2)」合并即得。
  5. 没去过。 (1,3) 和 (3,1) 也没去过。⭐ 全部结论都是出来的 —— 这就是「知识表示与推理」的含义。
  6. 墙一:安全格有多个,先去哪、怎么走最省 → 搜索(05–08 章,核心是 A)。墙二:那些「或」怎么机械地消掉 → 约束满足(13–15 章)。墙三:推不出唯一答案时怎么办 → 不确定性与贝叶斯网络*(16–17 章)。
  7. 「坑在 (3,1) 或 (2,2)」仍然成立,而 (2,2) 不再被排除 ⟹ ⭐⭐ 推不出任何确定结论,但你还是得走一步。💀 逻辑的世界只有真和假,没有「多半」 —— 它只能说「(2,2) 可能有坑」,而「可能」没法拿来做决定。你真正需要的是概率:0.1 就值得赌,0.9 就不值得。
  8. 零。 没有训练集、没有标注、没有梯度下降 —— 只有规则当前观测。⭐⭐ 分界:其他 13 个板块是「给我数据,学出一个函数」,这一套是「规则我已知道,帮我把答案找出来」。💡 反过来,规则已知时(什么样的图片算猫)这套就无能为力 —— 两边解决不同的问题,不是新旧关系
  9. 错在把「不上新闻」当成「被淘汰」。三个例子:导航用 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

打卡记录保存在你的浏览器里,首页能看到总进度