为什么可接受的启发式保证最优性?

时间:2014-05-31 13:26:30

标签: algorithm artificial-intelligence a-star heuristics

今天在课堂上,我的教授向我们介绍了可接受的启发式,并声明它们保证了 A *算法的最优性。

我让他用一个极端的例子解释它,使其显而易见,但他不能。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:6)

我们有一份候选人名单,对吧?

每个人都有一个ETC(预计总成本)从起始节点到达目标(即达到该节点的成本+目标的预期剩余成本(启发式))。

现在,如果预期成本与实际成本相同,我们只需选择最短路径上的节点(以及任何最短路径),而不是其他任何东西。由于我们选择了最低的ETC,因此我们只选择从最短路径中选择节点应该是非常明显的 - 任何不在最短路径上的东西都会有更高的ETC。

如果ETC低于实际成本怎么办?我们总是选择最低的ETC,因此我们可能最终选择不在最短路径上的节点。但是我们永远无法通过一条不是最短路径的路径达到目标,因为:

  • 最短路径的实际成本低于任何非最短路径
  • 目标的ETC与通过该路径达到目标的成本相同(因为我们已达到目标,预期剩余成本为0)
  • ETC始终小于或等于任何路径上的实际总成本
  • 因此,最短路径上的ETC严格小于通过非最短路径到达目标的ETC。

例如,假设我们的成本如下:(节点高于/低于节点的成本是预期剩余成本,边缘成本是实际成本)

  0    10  0  100   0
START ---- O ------ GOAL
0 |                 | 100
  O ------ O ------ O
 100  1   100  1   100

很明显,我们开始访问顶级中间节点,因为ETC是10(10 + 0)。

然后目标将成为候选人,ETC为110​​(10 + 100 + 0)。

然后我们一个接一个地选择底部节点,然后是更新的目标,因为它们都具有低于当前目标的ETC的ETC,即它们的ETC是:100,101,102,102。

所以即使目标是候选人,我们也不能选择它,因为那里还有更好的路径。

答案 1 :(得分:0)

根据此Wikipedia Article

<块引用>

使用不可允许的启发式算法,A* 算法可以忽略 搜索问题的最优解...

文章中给出了一个很好的例子:15-puzzle problem。

对于这个特定问题,采用一个启发式函数,该函数返回错位图块(移动)的数量作为达到目标(整个拼图排序的位置)的成本。这是尽可能少的移动次数,尽管它不是一个实际的解决方案。

以此为当前节点:

enter image description here

目标节点:

交换 15 和 14 块瓷砖。

对于上图中呈现的节点,它将返回 2(两个图块错位:15 和 14)。这种启发式函数是可以接受的,因为它不会忽略最佳解决方案(用 2 步对拼图进行排序——将 15 和 14 移动到正确的位置)

因此,启发式保证了最优性。