当前位置: 首页 > 知识库问答 >
问题:

如何求图中最小生成树的总数?

时仰岳
2023-03-14
    null
  • 所有权重都将为正值。
  • 我们还可以假设没有权重在图中出现超过三次。
  • 顶点数将小于或等于40,000。
  • 边数将小于或等于100,000。

在顶点权重不同的图中只有一棵最小生成树。我认为找到最小生成树数目的最好方法一定是使用这个属性。

编辑:

现在考虑一个使用Kruskal算法的部分形成的生成树。我们已经插入了一些长度小于N的边,现在必须选择几条长度为N的边。算法规定,如果可能的话,我们必须在任何长度大于N的边之前插入这些边。然而,我们可以按照我们想要的任何顺序插入这些边。还要注意,无论我们插入哪条边,它都不会改变图的连通性。(让我们考虑两个可能的图,一个图有从顶点A到顶点B的边,另一个图没有。第二个图必须有A和B作为同一连通分量的一部分;否则从A到B的边就会插在一点上。)

这两个事实一起意味着,我们的答案将是使用Kruskal算法插入长度为K的边(对于K的每个可能值)的方法的乘积。由于任意长度的边最多有三条,不同的情况可以被野蛮强迫,并且在每一步之后可以像通常一样确定连接的分量。

共有1个答案

曹新觉
2023-03-14

看Prim的算法,它说重复添加权重最低的边。如果有一个以上的具有最低权重的边可以添加,会发生什么?选择一棵树可能会比选择另一棵树产生不同的树。

如果你使用Prim的算法,并运行它为每一个边缘作为开始边缘,也锻炼所有的联系,你遇到。然后你就会有一个包含Prim算法能够找到的所有最小生成树的森林。我不知道这是否等于包含所有可能的最小生成树的森林。

这仍然归结为找到所有最小生成树,但我看不出简单的方法来确定不同的选择是否会产生相同的树。

 类似资料:
  • 假设我选择V(H)={a,e,f}和e(H)={ae,af,fe} 现在,对于每条边e∈e(H),我们用e'记下了(来自原始图G的) 达到这个最小值的边。所以E'={bc,df,eg},因为bc=4,df=9,eg=8,是连接我的元件的最小边。我在H中有一个相对于代价函数C′的最小生成树,而a′是这棵树的边集。 但是我的A'的边和E'的没有一条是一样的。

  • 我需要一些关于Prim的算法问题的帮助: 设T是图G的一个由Prim算法得到的最小生成树。设Gnew是在G上增加一个新的顶点和一些带权的边,将新的顶点连接到G上的一些顶点而得到的图,我们能把其中一条新的边加到T上构造Gnew的最小生成树吗?如果你回答是,请解释是怎样做的;如果没有,请解释原因。 提前谢谢!!

  • 这里有一个图,我需要用Prim和Kruskal的算法找到G的最小生成树。 我用普里姆的算法找到了最小生成树。这是我的尝试。 我很难用Kruskal的算法找到最小生成树。我看过许多与Kruskal的图算法相关的视频,但最终得到的图与Prim的算法相同。 谁能给我演示一下如何用Kruskal的算法找到图的最小生成树吗?

  • 主要内容:生成树,最小生成树数据结构提供了 3 种存储结构,分别称为线性表、树和图,如图 1 所示。 图 1 3 种存储结构 a) 是线性表,b) 是树,c) 是图。 在图存储结构中,a、b、c 等称为顶点,连接顶点的线称为边。 线性表是最简单的存储结构,很容易分辨。树和图有很多相似之处,它们的区别是:树存储结构中不允许存在环路,而图存储结构中可以存在环路(例如图 1 c) 中,c-b-f-c、b-a-f-b 等都是环路)。

  • 赋权图G的最小瓶颈生成树是G的生成树,使得生成树中任何边的最大权值最小。MBST不一定是MST(最小生成树)。 请举例说明这些说法有意义的地方。

  • 最小生成树英文是Minimum Spanning Tree,对于最小生成树大家应该都不陌生,当然还有最大生成树,首先就简单总结一下算法里的生成树。 一、什么是生成树? Spanning有跨越的意思,生成树一般来说每个节点都能访问到别的节点,是一个连通树。所以,一般考虑无向图里去造生成树。生成树又分最小和最大两种,其中最小生成树应用比较多。总结一下生成树的定义: 1. 首先它得是一个树的结构 2.