【问题标题】:Proof of A* algorithm's optimality when heuristics always underestimates当启发式总是低估时 A* 算法最优性的证明
【发布时间】:2012-04-29 01:28:06
【问题描述】:

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

据我了解,随着每条路径的深入,f(n) 的准确度会增加,直到达到 100% 准确的目标状态。此外,不会忽略不正确的路径,因为估计值低于实际成本;从而导致最优路径。但是我应该如何为它创建一个证明呢?

【问题讨论】:

    标签: algorithm search artificial-intelligence a-star


    【解决方案1】:

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

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

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

    这应该让您了解如何制作证明。

    【讨论】:

      【解决方案2】:

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

      此外,A* 仅在满足两个条件时才是最优的:

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

      2. 启发式是单调的,即如果h(ni) i + 1),然后 real-cost(ni) i + 1)


      您可以通过假设相反的假设并扩展其含义来证明最优性是正确的。

      假设 A* 给出的路径不是在可接受的单调启发式下是最优的,并考虑这意味着什么(你很快就会发现自己遇到了矛盾),因此,您最初的假设被简化为荒谬。

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

      【讨论】:

      • 我认为当它是单调的时,您可以更有效地运行算法,但这不是必需的。你能告诉我你从哪里得到他们的信息吗?
      • 如果您将 A* 应用于封闭集,这是必要的。来自维基百科(还有其他来源):“如果启发式函数是可接受的,这意味着它永远不会高估达到目标的实际最小成本,那么如果我们不使用封闭集,A* 本身就是可接受的(或最优的)。如果使用闭集,那么 A* 也必须是单调的(或一致的)才能达到最优。”
      • 抱歉 pcalcao,但根据您的定义,如果 $h(n_1)
      • 单调/一致启发式并不意味着 h(a) v1 -> ... -> vn,成本函数 f(vi)=g(vi)+h(vi) (其中 g(vi) 是沿路径 v0 -> v1 -> ... -> vi 从源顶点 v0 到 vi 的距离)沿路径是单调的,即对于任何 0
      • 这是我评论中“当且仅当”语句的来源(向下滚动到“定理 1.1”和“一致和单调启发式的等效性”):sciencedirect.com/topics/computer-science/consistent-heuristic
      猜你喜欢
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      相关资源
      最近更新 更多