- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
处理框架: (1)在集合V-U中选择距离值最小的顶点vmin加入集合U; (2)对集合V-U中各顶点的距离值进行修正:如果加入顶点vmin为中间顶点后,使v0到vi的距离值比原来的距离值更小,则修改vi的距离值。 (3)重复(1)(2)操作,直到从v0出发可以到达的所有顶点都在集合U中为止。 * 第三十页,共四十四页,2022年,8月28日 存储结构 图采用邻接矩阵表示法,其中对角线元素初值均取0。 算法中,将放入集合U中结点对应的关系矩阵中对角线元素值修改为1; 设置一个数组dist,dist[i]用于存放v0到顶点vi的最短路径及其最短路径长度(计算过程中为距离值)∶ ypedef struct { AdjType length; /* 最短路径长度 */ int prevex; /*从v0到达vi(i=1,2,…n-1)的最短路 径上vi的前趋顶点*/ }Path; Path* dist; * 第三十一页,共四十四页,2022年,8月28日 Hu Junfeng Hu Junfeng 最小生成树与最短路径问题 第一页,共四十四页,2022年,8月28日 基于邻接表的图操作运算 * 第二页,共四十四页,2022年,8月28日 基于邻接表的图操作运算 * 第三页,共四十四页,2022年,8月28日 * 第四页,共四十四页,2022年,8月28日 主要内容 生成树的概念(spanning tree) Prim算法 Kruskal算法 最短路径问题 Dijkstra算法 Floyd算法 * 第五页,共四十四页,2022年,8月28日 生成树(支撑树)的概念 GraphMatrix graph = { 6, { {0, 10, M, M, 19,21}, {10, 0, 5, M, M, 11}, {M, 5, 0, M, M, M}, {M, M, M, 0, 18, 14}, {19, M, M, 18, 0, 33}, {21, 11, M, 14, 33, 0} } }; 0 1 2 3 4 5 子图 + 连通 + 无环 * 第六页,共四十四页,2022年,8月28日 无向图中无环的充要条件 检查每一个连通分枝 对于所有连通分枝: 顶点数 – 边的数目 = 1 可以采用周游算法。 算法复杂度:n 0 1 2 3 4 5 * 第七页,共四十四页,2022年,8月28日 最小生成树 Minimum-cost Spanning Tree 连通无向带权图 —— 网络。 网络(带权图)的生成树中生成树各边的权值加起来称为生成树的权,把权值最小的生成树称为最小生成树。 (简称为MST)。 * 第八页,共四十四页,2022年,8月28日 G=(V,E)是一个网络,U是顶点集合V的一个真子集。 如果u∈U,v∈V-U,且边(u,v)是图G中所有一个端点在U里,另一端点在V-U里的边中权值最小的边, 则一定存在G的一棵最小生成树包括此边(u,v)。 MST必包含连通图中任意两个顶点划分之间的最小权的边。 (任意割集中的最小边) MST性质 * 第九页,共四十四页,2022年,8月28日 MST性质证明(反证法) u u′ v v′ U V-U v? v 边(u,v)是图G中所有一个端点在U里,另一端点在V-U里的边中权值最小的边。 假设:存在G的一棵最小生成树不包括此边。 * 第十页,共四十四页,2022年,8月28日 Prim算法(找MST) prim算法的基本思想是∶ 首先从集合V中任取一顶点(例如取顶点v0)放入集合U中这时U={v0},TE=NULL 然后在所有一个顶点在集合U里,另一个顶点在集合V-U里的边中,找出权值最小的边(u,v)(u∈U,v∈V-U),将边加入TE,并将顶点v加入集合U 重复上述操作直到U=V为止。这时TE中有n-1条边,T=(U,TE)就是G的一棵最小生成树 * 第十一页,共四十四页,2022年,8月28日 最小生成树的构造 准备工作: 设图采用邻接矩阵表示法表示,用一对顶点的下标(在顶点表中的下标)表示一条边,定义如下∶ 在构造最小生成树的过程中定义一个类型为Edge的数组 mst∶Edge mst[n-1]; 其中n为网络中顶点的个数,算法结束时,mst中存放求出的最小生成树的n-1条边。 typedef
您可能关注的文档
最近下载
- 2024年重庆涪陵公开招聘社区工作者考试试题答案解析.docx VIP
- (新课标新教材)新湘教版数学初中七年级上册1.2.3《绝对值》核心素养型说课稿.doc
- 本量利分析练习题含参考答案.docx VIP
- 广州市南沙区2023-2024学年八年级上学期期末数学易错题整理(含答案).doc VIP
- 《社会学概论》项目四 社会互动与社会角色.pptx
- 混凝土课程设计--连续梁设计.docx VIP
- 四年级高思奥数行程问题三1.pdf VIP
- Unlock2 Unit1 第一篇听力讲解及答案.pptx VIP
- 2023年青少年百科知识竞赛题库及答案(共390题).docx VIP
- 中国溶剂油项目投资计划书.docx
文档评论(0)