对于无向边加权图,如何找到从顶点v到顶点w的最短路径?

问题描述 投票:0回答:1

给定一些无向和边缘加权图,可以使用什么算法找到从某个顶点v到另一个顶点w的最短路径?

对于有向边加权图,您可以使用Dijkstra的最短路径算法,但是我使用的是无向图,所以它将不起作用。

对于没有边缘加权的图,您可以使用广度优先搜索(BFS),但是我正在使用边缘加权图,因此它将不起作用。

因此,鉴于它既是无向的又是边缘加权的,一般的最短路径方法是什么?

shortest-path undirected-graph
1个回答
1
投票

Dijkstra的单源最短路径算法可以应用于无向图和有向图。唯一的规定是边缘权重必须为非负值。从图形中的单个顶点v开始,将v弹出到集合S中。该算法检查S中尚不存在的每个相邻顶点,选择权重最小的边,然后将该顶点弹出到S中。 S中的每个相邻顶点都基于边缘权重进行更新。一旦遍历了整个图形,就确定了每个节点之间的最短路径。

示例:https://brilliant.org/wiki/dijkstras-short-path-finder/

此外,在加权边缘图上执行BFS证明是棘手的。有关推理,请参见此post

© www.soinside.com 2019 - 2024. All rights reserved.