Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 为什么可接受的启发法能保证最优性?_Algorithm_Artificial Intelligence_A Star_Heuristics - Fatal编程技术网

Algorithm 为什么可接受的启发法能保证最优性?

Algorithm 为什么可接受的启发法能保证最优性?,algorithm,artificial-intelligence,a-star,heuristics,Algorithm,Artificial Intelligence,A Star,Heuristics,今天在课堂上,我的教授向我们介绍了可接受的启发式算法,并说它们保证了A*算法的最优性 我让他用一个极端的例子来解释这一点,让它变得明显,但他不能 有人能帮忙吗 我们有一份候选人名单,对吗 它们中的每一个都有一个ETC(预期总成本),以从起始节点达到目标(即,达到该节点的成本+达到目标的预期剩余成本(启发式)) 现在,如果预期成本与实际成本相同,我们将直接选择最短路径上的节点(好的,任何最短路径),而不选择其他路径。既然我们选择了最低的ETC,那么很明显为什么我们只从最短路径中选择节点——任何不在

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

我让他用一个极端的例子来解释这一点,让它变得明显,但他不能


有人能帮忙吗

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

它们中的每一个都有一个ETC(预期总成本),以从起始节点达到目标(即,达到该节点的成本+达到目标的预期剩余成本(启发式))

现在,如果预期成本与实际成本相同,我们将直接选择最短路径上的节点(好的,任何最短路径),而不选择其他路径。既然我们选择了最低的ETC,那么很明显为什么我们只从最短路径中选择节点——任何不在最短路径上的节点都会有更高的ETC

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

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

例如,假设成本如下:(节点上方/下方的成本是预期剩余成本,边缘处的成本是实际成本)

很明显,我们首先要访问中间的上节点,因为ETC是10(10+0)

然后目标是一个候选人,ETC为110(10+100+0)

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

因此,即使目标是一个候选目标,我们也无法选择它,因为还有一条更好的道路

使用不可接受的启发式,a*算法可以忽略 搜索问题的最佳解决方案

文中给出了一个很好的例子:15难题

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

将此作为当前节点:

目标节点:

交换15和14个磁贴

对于上图中显示的节点,它将返回2(两个分片放错了位置:15和14)。此启发式函数是可接受的,因为它不会忽略最佳解决方案(用两个移动对谜题进行排序——将15和14移动到正确的位置)

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

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