将 BFS/DFS 的加权图转换为未加权图

时间:2021-03-23 20:30:22

标签: data-structures graph graph-algorithm depth-first-search breadth-first-search

是否有任何通用或简单的算法可以将加权图转换为非加权图(其中每条边具有相同的权重)?

我知道一种叫做 Djikstra 算法的算法,它在寻找图中任意两个顶点之间的最短距离时,其工作方式与加权图上的 BFS 非常相似。

但我想稍微改变一下这个问题,该问题在任何加权图中都存在,其中每条边都在权重集合 {1,2,3,4,...,n} 中,其中集合中的每个数字是边的权重。这样,如果每条边的权重相同,我可以直接对其应用 BFS 或 DFS。

我想找到一种修改图形的方法,以便修改后的图形中的每条边都具有相同的权重(意味着修改后的图中的每条边的权重最好为 1)。我知道我可能需要删除或添加边并添加中间顶点或从原始图中删除任何顶点来满足这一点。

是否有关于如何实现这一点的总体思路?我从来没有在 StackOverflow 上看到过讨论这个的帖子。

1 个答案:

答案 0 :(得分:0)

注意:加权图不会阻止您使用 BFS/DFS。

话虽如此,您当然可以通过添加一堆中间注释将加权图转换为未加权图。但是,我不建议您这样做,因为已经有诸如 dijkstra、bellman Ford、floyd warshall 之类的算法可以计算加权图上的最短路径。此外,我认为使用未加权图表示具有负边的加权图非常困难。

相关问题