数据结构-我们可以将Bellman-Ford算法应用于无向图吗



我知道Bellman-Ford算法适用于有向图。它适用于无向图吗?似乎对于无向图,它将无法检测循环,因为平行边将被视为循环。这是真是假?可以应用该算法吗?

事实上,任何无向图也是有向图。

您只需要指定任意边{u,v}两次(u,v)和(v,u)。

但别忘了,这也意味着任何具有负权重的边都将被视为循环。由于Bellman-Ford算法只适用于不包含任何具有负权重的循环的图,这实际上意味着你的无向图不能包含任何具有负权重的边。

如果它不是很好的使用贝尔曼福特。

Bellman-Ford算法不适用于负权重的无向图,因为负权重的有向边{u,v}可以定义为负权重的2个有向边,(u,v)和(v,u),这将被Bellman-Fort算法提取为负循环。

因此,Bellman-Ford只研究正加权无向图。然而,在这种情况下,最好使用Dijkstra算法,因为它渐近更快。

Bellman-Ford不适用于在包含负循环的图上找到最短路径,但它可以找到图上的最短路径并可以检测图是否包含负循环,尽管它不会找到最短的路径,因为不存在这样的路径。

最新更新