假设启发式值h(A)=5,h(B)=1,使用A*图搜索算法,将A和B放入前沿队列,f(A)=2+5=7,f(B)=4+1=5,然后选择B进行扩展,接着将G放入前沿队列,f(G)=4+4=8,然后选择A进行扩展,但由于S和B已经扩展且不在前沿队列中,因此不会进行任何操作,接下来会选择G并返回一个非最优解。
我的论述正确吗?
回答:
你维护了一个有序的优先级队列来管理前沿的对象。你会选择最佳候选者,向所有可用方向扩展,并将新节点放入优先级队列中。因此,尽管最优路径可能经过A,A也可能被推到队列的末端。还有可能A被通过次优路径到达的邻居包围,在这种情况下,大多数算法不会像你所说的那样尝试扩展它。
A星算法只是找到一条合理路径的一种方法,它并不能找到全局最优路径。