繁体   English   中英

最小生成树图

[英]Minimum Spanning Tree Graph

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

在此处输入图片说明 在此处输入图片说明

如果G'图具有至少2个具有一组顶点的连通分量 在此处输入图片说明 我们考虑图H在哪里 在此处输入图片说明 如果边缘集(从初始图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是连接我组件的最小边。 而且,相对于成本函数c',我在H中有一个最小生成树,而A'是该树的边集。

因此,A'= {ae,fe}(我从图H删除了最大成本为af的边以创建最小生成树),并且我有另一组边A'= {e'|e∈A'}和 在此处输入图片说明 是相对于函数成本c的最小生成树。

但是我从A'出发的优势与从e'出发的优势都不相同。

我做错了什么?

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

暂无
暂无

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

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