我理解为什么当启发式总是低估时,A *算法总是给出目标状态的最佳路径,但是我无法为它创建一个正式的证据。
据我了解,对于每条被认为越来越深的路径,f(n)
的准确度会增加,直到目标状态为100%准确。此外,由于估算小于实际成本,因此不会忽略不正确的路径;从而导致最佳路径。但是我应该如何为它创建证据?
答案 0 :(得分:6)
证明的主要思想是当A *找到路径时,它找到一条路径,其估计值低于任何其他可能路径的估计值。由于估计是乐观的,因此可以安全地忽略其他路径。
此外,只有满足两个条件时,A *才是最佳的:
启发式可接受,因为它永远不会高估成本。
启发式是单调,即,如果 h(n i )< h(n i + 1 ),然后实际成本(n i )<实际成本(n i + 1 )。
你可以通过假设相反的方式证明最佳性是正确的,并扩大其含义。
假设A *给出的路径不是最优的,具有可接受的单调启发式算法,并考虑这意味着什么意义(你很快就会发现自己达到矛盾),因此,你原来的假设被简化为荒谬。
由此您可以得出结论,您的原始假设是错误的,即A *在上述条件下是最优的。 Q.E.D。
答案 1 :(得分:2)
考虑最后一步,即完成最佳路径的步骤。
为什么A *必须选择那条路?或者换句话说,为什么A *必须避免选择达到目标的次优路径?
提示 :这就是启发式需要可接受的原因。注意,可以选择次优路径,只要它不完成路径(为什么?)。
这应该会让你知道如何制作证据。