下载此文档

最小生成树算法及其应用.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
最小生成树算法及其应用 ,常常需要把一些电子元件的插脚用电线连接起来。如果每根电线连接两个插脚,把所有n个插脚连接起来,只要用n-1根电线就可以了。在所有的连接方案中,我们通常对电线总长度最小的连接方案感兴趣。把问题转化为图论模型就是:一个无向连通图G=(V,E),V是插脚的集合,E是插脚两两之间所有可能的连接的集合。给每条边(u,v)一个权值w(u,v),表示连接它们所需的电线长度。我们的目标就是找到一个无环的边集T,连接其中所有的点且使总权值最小。总权值既然T是连接所有点的无环边集,它一定是一棵树。因为这棵树是从图G中生成出来的,我们把它叫做生成树。如果一棵生成树在所有生成树中总权值最小,我们就把它称作最小生成树。?下面我们就介绍一种贪心算法。该算法设置了集合A,该集合一直是某最小生成树的子集。算法执行的每一步,都要决策是否把边(u,v)添加到集合A中,能够添加的条件是保证A∪{(u,v)}仍然是最小生成树的子集。我们称像(u,v)这样的边为A的安全边,或称这样的边对集合A是安全的。求最小生成树的一般算法流程如下:GENERIC-MST(G,w)←(u,v)←A∪{(u,v)},显然满足最小生成树子集的条件。之后,每一次循环都把一条A的安全边加入A中,A依然是最小生成树。本节的余下部分将提出一条确认安全边的规则(定理1),下一节将具体讨论运用这一规则寻找安全边的两个有效的算法。图1一个图的割(S,V-S)首先定义几个概念。有向图G=(V,E)的割(S,V-S)是V的一个分划。当一条边(u,v)∈E的一个端点属于S而另一端点属于V-S,我们说边(u,v)通过割(S,V-S)。若集合A中没有边通过割,就说割不妨碍集合A。如果某边是通过割的具有最小权值的边,则称该边为通过割的一条轻边。如图1,集合S中的结点为黑色结点,集合V-S中的结点为白色结点。连接白色和黑色结点的那些边为通过该割的边。从边上所标的权值看,边(d,c)为通过该割的唯一一条轻边。子集A包含阴影覆盖的那些边,注意,由于A中没有边通过割,所以割(S,V-S)不妨碍A。确认安全边的规则由下列定理给出。定理1设图G(V,E)是一无向连通图,且在E上定义了相应的实数值加权函数w,设A是E的一个子集且包含于G的某个最小生成树中,割(S,V-S)是G的不妨碍A的任意割且边(u,v)是穿过割(S,V-S)的一条轻边,则边(u,v)对集合A是安全的。证明:设T是包含A的一最小生成树。如果T包含轻边(u,v),则T包含A∪{(u,v)},证明就完成了。否则,可设法建立另一棵包含A∪{(u,v)}的最小生成树T',(u,v)对集合A仍然是安全的。图2最小生成树T'的建立图2示出了最小生成树T'的建立。S中的结点为黑色,V-S中的结点为白色,边(u,v)与T中从u到v的通路P构成一回路。由于边(u,v)通过割(S,V-S),因此在T中的通路P上至少存在一条边也通过这个割。设(x,y)为满足此条件的边。因为割不妨碍A,所以边(x,y)不属于A。又因为(x,y)处于T中从u到v的唯一通路上,所以去掉边(x,y)就会把T分成两个子图。这时加入边(u,v)以形成一新的生成树T'=(T-{(x,y)})∪{(u,v)}。下一步我们证明T'是一棵最小生成树。因为(u,v)是通过割(S,V-S)的一条轻边,且边(x,y)也通过割,所以有w(u,v)≤w(x,y),因此w(T')=w(T)-w(x,y)+w(u,v)≤w(T)。但T是最小生成树,因此T'必定也是最小生成树。又因为T'包含A∪{(u,v)},所以(u,v)对A是安全的。(证毕)通过定理1可以更好地了解算法GENERIC-MST在连通图G=(V,E)上的执行流程。在算法执行过程中,集合A始终是无回路的,否则包含A的最小生成树就会出现一个环,这是不可能的。在算法执行中的任何一时刻,图GA=(V,A)是一森林且GA的每一连通支均为树。此外,对A安全的任何边(u,v)都连接GA中不同的连通支,这是由于A∪{(u,v)}必定不包含回路。随着最小生成树的|V|-1条边相继被确定,GENERIC-MST中第2-4行的循环也随之要执行|V|-1次。初始状态下,A=Ф,GA中有|V|棵树,每个迭代过程均将减少一棵树,当森林中只包含一棵树时,算法执行终止。下面再来看一个由定理1得出的推论,下一节中论述的两种算法均使用了这个推论。推论1设G=(V,E)是一无向连通图,且在E上定义了相应的实数值加权函数w,设A是E的子集且包含于G的某个生成树中,C为森林GA=(V

最小生成树算法及其应用 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zhongxinado
  • 文件大小44 KB
  • 时间2020-08-06