当启发式总是低估时,A *算法的最优性证明

时间:2012-04-17 17:09:56

标签: algorithm search artificial-intelligence a-star

我理解为什么当启发式总是低估时,A *算法总是给出目标状态的最佳路径,但是我无法为它创建一个正式的证据。

据我了解,对于每条被认为越来越深的路径,f(n)的准确度会增加,直到目标状态为100%准确。此外,由于估算小于实际成本,因此不会忽略不正确的路径;从而导致最佳路径。但是我应该如何为它创建证据?

2 个答案:

答案 0 :(得分:6)

证明的主要思想是当A *找到路径时,它找到一条路径,其估计值低于任何其他可能路径的估计值。由于估计是乐观的,因此可以安全地忽略其他路径。

此外,只有满足两个条件时,A *才是最佳的:

  1. 启发式可接受,因为它永远不会高估成本。

  2. 启发式是单调,即,如果 h(n i )< h(n i + 1 ,然后实际成本(n i )<实际成本(n i + 1


  3. 你可以通过假设相反的方式证明最佳性是正确的,并扩大其含义。

    假设A *给出的路径是最优的,具有可接受的单调启发式算法,并考虑这意味着什么意义(你很快就会发现自己达到矛盾),因此,你原来的假设被简化为荒谬。

    由此您可以得出结论,您的原始假设是错误的,即A *在上述条件下是最优的。 Q.E.D。

答案 1 :(得分:2)

考虑最后一步,即完成最佳路径的步骤。

为什么A *必须选择那条路?或者换句话说,为什么A *必须避免选择达到目标的次优路径?

提示 :这就是启发式需要可接受的原因。注意,可以选择次优路径,只要它不完成路径(为什么?)。

这应该会让你知道如何制作证据。