K-最短(替代)路径算法,Java实现(k-shortest (alternative) path

2019-08-01 05:49发布

你能推荐一个实现K优算法的任何Java库 - >寻找其他途径,不是唯一的最短在向重?

我只找到JGraphT但实际上存在BUG(我提交的),但它会占用大量的时间来修复它,我想,还有没有其他可用的实现? 除了JGraphT我发现只有小单人项目:/

或将难以改变Disjktra最短路径ALG显示替换路径?

谢谢

Answer 1:

2个可用的选项:

选项1 class KshortestPath从该MascOpt包是一个Java实现的K-最短路径一个不错的选择。

选项2.您也可以尝试这个code.google.com这似乎是一个人的努力,但好事是,该算法是共享的。日元的排名-细节在这里( HTTP://www.ohloh达网络/ p / K TP-最短路径 )

注意 :查找在给定图中所有节点对之间的最短路径是不同的问题。 见到这对SO质疑的Dijkstra与弗洛伊德-沃肖尔 。

还要注意的是k-shortest paths为丰富的图形往往是(Dijkstra算法)最短路径的微小变化-的最短路径上的顶点之间的替代路径与小幅更高的成本。

我知道问Java实现的OP但如果人们有选择的,R是一种选择,那么kBestShortestPaths 包从CRAN是一个非常好的选择,以及。

希望帮助。



Answer 2:

寻找K-最短路径有关,但不完全一样的问题,因为可供选择的道路。 良好的替代路径更加复杂。 有读 ,而其他类似的方法进行了概述:

  • K-最短路径
  • 帕累托最优
  • 高原方法
  • 处罚办法

高原的方法是说明了一下这里 。

如果有可能你不懂德语那么本次讲座是好的 :

  • 例如关于时间或距离优化=>问题:有趣的选择失踪
  • dijunct路径=>同样的问题
  • K-最短路径=>问题:真正的替代方案是可能不是第一1000条路径下

第5页

所以,直觉告诉我们:一个替代应该有几乎相同的距离或时间。 而应该是显著不同。 所以第一个想法:找到这minizes长度和相似的路径。 问题:有可能是当地的弯路。

第6页

我们引入了第三个标准: 本地optimumality:每个短子路径必须是一个最短路径。



Answer 3:

已经有前一个类似的请求,而是寻找在计算器上的所有路径。 查找与DFS图的所有路径

希望这有助于有人回答,但不与精确解,但更多的是引导



文章来源: k-shortest (alternative) path algorithm, java implementations