- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
没有幻灯片标题---中山大学信息科学与技术学院.ppt
人工智能 华中科技大学水电与数字化工程学院 第三章 树 3.1 树的基本概念 [树] 连通图G=(V,E),若G中不含任何(初等)回路,则称G为树。|V|=1时称之为平凡树。 3.1 树的基本概念 [定理3-1-2] T=(V, E) 是结点数 n=|V| ?1 的树,则下述命题等价: T是无回路的连通图; T是连通的,且有n?1条边; T有n?1条边,且T中无回路; T是连通的,且T中的每一条边都是割边; T的任意两点间有且只有唯一的通路; 3.1 树的基本概念 [证明] 3.1 树的基本概念 [生成树] G=(V,E),若G的一个生成子图是一棵树,则称之为G的一棵生成树(记为T),或者支撑树。G中在T中的边称为(关于T的)树枝,G中不在T中的边称为(关于T的)弦。G中的所有结点和弦构成的子图称为(关于T的)余树。 余树不一定是树。 3.1 树的基本概念 [定理3-1-3] 任何连通图至少有一棵生成树。 [证明] 破圈法构造 [推论1] 设G=(V,E)连通,则|E|?|V|?1 。 3.2 最小生成树 [最小生成树] 无向连通网络G的所有生成树中,树枝的权值总和最小的称为G的最小生成树,或最短树。 构造最小生成树的方法:每次选择一条最小权边,直至构成一个生成树。 [Kruskal算法]设G为无向连通网络。 1. 排序:将G的所有边按权值从小到大构成排列L; T ? ?。 2. 当|T|n-1时重复下列操作 (1)选L中的最小权边 e; (2)若 T?{e}中不存在回路,将e加入T: T ? T?{e}。 (3)从L中删除e : L ? L-{e} 3. STOP 3.2 最小生成树 [例]求下图的最小生成树 3.2 最小生成树 [定理]由Kruskal算法求得的生成树是最小生成树。 [证明] T是由Kruskal算法构造的生成树。首先,T有n个结点, n-1条边,且无回路,所以构成生成树。 假设T0是G的最小生成树,e1,e2,…,en-1是T按照权由小到大排列的边。如果T与T0不同,则存在ei+1?T-T0, 但是e1,e2,…,ei 均属于T0。将ei+1加入T0必构成一个圈C,且存在C上的边f不属于T(圈C不可能完全属于T). 根据T的构造法,w(ei+1)?w(f)(ei+1及f均和e1,e2,…,ei 不构成回路). 构造树T’ = T0+ei+1-f, 则 由T0的最小性, w(ei+1)=w(f). 这说明T’也是最小生成树,而且T’与T有i+1条公共边。重复这个直至得到一个与T 有n-1条公共边的最小生成树T(k). 3.2 最小生成树 求生成树的另一种方法:从一个结点的子图开始构造生成树:选择连接当前子图和子图外结点的最小权边,将相应结点和边加入子图,直至将所有结点加入子图。 [Prim算法]设G=(V , E) 为无向连通网络。 1. U ? {u0},TE ? ?。 2. 比较所有 u?U,v?V?U,(u,v) ?E,找到代价最小的 (u,v) : U ? U?{v}, TE ? TE?{(u,v)} 3. 若U=V,结束;否则转2。 3.2 最小生成树 [定理] 设G=(V,E)是一个带权连通图,V’是V的真子集,e是连接V’和V-V’的最小权边,则e必定包含在G的一个最小生成树中。 [证明]设T是一颗最小生成树,如果e?T, 则T+e包含圈,该回路包含e和另一条边e’=(u,v), 其中u?V’ ,v?V-V’. 因为w(e)?w(e’), 所以 T+e-e’仍然是最小生成树。 [定理] 由Prim算法结果构成一颗最小生成树。 [证明] 首先说明Prim算法结果T是生成树,因为T有n个结点,n-1条边,且无回路。假设T0是最小生成树。若T?T0, 设e?T-T0, 则根据前一定理,T’= T0+e-e’也是最小生成树。重复以上过程直至T’=T. Exercises 1、证明:树中最长道路的两个端点均为树叶。 2、利用Kruskal算法和Prim算法求图14.27的最小生成树。 3、[逆删除算法] 结合破圈法和Kruskal算法设计一种求最小生成树算法。 3.3 有根树 [有向树] 一个弱连通有向图,若去掉方向后得到一棵树,则称此有向图为一棵有向树,记为T。 [有根树] 一个有向树T,如果只有一个结点的入度为0,其他结点的入度均为1,则称T是根树,入度为0的结点称为根,出度为0的结点称为叶,出度大于0的结点称为分支结点。 3.4 有根树 根树通常画成倒长的; 一个 结点的子结点画在它的下一层,边的方向省略; “同辈兄弟”画在同一层。 3.4 有根树 [树的高度] 设有根树 T=(V, A),v0为树根。u
文档评论(0)