请问您能推荐任何实现k短路径算法的Java库吗?这里的路径是指在有向多图中寻找替代路径,而不仅仅是最短路径。
我只找到了JGraphT,但实际上存在错误(我已经提交了),但我想修复它需要很长时间,还有其他可用的实现吗?除了JGraphT之外,我只发现了一些小型个人项目 :/
或者说,将Disjktra最短路径算法修改为显示替代路径会很困难吗?
谢谢
请问您能推荐任何实现k短路径算法的Java库吗?这里的路径是指在有向多图中寻找替代路径,而不仅仅是最短路径。
我只找到了JGraphT,但实际上存在错误(我已经提交了),但我想修复它需要很长时间,还有其他可用的实现吗?除了JGraphT之外,我只发现了一些小型个人项目 :/
或者说,将Disjktra最短路径算法修改为显示替代路径会很困难吗?
谢谢
2个可能的选项:
选项1. MascOpt Package中的class KshortestPath
是实现k最短路径的Java的好选择。
选项2. 您也可以尝试来自code.google.com的这个。这似乎是一个人的努力,但好的是算法是共享的: Yen's Ranking - 详细信息在此处(http://www.ohloh.net/p/k-shortest-paths)。
注意: 找到给定图中所有节点对之间的最短路径是不同的问题。请参见关于Dijkstra vs. Floyd-Warshall的此SO问题。
请注意,对于丰富图形的k-最短路径
来说,往往是(Dijkstra)最短路径的轻微变体 - 在最短路径上的顶点之间具有略高成本的替代路径。kBestShortestPaths
package 也是一个非常好的选择。
k
条最短的边不相交或节点不相交路径感兴趣吗?如果是第一种情况,可以研究最小费用最大流算法。 - IVlad