- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
国家集训队2004论文集_吴景岳
IOI2004 国家集训队论文 吴景岳
最小生成树算法及其应用
江苏省常州高级中学 吴景岳
【摘要】
最小生成树是图论中的经典问题,也是一个重要部分,一般书上
往往只介绍求最小生成树的算法,而忽略了更精彩的算法应用部分。
本文将对最小生成树算法及其应用作全面的分析说明,使大家对此有
更加深刻的认识。本文分三部分:一、基础篇,主要介绍基础概念、
求最小生成树的一般算法和常用算法。二、应用篇,具体问题具体分
析,侧重于思考和证明的过 。三、总结。
【关键字】
最小生成树
【目录】
一、 基础篇
1.定义
2 .求最小生成树的一般算法
3 .常用算法
a) Kruskal 算法
b) Prim 算法
4 .Maintain——IOI2003
二、 应用篇
1.概述
2 .例题
a) Robot——BOI2002
b) 北极通讯网络——Waterloo University 2002
三、 总结
第1 页 共29 页
IOI2004 国家集训队论文 吴景岳
【正文】
1.基础篇
1 1 定义
在电路设计中,常常需要把一些电子元件的插脚用电线连接起来。如果每根
电线连接两个插脚,把所有n 个插脚连接起来,只要用n-1 根电线就可以了。在
所有的连接方案中,我们通常对电线总长度最小的连接方案感兴趣。
把问题转化为图论模型就是:一个无向连通图G=(V,E) ,V 是插脚的集合,
E 是插脚两两之间所有可能的连接的集合。给每条边(u,v)一个权值w(u,v) ,表示
连接它们所需的电线长度。我们的目标就是找到一个无环的边集T ,连接其中所
有的点且使总权值最小。
总权值w(T ) w(u,v)
(u ,v ) T
既然 T 是连接所有点的无环边集,它一定是一棵树。因为这棵树是从图G
中生成出来的,我们把它叫做生成树。如果一棵生成树在所有生成树中总权值最
小,我们就把它称作最小生成树。
1 2 求最小生成树的一般算法
解决最小生成树问题有没有一般的方法呢?下面我们就介绍一种贪心算法。
算法设置了集合A, 集合一直是某最小生成树的子集。算法执行的每一步,
都要决策是否把边(u,v)添加到集合A 中,能够添加的条件是保证A ∪{(u,v)}仍然
是最小生成树的子集。我们称像(u,v)这样的边为 A 的安全边,或称这样的边对
集合A 是安全的。
求最小生成树的一般算法流程如下:
GENERIC-MST(G,w)
1. A←Ф
2. while A 没有形成一棵生成树
3. do 找出A 的一条安全边(u,v)
4. A←A ∪{(u,v)}
5. return A
一开始 A 为Ф,显然满足最小生成树子集的条件。之后,每一次循环都把
一条A 的安全边加入A 中,A 依然是最小生成树。
本节的余下部分将提出一条确认安全边的规则(定理 1),下一节将具体讨
论运用这一规则寻找安全边的两个有效的算法。
第2 页 共29 页
IOI2004 国家集训队论文 吴景岳
图1 一个图的割(S,V-S)
首先定义几个概念。有向图G=(V,E)的割(S,V-S)是V 的一个分划。当一条边
(u,v) ∈E 的一个端点属于S 而另一端点属于V-S,我们说边(u,v)通过割(S,V-S) 。
若集合 A 中没有边通过割,就说割不妨碍集合 A 。如果某边是通过割的
文档评论(0)