【问题标题】:How will Heuristic effect the Dikstras algorithm to make it a A* algorithmHeuristic 将如何影响 Dijkstra 算法使其成为 A* 算法
【发布时间】:2019-07-08 01:22:42
【问题描述】:

我正在开发一种 A* 算法,旨在解决传教士和食人族问题。我不明白的是启发式算法如何使搜索比 Dikstras 算法更少的节点。

我知道程序会优先搜索,使用启发式值+当前值来确定可能的值,但是算法如何知道何时停止搜索而不分支到其他节点?

【问题讨论】:

    标签: algorithm graph-algorithm heuristics


    【解决方案1】:

    启发式必须保证它永远不会太高(假设您正在寻找最小的解决方案)。因此,一旦你找到了一个完整的解决方案,你就知道它一定是最好的。任何不完整的解决方案(已经比您当前的解决方案具有更高的价值,否则您会进一步探索它)只有在完成后才能更高。

    【讨论】:

    • 好的,所以首先用启发式方法探索最佳方案,然后一旦找到特定的解决方案,您将获得最佳解决方案,而无需再搜索?
    • 是的,这就是 A* 的工作原理。准确地说,“找到”意味着解决方案被扩展为接下来要尝试的最佳解决方案。
    猜你喜欢
    • 1970-01-01
    • 2020-12-26
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    相关资源
    最近更新 更多