可接受的启发式算法总是单调(一致)吗?

时间:2015-06-01 10:27:28

标签: heuristics

对于A *搜索算法,提供了一个启发式h,supose h是可以接受的。

那是:

  每个节点n的

h(n)≤h*(n),其中h *是从n到目标的实际成本

这是否确保启发式单调?

那是:

  

f(n)≤g(n')+ h(n')对于每个sucesor n' n,其中f(n)= h(n)+ g(n),g(n)是累计成本。

1 个答案:

答案 0 :(得分:2)

没有

假设您有三个后继状态s1s2s3和目标状态g,以便s1 -> s2 -> s3 -> g
 s1是起始节点。

还要考虑h(s)h*(s)的以下值(即真实成本):
h(s1) = 3 , h*(s1) = 6
h(s2) = 4 , h*(s2) = 5
h(s3) = 3 , h*(s3) = 3
h(g) = 0 , h*(g) = 0

遵循目标的唯一途径,我们可以拥有:

g(s1) = 0, g(s2) = 1, g(s3) = 3, g(g) = 6,与上面的真实成本相吻合。

虽然启发式函数是可接受的(h(s) <= h*(s)),但f(n)不会是单调的。例如f(s1) = h(s1) + g(s1) = 3 f(s2) = h(s2) + g(s2) = 5 f(s1) < f(s2) f(s2)f(s3)iter()之间也是如此。

当然这意味着你有一个非常缺乏信息的启发式。