Chapter 4 Informed Search¶
- 对应于 "Artificial Intelligence - A Modern Approach (3rd Edition)" 中的 Chapter 3
- SOLVING PROBLEMS BY INFORMED SEARCHING (3.5~3.6)
最佳优先搜索¶
思想: 使用评估函数𝑓(𝑛)估计每个结点的“可取性”;扩 展最期望的未扩展结点
实现: 按照期望降序对边缘中的结点进行排序
启发函数: 表示为h(𝑛),从结点𝑛到目标结点的最小代价路径的代价估计值,即从结点𝑛到最接近目标的代价
分类:
- 贪婪搜索: 𝑓(𝑛) = h(𝑛)
- A*搜索 = 贪婪搜索 + 一致代价搜索 = h(𝑛) + 𝑔(𝑛), g(n)是路径消耗
贪婪最佳优先搜索¶
贪婪最佳优先搜索扩展离目标最近的结点
- 完备性: 否
- 树搜索可能会陷入循环,即使在有限的状态空间中也永远不会达到任何目标
- 图搜索在有限空间中是完备的,但在无限空间中不是完备的
- 最优性: 否
A* 搜索¶
算法基础¶
思想: 避免扩展代价已经很高的路径
评估函数: 𝑓(𝑛) = h(𝑛) + 𝑔(𝑛)
- 𝑔(𝑛): 当前路径到结点𝑛的实际代价 "looking behind"
- h(𝑛): 从结点𝑛到目标结点的估计代价 "looking ahead"
- 𝑓(𝑛): 从起始结点经过结点𝑛到达目标结点的估计代价 "estimated"
A*搜索结合了一致代价搜索和贪婪最佳优先搜索的优点
可采纳启发式¶
- 保障A*搜索最优性的第一个条件是h(𝑛)是可采纳启发式,指的是它不会过高估计到达目标的代价
- 即:h(𝑛) ≤ \(h^*\)(𝑛),当\(h^*\)(𝑛)是从结点n到目标结点的 真实代价。(同时要求h(𝑛) ≥ 0,因此对任意目标𝐺, h𝐺 =0)
theorem:
如果h(𝑛)是可采纳的,则树搜索的A*算法是最优的
一致性启发式¶
- 启发式h(𝑛)是一致的:如果对于每个结点 𝑛 和通过任一行动 𝑎 生成的 𝑛 的每个后继结点 \(n^,\) ,从结点𝑛到达目标的估计代价不大于从 𝑛 到 n' 的单步代价与从 n' 到达目标的估计代价之和:
- \(h(n) ≤ cost(n,a,n^,) + h(n^,)\)
- 如果h(𝑛)是一致的,则:𝑓(𝑛) 在任何路径上都是非递减的
- 一致性实际上是三角不等式
启发式函数¶
以“八数码问题”为例:
- h* = 放错位置的方格数
- h*(𝑠0) = 8
- h' = 方格与目标位置的曼哈顿距离(Manhattan distances) 之和。曼哈顿距离指的是水平和竖直的距离之和,h'(𝑠0) =3+1+2+2+2+3+3+2=18
启发式搜索的性能:
定义: 对于两个可采纳启发式函数h*和h',h'比h*占优势,当且仅当∀𝑛, h'(𝑛) ≥ h*(𝑛)
优势可以转化为效率: 使用h'的A*算法永远不会比使用h* 的A*算法扩展更多的结点
给定任何可采纳启发式ha和hb,h = max(ha, hb)也是可采纳的,并且比ha和hb占优势
有效分支因子¶
好的启发式方法会使 \(b^*\) 值接近于1,即每层扩展一个节点
出发设计可采纳的启发式¶
松弛问题¶
松弛问题: 减少了行动限制的问题
松弛问题的最优解代价不大于原问题的最优解代价
子问题记忆¶
模式数据库 的思想就是对每个可能的 子问题实例 存储 精确解代价
本质是在全局范围内维护一个“并集”
- 简单相加会破坏可采纳性,因为两个子问题的解可能有重复移动
- 我们需要的是不相交的模式数据库
从经验中学习启发式¶
经验意味着求解大量的八数码问题。每个八数码问题的 最优解都是供 h(𝑛) 学习的实例,每个实例都包括解路径 上的一个状态和从这个状态到达解的代价
机器学习算法用来构造h(𝑛) ,它能预测搜索过程中所出 现的其它状态的解代价
从经验中学习启发式不能保证可采纳性或一致性