🎨 外观

寻径问题🚗

同一个问题的两种难度:先帮猫头鹰邮递员找一条最短航线,再给电动汽车规划「又快又省」的充电路线。一步步玩懂 AI 怎么把「找路」变成可计算的搜索问题

💡 建议按 1 → 2 顺序闯关:第一关用「数清每条路、比总和」入门最短路径;第二关把代价从「距离」升级成「时间 + 金钱」,体会多目标优化。每关玩之前先做「🧮 先猜一猜」,通关后有 💡 点破背后的数学。
取材自《人工智能·现代方法》「通过搜索进行问题求解」。适合中小学 AI / 信息科技启蒙、课堂演示与亲子探究。

12
第一关 · 最短路径

🦉 猫头鹰邮递员的加急信件

你是聪明的猫头鹰邮递员,要把魔法信件从魔法树屋送到巨龙山峰。驿站之间有航线相连,每段标着距离。🎯 任务:找出总飞行距离最短的那条航线!

玩之前🧮 先猜一猜

三条航线里,路线 C 飞的「段数」最少(只飞 2 段,经水晶湖直达),另外两条都要飞 3 段。猜猜看:飞的段数最少,就一定总距离最短吗?

不一定!「飞了几段」和「总距离」是两码事 —— 每段有长有短。段数最少的路,可能某一段特别长反而更远;段数多、但每段都短的路,也可能最近。到底哪条最短,得把各段加起来、比总和才知道。下面把三条都飞一遍,自己找出最短的那条!
34 52 74 🏠🍄💎 ☁️🐲 魔法树屋蘑菇村水晶湖 迷雾峡谷巨龙山峰 起点终点
🦉
驿站 终点·巨龙山峰 数字 = 该段航线距离(千米)
这条路线路线 B
总距离10 km

各段相加:4 + 2 + 4 = 10 千米

📖 知识卡:把「找最短路」写成搜索问题

这道题去掉魔法外衣,就是课本里最经典的最短路径搜索。同样用「状态 / 动作 / 代价」四件套来拆:

状态(State)
当前所在的驿站。比电动汽车那题简单——这里只看「在哪」就够了。
初始状态 / 目标状态
初始:在魔法树屋;目标:到达巨龙山峰。
动作 / 动作代价
从当前驿站沿一条航线飞到相邻驿站;代价 = 这段航线的距离
🔑 关键洞察:枚举 + 比总和
路线经过各段总距离
A蘑菇村·迷雾峡谷3+5+412 km
B ✅水晶湖·迷雾峡谷4+2+410 km
C水晶湖直达4+711 km

飞得段数少,不代表距离近!路线 C 只飞 2 段看着最「直」,却比飞 3 段的 B 还远。要把每段距离加起来比总和,才知道谁最短。计算机解这类问题,就是系统地把每条路的总代价都算出来再挑最小的(更聪明的还有 Dijkstra、A* 等算法,省去重复计算)。

12
第二关 · 多目标优化

🚗 电动汽车充电导航

电动汽车在 A满电出发,要开到 B 城。三条路(经 C / D / E)的总里程都超过满电 100km,中途必须充电。但充得越多越费钱、越费时间。🎯 任务:找出总代价最小的方案!

玩之前🧮 先猜一猜

三个充电桩:C 充电最快、D 电价最便宜、E 不快不便宜居中。你觉得哪条路线(在对应的桩充电)总花费最低

✅ 居然是居中的 E(77.5 元)!最快的 C 要 84 元、最便宜的 D 要 82 元,都更贵。
因为总代价 = 行驶时间 + 充电时间 + 电费 三者之和,C 电价太贵、D 充电太慢,各被一项拖累。不能只看单一指标,要算总账 —— 这正是多目标优化,也是真实导航软件做的事。下面动手验证!
55 km45 km50 km 60 km75 km65 km ⚡3 km/min · 1.6 元/km ⚡1 km/min · 0.6 元/km ⚡1.5 km/min · 1.0 元/km AB CDE 起点·满电终点
🚗
💥
🔋 电量
100 / 100
起点/终点(无桩) 充电站(标功率·电价) 满电可跑 100 km
在 E 充
15 km
行驶时间
充电时间
电费
总代价
📖 知识卡:为什么「电量」必须进状态

这道题和课文里的「航空旅行问题」同一难度量级 —— 表面像普通找路,真正动手才发现光知道「当前在哪」远远不够

状态(State)
(当前城市, 当前电量)。电量必须进状态:一条路能不能走、之后还能走多远,都取决于剩余电量。
初始状态
在 A,电量 100(满电)。
动作(Actions)
  • 行驶到相邻城市:当且仅当有路、且电量 ≥ 该路段耗电时可行。
  • 充电(仅在有桩的城市):把电量从 e 提升到 e′(e < e′ ≤ 100)。
转移模型
行驶 u→v:电量减去路段里程;充电:电量升到 e′。
目标状态
当前城市为 B(到 B 对剩余电量没有要求)。
动作代价
总代价(元)= 0.5 ×(行驶时间 + 充电时间)+ 电费
行驶 1km 用 1min;充电时间 = 充电量 ÷ 功率;电费 = 充电量 × 电价。
🔑 关键洞察
终点对电量无要求 → 每条路只需充到刚好够开到 B,多充一度都是纯亏。于是比的就是三条路的「最小充电」总代价:
路线总里程最小充电充电时间电费总代价
A–C–B11515 km5 min24 元84 元
A–D–B12020 km20 min12 元82 元
A–E–B ✅11515 km10 min15 元77.5 元
最快的桩 C 输了,电价最便宜的 D 也输了,赢的是「哪项都不极端」的 E —— 必须把路程、充电时间、电费三者合起来算总账,只盯单一指标都会选错。这正是真实导航软件做的事。
埋着的「坑」
  • 「不抛锚」这条约束藏在转移模型里(电量不够时行驶动作不可用),不在目标里。
  • 电量连续 → 充电量可取无穷多值,状态空间是连续的,实际要离散化(如按档位充)。
  • 「一路充满」未必最优:在 E 充满要多花约 46.5 元!