最小生成树图

时间:2016-12-03 17:37:29

标签: algorithm graph

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

enter image description here enter image description here

如果G'图中至少有2个连通分量与顶点集enter image description here我们认为图H在哪里 enter image description here iff边缘集(来自初始图G)enter image description here不为null。我们在H的边缘定义成本函数enter image description here

让我们说我选择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,例如}因为bc = 4,df = 9,例如= 8,并且是连接我的组件的最小边。 并且我在H中的最小生成树相对于成本函数c'和A'是此树的边集。

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

但我的A'与e'中的相同。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您似乎正在实施Boruvka的算法。如果你看一下符号,它表示从一个新节点v C 1 到新节点v C 2的边缘 如果在原始图G中存在一对节点x∈C 1 和y∈C 2 ,换句话说,如果它们在G'中对应的连接组件,则在两个新节点之间存在边缘。在G.中相邻的边缘成本是在原始图G中那些CC之间运行的任何边缘的成本中的最低成本。