第 II 部分 · 问题求解

第 3 章 通过搜索求解问题

Chapter 3 · Solving Problems by Searching

⏱ 建议学习时长:约 6 小时

本章导读

把「如何行动」形式化为在状态空间中寻找从初始状态到目标的路径,系统比较各类搜索策略的完备性、最优性与时间 / 空间复杂度。

学习要点

核心概念

术语English一句话解释
状态空间State Space所有状态与动作转移构成的隐式图
前沿(open 表)Frontier已生成、待扩展的节点集合
广度优先搜索BFS按层扩展,单位代价下完备且最优
一致代价搜索UCS按路径代价 g(n) 扩展,一般代价下最优
A* 搜索A* Search按 f(n) = g(n) + h(n) 排序的经典最优搜索
可采纳启发式Admissible Heuristic从不高估真实代价的启发式
一致启发式Consistent Heuristic满足三角不等式 h(n) ≤ c + h(n′) 的启发式
松弛问题Relaxed Problem放宽动作限制后的问题,其精确解构成原问题的启发式
图搜索Graph Search用 explored 集合做重复状态检测,避免指数膨胀
迭代加深Iterative DeepeningDFS 的空间 + BFS 的最优性,兼顾两者优点

配套代码(aima-python)

aima-python 是官方维护的开源算法库(MIT 协议),建议每学完一章就跑一遍对应模块的示例。

延伸资源