- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Sch1-4分治法.ppt
* 证明: 假设G的任何一棵最小生成树都不含边(u, v)。将边(u, v)添加到G的一棵最小生成树T上,将产生含有边(u,v)的圈,并且在这个圈上有一条不同于(u, v)的边(u’ , v’),使得u’∈U, v’∈V -U。如下图所示,将边(u’ , v’)删去,得到G的另一棵生成树T’。由于c[u][v]=c[u’ ][v’],所以T’的耗费=T的耗费。于是,T’是一颗含有边(u,v)的最小生成树,这与假设矛盾。 Sch1-4 贪心算法 U u u V v v 含边(u,v)的圈 * Prime算法 设G=(V,E)是连通带权图,V={1,2,…,n},算法思想为:首先置S={1},然后,只要S是V的真子集,就作如下的贪心选择:选取满足条件i?S,j?V-S,且c[i][j]最小的边,将顶点j添加到S中。这个过程一直进行到S=V时为止。 在这个过程中选取到的所有边恰好构成G的一棵最小生成树。 Sch1-4 贪心算法 Void Prime( n, c[][]) { T= Φ; S = {1}; while( S != V ){ (i,j) = i ∈ S且j ∈ V-S的最小权边; T = T U {(i,j)}; S = S U {j}; } } * Sch1-4 贪心算法 利用最小生成树性质和数学归纳法容易证明,上述算法中的边集合T始终包含G的某棵最小生成树中的边。因此,在算法结束时,T中的所有边构成G的一棵最小生成树。 例如,对于右图中的带权图,按Prim算法选取边的过程如下页图所示。 * Sch1-4 贪心算法 * 在上述Prim算法中,还应当考虑如何有效地找出满足条件i?S,j?V-S,且权c[i][j]最小的边(i,j)。实现这个目的的较简单的办法是设置2个数组closest和lowcost。 在Prim算法执行过程中,先找出V-S中使lowcost值最小的顶点j,然后根据数组closest选取边(j,closest[j]),最后将j添加到S中,并对closest和lowcost作必要的修改。 用这个办法实现的Prim算法所需的计算时间为 Sch1-4 贪心算法 * Kruskal算法 Kruskal算法构造G的最小生成树的基本思想是:首先将G的n个顶点看成n个孤立的连通分支。将所有的边按权从小到大排序。然后从第一条边开始,依边权递增的顺序查看每一条边,并按下述方法连接2个不同的连通分支:当查看到第k条边(v,w)时,如果端点v和w分别是当前2个不同的连通分支T1和T2中的顶点时,就用边(v,w)将T1和T2连接成一个连通分支,然后继续查看第k+1条边;如果端点v和w在当前的同一个连通分支中,就直接再查看第k+1条边。这个过程一直进行到只剩下一个连通分支时为止。 Sch1-4 贪心算法 * 例如,对前面的连通带权图,按Kruskal算法顺序得到的最小生成树上的边如下图所示。 Sch1-4 贪心算法 * 时间复杂度: 当图的边数为e时,Kruskal算法所需的时间是 : 当 时,Kruskal算法比Prim算法差; 当 时,Kruskal算法却比Prim算法好得多。 Sch1-4 贪心算法 谢谢! * * Q A University of Science and Technology of China University of Science and Technology of China University of Science and Technology of China University of Science and Technology of China University of Science and Technology of China * 主讲人: 吕敏 Email: { lszhuang@ustc.edu.cn } Spring 2012 ,USTC 算法基础 * * 算法设计复习 内容提要: 算法设计思想回顾(递归和分治、动态规划、贪心算法、回溯法、分支限界法、随机算法) 经典例子讲解 算法设计策略 已学过的算法设计策略: 递归和分治 动态规划 贪心算法 回溯法 分支限界法 随机算法 * * * 基本思想:把一个规模大的问题划分为规模较小的子问题,然后分而治之,最后合并子问题
您可能关注的文档
- Page1机关地址10556台北市八德路2段342号(营建署)联络人王鹏智.PDF
- Page1第14期分析系统中变得非常重要。本文主要讨论优化高光谱图像.PDF
- Page1菲关于公布2011年度第一次全省建设工程检测技术人员岗位.PDF
- Page1记者叶明珠整理摄影赵军扬州e家本版编辑谢翠红版式设计何.PDF
- PayPalExpressCheckout整合指南.PDF
- PbB4O7晶体的太赫兹光谱和软光学声子.PDF
- PCB设计的一些原则及ProtelDXP的一些操作总结用PROTEL电路板.doc
- PCNL与FURL在肾结石治疗中的应用进展.PDF
- PDF-中南大学学报(医学版).PDF
- PDF1.87M-广西植物.PDF
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)