algorithm - 如何有效修改 A* 算法以提供第 n 条最短路径?

标签 algorithm path path-finding a-star

如何有效地修改 A* 算法以提供例如第二或第八最短路径,不是第一?

最佳答案

如果可能的话,我建议您尝试让您的程序看起来像 Dijkstra 适用的最短路径问题,然后使用您已经指出的答案之一来找到这种情况下的第 k 条最短路径,例如 Eppstein's algorithm and Yen's algorithm for k shortest paths .

但还有另一种方法。有一种通用技术可以通过添加允许您拆分解决方案树的额外约束来找到组合问题的第 K 个最佳答案。它被称为 Lawler-Murty,例如在 http://www.vldb.org/pvldb/vol4/p1028-golenberg.pdf 的第 2 节中进行了描述。

关于algorithm - 如何有效修改 A* 算法以提供第 n 条最短路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35991990/

相关文章:

algorithm - 如何使用 MERGE SORT 对 K 个排序数组进行排序

java打印字符串给出指针编号

algorithm - 寻找罕见或保留的 UTF-8 代码,以防止与文本内容冲突

algorithm - 解析教科书索引

algorithm - 最短路径算法(A*)中的多个解决方案

node.js - 从 Node.js 中的另一个自定义模块访问自定义模块的正确路径表示法

algorithm - 在拓扑排序的加权有向无环图上进行最长路径搜索,但有效路径的边数最大

Prolog中的寻路

c++ - 如果要求比较器是严格的全排序而不仅仅是严格的弱排序,C++ 标准算法会更快吗?

android - 如何让路线绘制更高效?