繁体   English   中英

无向图的最小加权路径树

[英]Minimum Weighted Path Tree of an Undirected Graph

假设我们有一个无向图G =(V,E)并且我们有两个节点S和X.

  1. 我们能否提出一种算法,以使从S到X的路径上边缘的最大权重最小化? 请注意,它不是最短路径算法,因为我们不希望最小化它们的总和。
  2. 该算法的复杂性是什么?
  3. 最小生成树算法(例如Prim)是否可以解决此问题?

我不知道最小生成树是否可以解决它,但是通过对Dijkstra算法进行一些修改,它肯定可以解决。

将路径的“长度”定义为该路径的最大边缘。 现在,使用Dijkstra算法找到从S到X的最短路径。 这是您要寻找的路径。 如果使用二进制堆,则复杂度为O((N+M)log N) O(N * log N + M) ,而对于Fibonacci堆,复杂度为O((N+M)log N) O(N * log N + M)

请注意,对于路径长度的这个新定义,如果路径的长度为l ,则在路径的末尾添加边缘不会减小其长度,因为该路径中的最大边缘只能增加。 该属性对于Dijkstra的算法正常工作是必需的。

例如,如果您正在寻找边缘最短的路径,则Dijkstra的算法将失败,就像图形中存在负边缘时失败一样。

您可以使用最小生成树(Prim算法)来解决此问题。 您将从顶点S开始,然后继续使用Prim的算法构建树,直到找到X为止。 复杂度将为O((V + E)* logV)。
之所以会起作用,是因为在prim的算法中,您总是首先选择权重最小的边缘。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM