【发布时间】:2012-04-29 01:28:06
【问题描述】:
我理解为什么当启发式总是低估时,A* 算法总是给出到达目标状态的最佳路径,但我无法为其创建正式的证明。
据我了解,随着每条路径的深入,f(n) 的准确度会增加,直到达到 100% 准确的目标状态。此外,不会忽略不正确的路径,因为估计值低于实际成本;从而导致最优路径。但是我应该如何为它创建一个证明呢?
【问题讨论】:
标签: algorithm search artificial-intelligence a-star
我理解为什么当启发式总是低估时,A* 算法总是给出到达目标状态的最佳路径,但我无法为其创建正式的证明。
据我了解,随着每条路径的深入,f(n) 的准确度会增加,直到达到 100% 准确的目标状态。此外,不会忽略不正确的路径,因为估计值低于实际成本;从而导致最优路径。但是我应该如何为它创建一个证明呢?
【问题讨论】:
标签: algorithm search artificial-intelligence a-star
考虑最后一步,即完成最佳路径的那一步。
为什么 A* 必须选择那条路径?或者,换一种说法,为什么 A* 必须避免选择达到目标的次优路径?
提示:这就是启发式需要可接受的原因。请注意,可以选择次优路径,只要它没有完成路径(为什么?)。
这应该让您了解如何制作证明。
【讨论】:
证明的主要思想是,当 A* 找到一条路径时,它找到了一条估计值低于任何其他可能路径的估计值的路径。由于估计是乐观的,因此可以安全地忽略其他路径。
此外,A* 仅在满足两个条件时才是最优的:
启发式是可接受的,因为它永远不会高估成本。
启发式是单调的,即如果h(ni) i + 1),然后 real-cost(ni) i + 1)。
您可以通过假设相反的假设并扩展其含义来证明最优性是正确的。
假设 A* 给出的路径不是在可接受的单调启发式下是最优的,并考虑这意味着什么(你很快就会发现自己遇到了矛盾),因此,您最初的假设被简化为荒谬。
由此您可以得出结论,您最初的假设是错误的,即 A* 在上述条件下是最优的。 Q.E.D.
【讨论】: