ds07图03最小生成树.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ds07图03最小生成树

4 5 6 5 5 3 2 6 6 V2 V1 V4 V6 V5 V3 1 V2 V1 V4 V6 V5 V3 1 2 3 连通分量={V1, V3}, {V2, V5},{V4, V6 } 连通分量={V1, V3, V4, V6 }, {V2, V5} 4 4 5 6 5 5 3 2 6 6 V2 V1 V4 V6 V5 V3 1 V2 V1 V4 V6 V5 V3 1 2 3 连通分量={V1, V3, V4, V6, V2, V5} 4 5 连通分量={V1, V3, V4, V6 }, {V2, V5} 一般来讲: 普里姆算法的时间复杂度为 O(n2),适于稠密图; 克鲁斯卡尔算法需对 e 条边按权值进行排序,其时间复杂度为 O(eloge),适于稀疏图。 作业 7.5 7.7 第7章 图 7.1 图的定义和术语 7.2 图的存储结构 7.3 图的遍历 7.4 图的连通性问题 7.4.1 无向图的连通分量和生成树 7.4.3 最小生成树 普里姆算法 克鲁斯卡尔算法 7.5 有向无环图及其应用 7.6 最短路径 在n个城市之间建立通信网络,则连通n个城市至少要架设n-1条线路,而每两个城市之间架设通信线路的造价是不一样的,那么如何设计才能使得总造价最小? 生成树:某连通分量的极小连通子图,它含有图中全部顶点,但只有n-1条边 ; 生成森林:非连通图的各个连通分量的生成树的集合,含全部顶点,但构成这些树的边是最少的。 基本概念 要想判定一个无向图是否为连通图,或有几个连通分量,通过对无向图遍历即可得到结果。 连通图:仅需从图中任一顶点出发,进行深度优先搜索(或广度优先搜索),便可访问到图中所有顶点。 无向图的连通性 非连通图:需从多个顶点出发进行搜索,而每一次从一个新的起始点出发进行搜索而得到的顶点访问序列恰为其各个连通分量中的顶点集。 思考1:如何求连通图的生成树? 遍历过程中历经的边的集合和图中所有顶点一起构成连通图的极小连通子图,即图的生成树。 思考2:一个连通图的生成树唯一吗? 可能不唯一,由不同的遍历次序、从不同顶点出发进行遍历都会得到不同的生成树。 由深度优先搜索得到的生成树,称为深度优先搜索生成树。 由广度优先搜索得到的生成树,称为广度优先搜索生成树。 思考3:若对非连通图进行遍历,得到的是什么? 得到的将是各连通分量的生成树,即图的生成森林。 (a)深度优先生成树 (b) 广度优先生成树 生成树 V1 V3 V2 V4 V5 V6 V7 V8 V1 V3 V2 V4 V5 V6 V7 V8 生成森林 7.4 图的连通性问题 7.4.1 无向图的连通分量和生成树 7.4.3 最小生成树 普里姆算法 克鲁斯卡尔算法 图的生成树可能不唯一。试画出右图的生成树。 ⑤ ④ ① ② ③ 6 5 6 6 5 5 1 3 4 2 0 最小生成树:树上各边权值之和(代价)最小的生成树。 最小生成树 如何构造最小生成树? 两种构造算法都利用了最小生成树的MST性质: 假设 N =(V,{E})是一个连通网,U是顶点集 V 的一个非空子集。若(u,v)是一条具有最小权值(代价)的边,其中 u ∈U,v∈V-U,则必存在一棵包含边(u,v)的最小生成树。 MST:Minimum cost Spanning Tree 顶点集U V-U u v v u 顶点集 T1 T2 反证法:假设任何一棵最小生成树都不包含(u,v)。 设T是一棵最小生成树,则T是连通子图,即U和V-U之间是连通的,我们假设跨越U和V-U的边为(u’,v’)。 又T是连通的,即u和u‘、v和v’之间都是连通的。 则将(u,v)加入之后,构成环,去掉(u’,v’),会得到权值之和更小的生成树T’,即包含(u,v) 的T’是最小生成树,与假设矛盾。 顶点集U V-U u v v u 顶点集 T1 T2 7.4 图的连通性问题 1)无向图的连通分量和生成树 2)最小生成树 普里姆算法 克鲁斯卡尔算法 3.普里姆(Prim)算法 基本思想: 设G=(V, E)是具有n个顶点的连通网,T=(U, TE)是G的最小生成树 初始:T仅包括一个顶点U={u0},无边TE = {}; 循环处理:在所有u∈U,v∈V-U的边中找一条代价最小的边 (u, v)并入集合TE,同时v并入U 循环结束条件:直到V = U为止 此时TE中必有n-1条边,T为N的最小生成树 U={V1} V-U={V2, V3, V4, V5, V6} cost={ (V1, V2)6, (V1, V3)1, (V1,

文档评论(0)

shujukd + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档