我在A*搜索算法的背景下遇到了“可接受启发式”这个术语。能否有人解释一下(或提供一个直观的理解),为什么启发式函数h只有在不高估实际距离的情况下才是可接受的?
回答:
考虑A*的停止条件,算法会在达到目标节点并具有特定F
值时停止,其中F
等于G
——从起点构建的路径加上启发式值H
,后者代表对剩余路径到目标的估计。
在目标节点,F
等于G
,因为对剩余路径到目标的估计为0。
只有当H
是可接受的时,停止条件才有效,因为这样我们就可以确定,如果我们在目标节点计算的F
值小于我们在任何其他节点计算的任何其他F
值,我们可以肯定它是最短路径,因为没有其他路径可以以更小的F
值到达目标。
如果它不是可接受的,那么可能存在其他节点,我们为其计算的F
值高估了剩余路径到目标的距离,我们不能停止算法,因为可能存在更短的路径。