图表:确定路径是否比其他路径至少好X%

时间:2011-10-07 22:03:10

标签: c# algorithm graph path

假设我们在无向循环加权图中有一条路径。假设我们有一个引擎可以在这样的图中找到从节点A到节点B的路径,是否有一种简单的方法/算法来确定从A到B的给定路径是否比任何其他不相交的路径至少好X%从A到B?通过不相交我的意思是两条路径可能不共享任何边缘。

1 个答案:

答案 0 :(得分:2)

我看到这样做的唯一方法是从图表中删除给定路径的边缘,在较小的图表中找到从A到B的minimum weight path,并进行比较。

要使用此方法解决此问题,请尝试以下经过充分研究的算法之一:

  • Dijkstra的算法解决了单源最短路径问题。
  • 如果边权重可能为负,Bellman-Ford算法可以解决单一来源问题。
  • A *搜索算法使用启发式方法解决单对最短路径,以尝试加快搜索速度。
  • Floyd-Warshall算法解决所有对最短路径。
  • Johnson的算法解决了所有对最短路径,并且在稀疏图上可能比Floyd-Warshall快。
  • 扰动理论发现(最坏的情况下)局部最短路径。