我在理解启发式函数的“数学”方面遇到了很大的困难。今天在人工智能课上我走神了三分钟,错过了解释。能有人向我解释一下如何计算一个启发式函数是否可接受吗?我发布了这个问题(h5 = (h1 + h2 + h3) / 3 是否可接受?),但实际上不一定非得是这个问题。我只是通过例子理解得更好。
另外,我手头有《人工智能:现代方法》这本书,但我找不到例子。如果你知道我在哪里可以找到一个例子,我将不胜感激。
回答:
首先,我们回顾一下,启发式函数被认为是可接受的,如果它从不高估达到目标的成本。这意味着什么呢?
简而言之,这意味着,如果一个启发式函数为状态x
返回一个值h
,那么x
的实际解决方案的成本不会低于这个值。例如,在路径查找中,当前点与目的地之间的欧几里得距离是可接受的,因为没有路径能比直线更短!换句话说,可接受的启发式函数总是乐观的。
现在,我们回到你的问题。我们有三个可接受的启发式函数h1
、h2
和h3
,我们想知道这三个函数的平均值是否也是可接受的。现在我们可以称X(s)
为从状态s
到目的地的最佳可能成本(换句话说,就是最优解的成本)。X的值显然是未知的,但它会很有用。
因为h1
、h2
和h3
是可接受的,我们知道对于任何状态s
:
h1(s) < X(s)
(记住:h1从不高估最优成本!)h2(s) < X(s)
h3(s) < X(s)
然后,因为h5
是其他三个函数的平均值,我们可以肯定地知道,对于每个状态,它被限制在min(h1(s),h2(s),h3(s))
和max(h1(s),h2(s),h3(s))
之间。所以我们可以说,对于每个状态s
:
h5(s) <= max(h1(s),h2(s),h3(s)) <= X(s)
因此,h5
也是可接受的。