兼容启发式函数(h)满足以下条件:
h(n) <= c(n,a,n') + h(n')
****************************************************
可接受启发式函数(h)满足以下条件:
0 <= h(n) <= h*(n)
h*(n)是节点n
到goal
的实际距离
如果启发式函数是兼容的,那么如何证明它是可接受的?
非常感谢。
兼容启发式函数(h)满足以下条件:
h(n) <= c(n,a,n') + h(n')
****************************************************
可接受启发式函数(h)满足以下条件:
0 <= h(n) <= h*(n)
h*(n)是节点n
到goal
的实际距离
如果启发式函数是兼容的,那么如何证明它是可接受的?
非常感谢。
h(n) <= c(n,a,n') + h(n')
这个事实是矛盾的?没有限制允许h(n') > h*(n')
,而且不等式成立。你需要找到最小的h
值,使得h(n)>h*(n)
,并对其进行相同的逻辑处理,以避免发生这种情况(请注意,您不能假设无限图的“最小值”)。 - amit如果您在h上添加一个附加条件(即h(goal)=0),则可以通过对从n到目标状态的最小代价路径进行归纳来证明它。
对于基本情况,当n = goal时,最小代价路径为0。然后h(goal) = 0 = h*(goal)。
对于一般情况,设n是一个节点,n’是从n到goal的最小路径上的下一个节点。那么h*(n)=c(n,n’)+h*(n’)>= c(n,n’)+h(n') >= h(n),使用归纳假设得出第一个不等式,使用兼容性定义得出第二个不等式。