【发布时间】:2019-07-08 01:22:42
【问题描述】:
我正在开发一种 A* 算法,旨在解决传教士和食人族问题。我不明白的是启发式算法如何使搜索比 Dikstras 算法更少的节点。
我知道程序会优先搜索,使用启发式值+当前值来确定可能的值,但是算法如何知道何时停止搜索而不分支到其他节点?
【问题讨论】:
标签: algorithm graph-algorithm heuristics
我正在开发一种 A* 算法,旨在解决传教士和食人族问题。我不明白的是启发式算法如何使搜索比 Dikstras 算法更少的节点。
我知道程序会优先搜索,使用启发式值+当前值来确定可能的值,但是算法如何知道何时停止搜索而不分支到其他节点?
【问题讨论】:
标签: algorithm graph-algorithm heuristics
启发式必须保证它永远不会太高(假设您正在寻找最小的解决方案)。因此,一旦你找到了一个完整的解决方案,你就知道它一定是最好的。任何不完整的解决方案(已经比您当前的解决方案具有更高的价值,否则您会进一步探索它)只有在完成后才能更高。
【讨论】: