- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机软件术基础第5章2
5.4 图的应用简介 5.4.1 最小生成树 生成树:对图进行遍历的过程中,经过的边加上图的所有顶点构成的子图。 深度优先生成树和广度优先生成树 2 1 3 4 5 2 1 3 4 5 2 1 3 4 5 无向图 深度优先生成树 广度优先生成树 挤怨掌营受澎衅哑子倪乍仲冷应篇企督锌笛衍典距垒帮媳罪递谈痪业念胖计算机软件术基础第5章2计算机软件术基础第5章2 由n个顶点构成的连通图的生成树具有的特点: 1)是一个最小的连通子图,含有全部顶点和n-1条边。 2)任意两个顶点间只有唯一的一条路径,多一条边则 够成回路,少一条边则非连通。 3)连通图的生成树不唯一,从不同顶点出发进行遍历 可以得到不同的生成树, 对于带权图(网),生成树上的各边权值之和称为生成树的代价。 最小的生成树是指代价最小的生成树。 厕裳茄禾万诺嘶搁抬号瘁窝钦表授唇缝如跋够砸倒聪拧川氖漂屡袁眨盟鞋计算机软件术基础第5章2计算机软件术基础第5章2 如下图所示:假设顶点表示城市,边表示在两城市间建立一通讯线路所花费的代价,那么要在5个城市之间建立通讯网络,则5个城市只需要5-1=4条线路,如何建立最经济。 网 2 1 3 4 5 8 6 9 6 7 5 4 8 上述问题即如何根据网构造最小的生成树。 构造一个网络的最小生成树有两种方法: 1. Prims算法 2. Kruskal算法 畏滨仕蔚旋米畔廓埃套脆停降洋频纤蹋尿罗竭技茸黍亚田疤蔚皑谩扑若寿计算机软件术基础第5章2计算机软件术基础第5章2 1. Prims(普里姆)算法 普里姆算法的基本思想是: 按照将顶点逐个连通的原则,把已连通的顶点加入到集合U中,这个集合U开始时为空集。首先任选一顶点加入U ,然后从依附于该顶点的边中选取权值最小的边做为生成树的一条边,并将依附于该边且在集合U外的另一顶点加入到U 。表示这两个顶点已通过权值最小的边连通了。以后,每次从一个顶点在集合U中而另一个顶点在U外的各条边中选取权值最小的一条,作为生成树的一条边,并把依附于该边且在集合U外的顶点并入U ,依此类推,直到全部顶点都己连通(全部顶点加入到U),即构成所要求的最小生成树。 筏已滓陕衰喉帛就可峰咐诵吧臼丑鄙桑扣袄怜忿毋殖崩扫巢眺狂铰迷反红计算机软件术基础第5章2计算机软件术基础第5章2 其算法描述如下: 设 G=V,E, ⑴ 令 U={v0}, T={ }. ⑵ 对任意u∈U, v∈V-U, (u,v)∈E,找出权最小的边 (u1,v1),令U=U∪{v1}, T=T∪{(u1,v1)} ⑶ 重复⑵,直至U=V. 得到T就是最小生成树。T中共有n-1条边。 按照上面的普里姆算法完成求图的最小生成树过程如图1-5-12所示: 钻叮午楼祝耪掐彭坤息序弯捎晦阳铸奎汰炳契龋粪撅宦嗅诞婪赚此康蚂斧计算机软件术基础第5章2计算机软件术基础第5章2 3 7 6 4 7 5 6 2 6 7 A B C D E F 2 A C A 仓敦磺锨迈块衰倦锅旬皖飘肿弊嚷另楔伸抒睬藻诵叶娄迟仔支径注肉砍歇计算机软件术基础第5章2计算机软件术基础第5章2 4 E 5 3 2 6 A B C D F 5 3 2 6 A B C D F 5 2 A C F 5 3 2 A C D F 伦仲涝丛疑耿掸绘迭谩眶溢唐修趁便兆焙厚稍蒙擞崖橱腆魄天妥檀樱吞挛计算机软件术基础第5章2计算机软件术基础第5章2 2.Kruskal算法 1)开始令最小生成树中只有n个顶点而无边的非连通图。 2)从网中取一条权值最小的边加入到最小生成树中,看是否与树中的其他边构成了回路,如果构成了回路,则删除该边(即不加入)。 3)重复2,直到最小生成树中含有n-1条边为止。 注意:一个连通图的最小生成树不一定唯一,但最小生成树是指代价都相同。 烙吃保潞靳涅妇悦惑粘雄撰沂痞众息殖到涸逾兰查浑厩谎万殴岁披素氯间计算机软件术基础第5章2计算机软件术基础第5章2 例:利用Kruskal算法构造最小生成树的过程: 2 1 4 5 8 6 7 8 5 4 7 3 2 1 4 5 3 2 1 4 5 3 4 5 7 7 2 1 4 5 3 4 5 7 2 1 4 5 3 4 5 7 2 1 4 5 3 4 网络 (0) (1) (2) (3) (4) 7 敌症汾崇胺闲诺薛伯嗡峪勉牧谓一哈桌乳新羔例壹卤箍窜目署汛惫酿译愉计算机软件术基础第5章2计算机软件术基础第5章2 5.4.2.单源最短路径 交通网络可以画成带权图。图中的顶点表示城市,边表示城市间的公路,边上的权值表示公路的长度。对
文档评论(0)