最短路径不是图中的路径

时间:2010-08-09 15:56:41

标签: algorithm graph shortest-path

我想知道是否有一种算法可以在图中找到最短路径。

假设我有一个图表,其中有一对从一个顶点到另一个顶点的路径。这些路径中的两个或更多个具有相同的成本。如何标记,找到这些顶点之间的所有最短路径?据我所知,Dijkstra或Bellman-Ford算法会找到最短路径,但他们只“选择”一个。

2 个答案:

答案 0 :(得分:2)

Dijkstra的算法为您提供了所有可能的中间节点的成本,以及到接收器的最短路径的成本。您可以通过从接收器到源(向后)进行深度优先搜索来获取从源到接收器的所有路径,只有当该边缘的成本等于成本之间的差异时才能遍历边缘(向后)。从源到两个节点的最短路径。当然,你以相反的顺序获得路径,但是反转它们很容易。

答案 1 :(得分:0)

看看Floyd-Warshall

  

在计算机科学中,   Floyd-Warshall算法(有时候   被称为WFI   算法或   Roy-Floyd算法)是一个图表   寻找分析算法   加权图中的最短路径   (有正面或负面边缘   权重)。单次执行   算法会找到长度   最短路径的(总和权重)   但是在所有顶点对之间   它不会返回详细信息   路径本身。算法是一个   动态编程的例子。