我知道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不适用于在包含负循环的图上找到最短路径,但它可以找到图上的最短路径并可以检测图是否包含负循环,尽管它不会找到最短的路径,因为不存在这样的路径。