A*算法为什么是最优的

图搜索的A*算法有两种情况:

hn是可采纳的,但是不是满足一致性

如果满足一致性,A*算法的实现要简单一些:即使不检查closed节点的状态重复,也能得到最优的结果

下面是证明最优性的一些关键点:

1 沿着任何路径的fn都是非递减的

2 closed集合里面的任何一个节点的fn都要小于open集合里面的任何一个节点的fn,这个特点保证了在拓展open节点时可以跳过已经在closed节点中的节点

3 目标点的fn=gn+0,如果有路径到达目标点,那么所有能到达目标点的路径都在open表里面,而且A*算法必然能找到最优的那条路径

posted @ 2013-12-12 11:46  mightofcode  阅读(4475)  评论(0编辑  收藏  举报