A*算法为什么是最优的
图搜索的A*算法有两种情况:
hn是可采纳的,但是不是满足一致性
如果满足一致性,A*算法的实现要简单一些:即使不检查closed节点的状态重复,也能得到最优的结果
下面是证明最优性的一些关键点:
1 沿着任何路径的fn都是非递减的
2 closed集合里面的任何一个节点的fn都要小于open集合里面的任何一个节点的fn,这个特点保证了在拓展open节点时可以跳过已经在closed节点中的节点
3 目标点的fn=gn+0,如果有路径到达目标点,那么所有能到达目标点的路径都在open表里面,而且A*算法必然能找到最优的那条路径