- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 应 用 ③ 修改从v出发到集合V?S上任一顶点vk可达的最短路径长度。如果D[j] + arcs[j][k] D[k],则修改为D[k] = D[j] + arcs[j][k]。 ④ 重复操作②、③共n?1次,由此求得从v到图上其余各顶点的最短路径是依路径长度递增的序列。 求有向图的最短路径,数据存储类型使用邻接矩阵,故算法设置为GraphMatrix类的成员函数。 最短路径算法见以下程序。 应 用 应 用 例11-6 假设要在n个城市之间建立通信网络,而连通n个城市一般只需要n?1条线路。由于n个城市中的每两个城市之间都可建立一条线路,因此最多可有n(n?1)/2条线路可供选择,本问题的关键就是如何在这些可能的n(n?1)/2条线路中选择n?1条线路,使得建立这个通信网的成本最低。 n个城市及其可能设置的通信线路可用连通网来表示,其中网的顶点表示城市,边表示两城市之间的线路,边的权值表示相应的代价。由于具有n个顶点的连通网包含多棵不同的生成树,每一棵生成树都可能是一个通信网且总代价不同,因此该问题的解决就要通过构造连通网的最小代价生成树来完成。 例11-6 最小代价生成树的构造有多种算法,其中大多数算法利用了最小生成树的MST性质,该性质描述为:假设N = (V, {E})是一个连通网,U是顶点集V的一个非空子集,若(u, v)是一条具有最小权值(代价)的边,其中u∈U,v∈V?U,则必存在一棵包含边(u, v)的最小生成树。 上述性质可用反证法来证明。假设网N的任何一棵最小生成树都不包含(u, v),设T是连通网上的一棵最小生成树,当将边(u, v)加入到T中时,由生成树的定义,T中必存在一条包含(u, v)的回路。另外,由于T是生成树,则在T上必存在另一条边(u, v),其中u∈U,v∈V?U,且u和u之间,v和v之间均有路径相通,删去边(u, v),便可消除上述回路,同时得到另一棵生成树T。因为(u, v)的代价不高于(u, v),所以T的代价亦不高于T,T是包含(u, v)的一棵最小生成树。由此与假设矛盾。 下面介绍的普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法,就是两个利用MST性质构造最小生成树的算法。 应 用 最小代价生成树 1. 普里姆(Prim)算法 假设N = (V, {E})是连通网,TE是N上最小生成树中边的集合。算法从U = {u0}(u0∈V),TE = {}开始,重复执行下述操作:在所有u∈U, v∈V?U的边(u, v)∈E中找一条代价最小的边(u0, v0)并入集合TE中,同时v0并入U中,直至U = V为止。此时,TE中必有n?1条边,则T = (V, {TE})为N的最小生成树。 mst数组用于存放最小生成树。最小生成树的具体构造过程如下。 ① 任取一个顶点0加入生成树中,mst中存放从顶点0到其余各顶点的边,若无边,则将权值置为(INFINITY)。 应 用 ② 当前mst[0]到mst[n?2]中存放的边,都是一个顶点在生成树中,另一个顶点不在生成树中的边,从中选出权值最小的边mst[min],将其加入到最小生成树中,即将mst[0]与mst[min]互换。Mst[0].startNo是新加入到生成树的顶点,设该新加入的顶点为顶点k。 ③ 调整mst[1]到mst[n?2]。若不在生成树的边集中,从顶点s到顶点k的边上权值比原来顶点s到生成树中顶点的边上权值小,就需要将原来的边调整为(k, s)。 ④ 从mst[i]到mst[n?2]重复上述操作②和③(i=1, 2, …, n?3),每次当一个顶点在生成树中,另一个顶点不在生成树的边中时,选出一个权值最小的边,将这条边和不在生成树中的顶点加入到生成树中,并调整未加入到生成树的那些边,直到n?1条边都在生成树中,或者选出一条边上权值最小的边,其权值为∞,则该无向图网络不连通,不能构造一颗最小生成树为止。 应 用 构造图的最小生成树的过程如图所示: 应 用 邻接矩阵无向图的类描述: 应 用 邻接矩阵无向图的主要成员函数: 应 用 最小生成树生成算法: 应 用 应 用 应 用 对于下图(a)利用以上程序的算法依次输出生成树上的5条边分别为{(v1, v3), (v3, v6), (v6, v4), (v3, v2), (v2, v5)}。分析上面算法,普里姆算法的时间复杂度为O(n2),与网中的边数无关,因此该算法适于求边稠密网的最小生成树。 应 用 2. 克鲁斯卡尔(Kruskal)算法 该算法按照另一种方法
您可能关注的文档
- 车辆碰撞试验方案模拟数据评价.pdf
- 动商务在旅游业中应用.ppt
- 车辆碰撞特性的数值仿真和试验研究.pdf
- 车牌识别中灰度模板获得.pdf
- 动态地址分配服务与网络信息服务.ppt
- 第10节 数据仓库.ppt
- 动态规划的技巧——阶段的划分与状态的表示.docx
- 动态规划的一类解法和其应用.pdf
- 动态规划的优化和应用.doc
- 第10节 应用程序系统开发.ppt
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)