任何一种连贯的启发式算法都是可接受的。但是什么情况下启发式算法是可接受的而不是连贯的(单调)?
请提供一个这种情况的例子。
请提供一个这种情况的例子。
处的路径代价为5,
处的启发式估计也为5)。然而,通过到达目标的代价估计只有8(父节点的代价(5)加上从父节点到的路径代价(1),再加上处的启发式估计(2))。
的过程与上述问题相同。
Felner等人还提供了一些关于可接受但不一致的启发式算法的具体例子。考虑八数码难题:
假设您选择了另一组方块,比如5、6和7。然后假设您在每个节点计算启发式时是通过随机选择其中一组(1、2和3)或(5、6和7),并计算它们到目标位置的曼哈顿距离。这种启发式仍然是可接受的——它只会低估或与达到目标状态所需的移动次数相匹配。但是,它不再是一致的——在每个节点上的启发式估计之间没有明确的关系。
从不高估到达目标的成本。 f(n)从不高估沿着n的当前路径的解决方案的成本。 一个明显的可接受的启发式算法的例子是直线距离。
虽然已经过去了很久,但我还是会说出我的看法。我认为最容易理解的方法是,可接受的启发式函数表示当到达特定定义的目标节点时,你不能超越它,而一致的启发式函数则表示在到达任何节点时都不能超越它。这使关系清晰:由于目标节点是某个节点,因此一致的启发式是可接受的。但由于可接受只能保证一个节点的属性,因此可接受不能暗示一致。
Cost(a -> c) <= Cost(a -> b) + Cost(b -> c)
对于搜索空间中的任意三个节点a、b和c,理解成本是使用相邻节点之间的实际成本计算并使用启发式方法计算。