- 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
最近下载
- 公路劳务劳务施工方案.docx VIP
- 部编版语文六年级下册小升初考试课外文言文小古文阅读理解含答案.pdf VIP
- 安全教育培训课件水利工程施工与安全.pptx
- 国家职业技能标准:轨道交通信号工.pdf VIP
- 内部控制报告填报预算业务管理制度收支业务管理制度政府采购业务管理制度资产管理制度建设项目管理制度合同管理制度.doc VIP
- Unit 4 Eat Well(大单元教学设计) 人教版七年级英语下册.pdf
- 串行数据分析仪.pdf VIP
- 主检医师规范化及能力提升培训考试试题.pdf
- NY_T 2116-2012虫草制品中虫草素和腺苷的测定 高效液相色谱法.pdf
- 会计英语 全套课件.ppt
文档评论(0)