毕业论文:《最小支撑树算法及应用》.docVIP

毕业论文:《最小支撑树算法及应用》.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
??最小支撑树算法及应用 摘 要 求解最小支撑树通常采用破圈法和避圈法,其基本原理是使其成为权数之和为最小的连通图。根据此原理,引出两种新的算法,称 为最小权数保留法和最大权数去除法. 利用最小支撑树合理地进行电网规划可以获得巨大的社会效益和经济效益。论文针对电网规划的特点,利用最小支撑树对电网进行优化。 关键词 最小支撑树 破圈法 避圈法 1 最小支撑树的三种算法 图论中的图是由点和边所构成,用以反映一些对象之间的关系。若所有点的集合为V,所有边的集合为E,则图G=(V,E)。给图G的每一条边加上一个非负的实数,则称图G为赋权图。 若有图,,,,其中,{ } E,且为树,则 被称为图G的生成树。若 具有最小权,则称为图G的最小支撑树。 求解最小生成树常用的方法是Krukal(避圈法)法和破圈法。无论破圈法还是避圈法,都存在一个核心问题——图形必须正确绘制出来。只有在正确绘制出图形的基础上才能用避圈法或破圈法得到准确的最小支撑树(kruskal )和破圈法等求解方法 1.1 算法一:Kruskal算法(也就是避圈法) 算法一的中心思想是每次添加权尽可能小的边,使新的图无圈,直至得到支撑树为止该方法形象地简称为最小边加入法其步骤如下: (1)把N内的所有的边按照权的大小由小到大排列 (2)按(1)排列的次序依次检查 N中的每一条边,如果这条边与已得到的图不产生圈,则取这一条边为所求支撑树的一部分 (3)若已取到n- 1条边,算法终止 此时以V为顶点集,以取所取的n- 1条边为边集的图即为最小支撑树 例1 求图1所示网络的最小支撑树 解 将各边的权按非减次序排列,得网络中的8条边的排列次序为 首先取权最小的两条边 和 为所求最小支撑树 T的两条边,然后检查边 由于边 和 构成圈,故不取边 接下来考虑边 由于 和不构成圈,故取 然后检查边e5 由于 和 不构成圈,故取 再看,它与 构成圈,故不取 同样地 , 也不可取,因为与, , 构成圈,而 与, 构成圈 因此由, , 和构成的支撑树T为网络N的最小支撑树(如下图所示)示 1.2.算法二 (普赖姆, Prim) 这是一种迭代算法,每进行一次迭代将产生组成网络 N最小支撑树T的一条边其做法基于下面的事实:如果我们已经知道T中的一些边,它们的端点组成点集 S,S是 N的顶点集 V的一个子集 以 记一个端点在S中 另一端点在V\S中的所有边组成的集合 因为最小支撑树T是N的连通生成子图,必有边连接点集 S和点集 V\S内的点,这样, (S)中权最小的一条边也应该是N的最小支撑树T中的一条边。 设 V(G)= 为边 的权 如果 与 之间无边相连,则取 为叙述方便,我们以顶点的下标来表示S中的顶点 普赖姆迭代过程: (1) T=,S={1},R={2,3, ,n},,此处i=1S, jR (2)设min,记以S{k}代替S, R\{k}代替 R, T{}代替T (3)若R= ,算法终止,此时T即为所求;否则,对每个 j R,以 min{| k S}代替,返回上一步骤(2) 例2 求图1所示的网络N的最小支撑树T 我们用图显示普赖姆方法的各步骤,在图中标出该步骤应该考虑的各边的权,不标出不需考虑的边的权,在该步骤中取的点画有叉号,边画成稍微加粗的,该步骤前已经取的点和边画成最粗的 (1)算法开始时, S={}, (S)={,} 因为w()=12=w(),所以取T={} (2)把 不在 S中的一个端点v2 加入到 S中,于是 S={,}, (S)=, (S)中权最小的边为 和 ,任取一条边,例如把 加到 T中,则T={,} (3)把 不在S中的另一端点 加进 S中,此时 S= {}, (S)= {,,},其中权最小的边为,取T={,, } (4)把 不在S中的一端点 加入S,S={},(S)={ , },其中权最小的边为,从而取T={,,, } (5)把 不在S中的一个端点 加进 S中,此时 S={ }=V,V\S= ,故算法终止此时以V为顶点集 T={,,, }为边集的树 T即为 N的最小支撑树 1.3 算法三:破圈法 破圈法 就是在图中任意取一个圈,从圈中去掉权最大的边,将这个圈破掉重复这个过程,直到图中没有圈为止,保留下的边组成的图即为最小支撑树 其算法基本步骤如下: (1)从图G中任选一棵树 (2)加上一条弦, + 中立即生成一个圈 去掉此权中最大权边,得到新树 以代替,重复(2)再检查剩余的弦,直到全部弦检查完毕为止 例3用破圈法求图1所示网络的最小支撑树 图(3) 解: 在圈

文档评论(0)

老刘忙 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档