【发布时间】:2019-10-06 19:37:41
【问题描述】:
给定一些无向和边加权图,可以使用什么算法来找到从某个顶点 v 到另一个顶点 w 的最短路径?
对于有向边加权图,您可以使用 Dijkstra 的最短路径算法,但我正在使用无向图,所以它不起作用。
对于非边加权图,您可以使用广度优先搜索 (BFS),但我正在使用边加权图,所以它不起作用。
那么考虑到它既是无向的又是边加权的,那么一般的最短路径法是什么?
【问题讨论】:
-
是什么让您认为您不能将 Dijkstra 算法用于无向图?
-
@mangusta 在我正在阅读的书中(Sedgewick 的算法第 4 版)中,关于最短路径的部分提出了专门针对有向图的 Dijkstra 算法。他们的主张:Dijkstra 算法解决了具有非负权重的边加权有向图中的单源最短路径问题。
-
作者可能将无向图视为具有边
i -> j和j -> i的有向图,因为每对(i , j)之间都有一条无向边 -
@mangusta 我在网上几乎找不到任何与 Dijkstras 一起提到无向图的资源。无论哪种方式,是否可以修改广度优先搜索以在找到最短路径时考虑边缘权重?
-
当然不是。您可以将 Dijsktra 算法用于一般的无向图。
标签: shortest-path undirected-graph