用三个小游戏,亲手玩懂「智能体」如何在世界里感知状态、选择动作、抵达目标——这正是《人工智能·现代方法》里搜索问题的入门模型。
这是人工智能教科书的「第一课」。智能体(吸尘器)住在一排格子里,有些格子有灰尘。🎯 任务:把所有格子都打扫干净,动作越少越好。
一个有 2 个格子 的吸尘器世界。要完整描述此刻的「状态」,得说清两件事:吸尘器停在哪一格、每个格子是脏还是干净。这样的状态一共有多少种?
2 × 2² = 8 个状态。一般地,n 个格子就有 n × 2ⁿ 个状态。
Left、向右 Right、吸尘 Suck。
Suck:当前格变干净(已干净则无变化)。Left/Right:移到相邻格;已在边缘则动作无效(位置不变)。在吸尘器世界上,我们加一个新东西:水壶。一排花圃里有干花(🥀)和已浇的花(🌸),机器人带着容量有限的水壶,每浇一盆用 1 单位水。🎯 任务:用刚好够的水把所有干花浇遍。
还是 2 个格子,但机器人这次多带了一个水壶,最多装 1 单位水(C=1)。现在描述「状态」要多记一件事:水壶里还剩几滴水。这样的状态一共有多少种?
2 × 2 × 2² = 16 个状态。
Left、向右 Right、浇水 Water。Water 只有在当前花是干的、且水量>0 时才能用。
Water:当前花由「干」→「已浇」,水量 −1。Left/Right:移到相邻格,边缘时无效。2×3 的地面网格 A B C / D E F,机器人要走到有书的格子上「收书」。🎯 任务:用最少的动作把书全部收好,挑战追平程序算出的最优解!
2×3 网格里只有 B、F 两格可能放着书。描述「状态」要说清三件事:机器人停在哪一格、B 有没有书、F 有没有书。这样的状态一共有多少种?
4+4+4+4+4+4 = 24。6 × 2² = 24。
同样是「指挥一个小机器人」,越往后越像数学。把这条主线拎出来——
把一个局面拆成几个互相独立的部分,每部分的可能数相乘,就是总状态数。吸尘器:位置 × 每格脏净 = n × 2ⁿ。
按机器人所在格子分类,把各类状态数相加,结果一样。图书馆:4+4+4+4+4+4 = 6×4 = 24。两条原理是一体两面。
每给世界加一个会变化的维度(多一格、加水壶),状态数就乘上一个倍数。格子从 2 到 4,状态从 8 飙到 64 —— 这就是 AI 问题为什么难。
在海量状态里找「动作最少」的那条路,要靠广度优先搜索(BFS)一层层展开。你在图书馆挑战的「最优解」就是这么算出来的。
吸尘器、浇花、图书馆,本质是同一个「位置 × 每格状态」模型,只是把「灰尘」换成「干花」「放错的书」。学会一个,就懂了一类。
「寻径问题」把代价从「步数」升级成「时间 + 金钱」,是更接近真实导航的优化挑战。