【问题标题】:How does Heuristic algorithm work?启发式算法如何工作?
【发布时间】:2013-10-07 23:37:22
【问题描述】:

我最近正在学习一些启发式算法,例如 A* 搜索算法。我知道一些关于启发式搜索算法的基本事实,例如 f(n)=g(n)+h(n),并且我也知道每个可接受和一致的含义。但是让我困惑的是启发式算法是如何工作的?为什么启发式值更接近成本的实际值会更好?谢谢!

【问题讨论】:

    标签: algorithm artificial-intelligence a-star heuristics


    【解决方案1】:

    启发式方法只是一个有根据的猜测。近似值保证在一定范围内。 christofides 算法是一种近似算法,但仅适用于满足三角形不等式(度量 tsp)的图。来源:https://cs.stackexchange.com/questions/10182/difference-between-heuristic-and-approximation-algorithm

    【讨论】:

      【解决方案2】:

      考虑一个完美的启发式 h(n)。它给出了从 n 到目标的确切最短距离。

      因此,最短路径上每个节点 s 的成本函数 f(s) 将相同,并且等于最短路径的长度:到目前为止行进的距离加上到目标的确切最短距离。

      所以不难看出,对于所有最短路径节点 s 和任何给定的非最短路径节点 n,我们有 f(s)

      现在考虑 A* 算法在这种启发式下的表现:在每个节点上,选择的下一个扩展到队列中的节点也将是最短路径上的下一个节点,因为它必须具有最小的可能值F。因此,该算法将沿着最短路径直接从起点移动到目标节点,没有任何失误!

      如果你没有完美的启发式算法,算法显然会出错,因为 f(n)

      该算法的美妙之处在于,只要启发式是可接受的,它仍然会找到最短路径,只是比完美路径慢。

      【讨论】:

        【解决方案3】:

        启发式函数的作用类似于对完成端到端路径的最低剩余成本的估计。 f(n) = g(n) + h(n) 以最低成本为界,延伸和完成路径 g(n)。因此,对于可接受的启发式函数,可以保证搜索会成功。

        启发式函数越接近,搜索越快。考虑极端情况,即 h(n) = 0 ,您将进行 A 搜索,而如果 h(n) 恰好是剩余成本,这意味着 f(n) 是实际成本,则搜索完成。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-05-25
          • 2019-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-24
          相关资源
          最近更新 更多