如果您有一组可接受的启发式算法:h1,h2,h2,...,hn
h = max(h1,h2,h2,...,hn)
如何成为支配他们的可接受的启发式算法?
不是更低的h(n)值吗?
对于A *,f = g + n
,具有最低f的元素将从列表中删除。所以不应该让min
给出支配性的启发式算法吗?
答案 0 :(得分:1)
可接受的启发式算法永远不会高估达到目标状态的成本。也就是说,它的估计值将低于实际成本或实际成本,但绝不会更高。这对于像A *搜索这样的贪婪方法来说是必需的,以找到全局最佳解决方案。
例如,假设您找到了成本为10的解决方案。最佳解决方案的成本为8.您没有使用可接受的启发式算法,并且对于真正具有成本8的解决方案的启发式估计是12(它过高估计)。由于您已经拥有成本为10的解决方案,A *永远不会评估最佳解决方案,因为估计它会更昂贵。
理想情况下,您的启发式算法应尽可能准确,即可接受的启发式算法不应过分低估真实成本。如果确实如此,A *最终仍会找到最佳解决方案,但这样做可能需要更长的时间,因为它会根据您的启发式尝试很多看起来不错的解决方案,但结果却很糟糕。
这就是你的问题的答案所在。您的启发式h1, ..., hn
都是可以接受的,因此他们估算的成本等于或小于真实成本。因此,根据定义,这组估算的最大是与实际成本最接近的估计值(请记住,您永远不会高估)。在理想情况下,这将是确切的成本。
如果你要采用最小值,你最终会得到距实际成本最远的估计值 - 如上所述,A *仍然会找到最佳解决方案,但是以低效率的方式。