使用A *算法找到几条最短路径

时间:2015-02-26 10:24:07

标签: algorithm graph routing shortest-path

我正在制作一个使用A *算法寻找路线的路由应用程序。 我想提供的不仅仅是一条路线,还有一些替代路线。例如,路线比最佳路线略长一点。

由于A *(和许多其他人)只找到一条路线,我该如何搜索这些替代路线?我应该使用其他算法吗?

2 个答案:

答案 0 :(得分:3)

您可能希望研究K shortest paths问题,这是在两个节点之间找到k个最短路径的问题。维基百科页面上描述的算法是Dijkstra's algorithm的推广。

  

要找到最短路径,可以使用最短路径算法   作为Dijkstra的算法或Bellman Ford算法并将它们扩展到   找到多条路径。 K最短路径路由算法是   最短路径问题的推广。该算法不仅   找到最短路径,但也按其他方式增加K路径   成本。 K是要找到的最短路径的数量。问题可能是   限制为没有循环的K最短路径(无环K   最短路径)或循环。

一些关键论文和概念:

答案 1 :(得分:1)

一种可能的解决方案是随着epsilon值的增加运行A*-epsilon

随着每次迭代,随着epsilon的增长,找到的路径预计会更长 - 找到它的时间会更短。