【发布时间】:2012-08-09 17:06:22
【问题描述】:
我需要在加权无向图中找到每条边的最短替代路径,即假设我在图中有一个 egde (a,b),那么我想计算顶点 a 和 b 之间的最短路径跳过直接路径,即 edge(a,b) 。如果没有替代路径,那么距离应该是无限的。我想对图的每条边都这样做。我尝试过使用 dijkstras 算法(遇到目标顶点时会中断),但是为每条边单独计算路径需要太多时间,特别是在没有替代方案的情况下路径是可能的(在这种情况下,必须遍历整个图)。您能否为此提出任何其他替代解决方案。
【问题讨论】:
-
为什么不简单地从图中删除“不允许”的边,然后运行 Dijkstra 或任何其他“正常”的寻路算法?
-
如果 Dijkstras 花费了太多时间,那么我认为你不走运。不要认为目前已知有更好的算法。
-
在查找下一个要升级的节点时,您的 dijkstra 实现是否使用最小堆?还是你只是遍历所有的验证?
-
显然它被称为替换路径问题:cstheory.stackexchange.com/questions/6822/… 更具体地说,它是单边替换路径。 google.com/…