目录
2.1启发式函数
第一章:无信息搜索
第二章:有信息搜索
启发式函数:
![](https://img-blog.csdnimg.cn/512b5dfc5c2545008020c3919e3de2c8.jpeg)
![](https://img-blog.csdnimg.cn/05b2cc4b671f48629e2db206b2553a26.jpeg)
2.2贪心搜索算法
贪心搜索:使用优先队列
贪心可能会出错。
贪心不是完备的,也不是最优的。
2.3A*算法和最优性
贪心可能陷入局部最优而出错,因为他完全不考虑历史信息。
A*算法
三种算法的比较
A*算法最优性:节点估计值要小于实际成本(要限制启发式函数)
2.4启发式函数的可采纳性
A*算法中,设计可采纳的启发式函数很关键
情况2的极端情况:开始节点直接连A、B,则A的所有祖先节点都在B之前展开。
情况2的具体证明:
f(n)=g(n)+h(n)
已知,h(n)<=g(A)-g(n),
则有f(n)<=g(A),
又因为h(A)=0,
所以有f(n)<=f(A),
结合f(A)<f(B),
可知f(n)<f(B)。
证明得到,如果A*算法使用的启发式函数是可采纳的,那么在树搜索的情况下,就可以保证A*算法的最优性。
2.5启发式函数的一致性
A*在图搜索中的情况:不能保证最优
S,再A和B比,扩展B,再A和C比,扩展C,再A和G比,扩展A,再C和G比,f(C)小,但是,C已经被扩展过,不再次扩展,扩展G。
希望S->A->C中的C早于S->B->C中的C
根据祖宗节点都要早的原理,可推得:对于搜索图中每一条边的损耗估计都要小于等于实际值。
启发式函数的一致性(保证A*图搜索的最优性)
A*算法最优性总结
注意:树搜索中,一致代价搜索是A*的一个特例。
一致性蕴含可采纳
在实际运用中,A*算法的启发式函数可能不是可采纳的或一致的,但仍然可以加速搜索。
2.6启发式函数的构造
构建可采纳的启发式函数->找松弛问题、找子问题。
八数码问题的松弛问题。
考虑子问题
2.7启发式函数的性质
启发式函数的支配关系
致谢
原视频地址:人工智能导论(全集)_哔哩哔哩_bilibili