可允许的启发式方法如何确保最佳解决方案?


16

当使用A *(或任何其他最佳路径查找算法)时,我们说使用的启发式方法应该是可以接受的,也就是说,它绝不应高估实际解路径的长度(或移动量)。

可允许的启发式方法如何确保最佳解决方案?我最好在寻找一个直观的解释。

如果需要,您可以使用8难题曼哈顿距离启发法进行解释


2
@Ashwin从直觉上讲,因为当算法找到长度为的路径时,它已经尝试了每条可能最多为路径。这就是为什么您的启发式功能绝不能高估目标成本。自己尝试制作可能会高估的启发式函数。kk
2013年

Answers:


7

虽然安东的回答是绝对完美的,让我尝试提供一个备选答案:是受理意味着启发式不会过高地估计要达到的目标努力,即对所有ñ状态空间(在8拼图中,这意味着仅针对图块的任何排列和您当前正在考虑的目标),其中h n 是达到目标的最佳成本。h(n)h(n)nh(n)

我认为,最合理的答案是,如果h n 可接受,为什么提供最佳解,是因为它以f n = g n + h n )的升序对OPEN中的所有节点进行排序,并且,因为它在生成目标时不会停止,而在扩展目标时会停止:Ah(n)f(n)=g(n)+h(n)

  1. 因为节点以升序扩展,所以您知道没有其他节点比当前节点更有前途。请记住:h n 是允许的,因此具有最低的f n 意味着它有机会通过OPEN中其他节点没有的更便宜的路径达到目标。除非您可以证明相反的意思,即通过扩展当前节点,否则这是正确的。f(n)h(n)f(n)
  2. 由于仅在它继续扩展目标节点时停止(如在生成目标节点时停止),因此您可以确信(从上面的第一点开始)没有其他节点可以通过更便宜的路径到达目标节点。A

从本质上讲,这就是Nilsson等人在原始证明中所能找到的全部。

希望这可以帮助,


3
谢谢。它有帮助。您指的是Nilsson等人的一些证据。那是谁?在哪里可以找到证明?
Ashwin

1
@Ashwin参见Nils J. Nilsson(1982)所著的“ 人工智能原理 ”(约80页)。
nbro

11

如果启发式函数是不允许的,那么我们可以得到一个大于从某个节点到目标节点的实际路径成本的估计。如果此较高的路径成本估算值位于(我们正在搜索的)最低成本路径上,则该算法将不会对其进行探索,并且可能会找到通往目标的另一条(并非最低成本)路径。

看这个简单的例子。

在此处输入图片说明

G分别为起始节点和目标节点。让ħ ñ 是从节点的路径的长度的估计ÑģÑ在图中。此外,让Ç Ñ X 是的步骤成本函数从节点Ñ到其相邻X Ñ= 1 .. ,其中AGh(N)NGNc(N,Xi)NXiNi=1..mm的邻居数(即,一个函数,它返回节点N与它的一个邻居之间的边的成本)。NN

让启发式成为

  • h(B)=3

  • h(C)=4

该启发式函数是不允许的,因为h C = 4 > c C G = 2H

h(C)=4>c(C,G)=2

AABGABG4ACG3


1
好。但是,可允许的启发式方法如何确保最佳解决方案?
Ashwin

可能会发生-h(b)<h(c)允许h(b)和h(c)都可以,但是Actual_cost(b)> actual_cost(c)对吗?因此,将选择b作为下一个路径,而实际上c会给出最佳路径。
Ashwin

对于第一个评论:可允许的启发式算法可确保找到最短路径。如果启发式方法一致,则解决方案本身是最佳的。
安东

对于第二条评论:如果启发式是允许的,则可以为下一个要扩展的节点选择A-> B,但此后A *将选择A-> C,而不是A-> B-> G。最后,它将以A-> C-> G结尾。
安东

1
因为A *是这样工作的。它以最小的距离与该节点的距离之和+对该节点的启发式估计来扩展该节点。d(A,G)+ h(G)= 4 + 0 = 4且d(A,C)+ h(C)= 1 +≤2(因为它是可接受的)。因此,C的总和较低,A *将选择它。它将以相同的方式扩展G并找到最小的路径。
安东
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.