【问题标题】:Minimum Spanning Tree Graph最小生成树图
【发布时间】:2017-04-18 10:47:33
【问题描述】:

我有一个连通图 G=(V,E) V={1,2,...,n} 和一个成本函数 c:E->R 和第二个部分图 G'=(V,T) 其中 T={ 对于每个顶点 v∈ V 找到具有最小成本的邻居并将新边添加到 T}

如果 G' 图至少有 2 个连通分量与顶点集合 我们认为图 H 其中 iff 边集(来自初始图 G) 不为空。我们在 H 的边上定义成本函数

假设我选择 V(H)={a,e,f} 和 E(H)={ae,af,fe} 和

E12={ab,bc,bd,ed} 
E23={eg,ef} E31={fc,fd}                            
c'(ae)=min{c(ab),c(bc),c(bd),c(ed)}=4
c'(af)=min{c(fc),c(fd)}=9
c'(fe)=min{c(eg),c(ef)}=8

现在对于每条边 e ∈ E(H),我们用 e' 标注边(来自原始图 G)
达到这个最小值。 所以 e'={bc,df,eg} 因为 bc=4 , df=9 和 eg=8 并且是连接我的组件的最小边。 我在 H 中有一个相对于成本函数 c' 的最小生成树,而 A' 是这棵树的边集。

所以 A'={ae,fe} (我从我的图 H 中删除了具有最大成本=af 的边以创建最小生成树) 我有另一组边 A'={e'|e∈A'} 和 是 G 中相对于函数成本 c 的最小生成树。

但我的 A' 中的所有边都与 e' 中的不同。

我做错了什么?

【问题讨论】:

    标签: algorithm graph


    【解决方案1】:

    看起来您正在实施 Boruvka 的算法。如果你看一下符号,它表示从一个新节点 vC1 到一个新节点 vC2 有一条边 如果有一对节点 x ∈ C1 和 y ∈ C2 在原始图 G 中相邻。换句话说,如果两个新节点在 G' 中对应的连通分量在 G 中相邻,则它们之间存在一条边。然后它们是原始图 G 中这些 CC 之间运行的任何边的成本最低的。

    【讨论】:

      猜你喜欢
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 2019-03-26
      相关资源
      最近更新 更多