第8章图的应用_1CPP.ppt

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

第八章 图的应用 图的生成树和最小生成树 最短路径 拓扑排序 关键路径 7.1.2 图的基本术语(P251) 4. 子图 对于图G=(V,E),若V’是V的子集,即V’?V,且E’是E的子集,即E’?E,并且E’中涉及到的顶点全部包含在V’中,则称G’=(V’,E’) G的子图。 图(b)是图(a) 的一个子图 图 (e)是 (d) 的一个子图,图(c)是图(b)的一个子图 但(f) 不是 7.1.2 图的基本术语(P252) 6. 连通和连通分量 在无向图G中,若从顶点vi到顶点vj有路径,则称vi和vj是连通的。 在有向图G中,若从顶点vi到顶点vj有路径,则称从vi到vj是连通的。 图(d)中,v1和v5是连通的; 图(a)中, v4到v2 是连通的,v2到v4 是不连通的。 7.1.2 图的基本术语(P252) 6. 连通和连通分量 若无向图G中任意两个顶点都连通,则称G为连通图,否则称为非连通图。无向图G的极大连通子图称为G的连通分量。 此前所涉及的无向图均为连通图,下图为非连通图。 a) b) c) d) 无向图及其两个连通分量b),c), 非连通分量d) (子图) (图7-3) 7.1.2 图的基本术语(P252) 7. 强连通图、强连通分量 若有向图G中的任意两个顶点vi和vj都连通,即从vi到vj和从vj到vi都存在路径,则称G是强连通图。有向图G的极大强连通子图称为G的强连通分量。 图(a) 的两个强连通分量 8.1 图的生成树和最小生成树 8.1.1生成树和最小生成树的概念 如果连通图G=的全部顶点和一部分边构成了一个子图G‘=(V,E’),即 V(G')= V(G),E(G')?E(G) 且边集E(G')中的边既能将图中所有的顶点连通又不形成回路,则称子图G'是G的一棵生成树。 图8-1 连通图和它的生成树 连通图G的生成树是包含G的全部n个顶点的一个极小连通子图。其特点是必有且仅有n-1条边。 在生成树中增加一条边,必形成回路;减少一条边,必形成非连通图。 无向连通网图的所有生成树中必有一棵边的权值总和最小的生成树,称这棵生成树为最小生成树。 图8-2 连通网和它的生成树 8.1.2 普里姆(Prim)算法 1.Prim算法的思想 设G=(V, E)为一网图,其中V为网图中所有顶点的集合,E为网图中所有带权边的集合。 设置两个新的集合U和TE,其中集合U用于存放G的最小生成树中的顶点,集合TE存放G的最小生成树中的边,开始时它们都是空集。任选v0进入U, (从顶点v0出发构造最小生成树) 。Prim算法的思想是,从所有vi∈U, vj∈Vn-U的边中,选取具有最小权值的边(vi,vj),将顶点vj 加入集合U中,将边(vi,vj加入集合TE中,如此不断重复,直到U=Vn时,最小生成树构造完毕,这时集合TE中包含了最小生成树的所有边。 用Prim算法生成一个最小生成树的过程例(P276图8-4) Prim算法详解(P276图8-4) 第0次 Prim算法详解(P276图8-4) Prim算法详解(P276图8-4) Prim算法详解(P276图8-4) Prim算法详解(P276图8-4) Prim算法详解(P276图8-4) Prim算法详解(P276图8-4) Prim算法详解(P276图8-4) Prim算法详解(P276图8-4) Prim算法详解(P276图8-4) Prim算法详解(P276图8-4) Prim算法(程序见.doc文档) Prim算法的关键: ① 寻找集外各点到集内权最小的边; ② 判断从集内到集外的所有边中,哪一条边的权最小。 8.1.3 克鲁斯卡尔(Kruskal)算法 1. Kruskal算法的思想 Kruskal算法按照边的权值递增的顺序构造最小生成树。 设无向连通网为G=(V,E),令G的最小生成树为T=(U, TE),其初态为:U=V,TE={},即开始时顶点集U为V,边集ET为空,此时T中没有边,即各顶点各自构成一个连通子图。然后从没有进入TE的边集(E-TE)中不断选取权值最小的边,若该边的两个顶点属于T的两个不同的连通子图,加入该边不构成回路,则将此边作为最小生成树的边加入到ET中;若该边的加入造成回路,则舍去此边,则选取下一条权值较小的边,如此下去,选取n-1次后,此时ET中

文档评论(0)

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

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

1亿VIP精品文档

相关文档