图——生成树和最小生成树 (概念解析)

Posted Henry Zheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图——生成树和最小生成树 (概念解析)相关的知识,希望对你有一定的参考价值。

/* 
*Copyright (c) 2015 , 烟台大学计算机学院 
*All right resvered . 
*文件名称: 生成树和最小生成树
*作    者: 郑兆涵 
*图——生成树和最小生成树 
*/  


1.生成树的概念

一个连同图的生成树是该连通图的一个极小连同子图,它含有图中全部顶点,但只有构成一棵树的(n-1)条边.如果在一棵生成树9上添加一条边,必定构成一个环,因为这条边使得它依附的那两个顶点之间有了第二条路径.一棵有n个顶点的生成树(连通无回路图)有且仅有(n-1)条边,但是,有(n-1)条边的图不一定都是生成树.一个图有n个顶点,如果它由小于(n-1)条边,则是非连通图;如果它有多于(n-1)条边,则一定有回路.

对于一个带权(假定每条边上的权值均为大于零的实数)连通无向图G中的不同生成树,各树的边上的权值之和可能不同,边上的权值之和最小的树称为该图的最小生成树.

按照生成树的定义,n个顶点的连通图的生成树有n个顶点和(n-1)条边.因此构造最小生成树的准则有三条:
(1) 必须只使用该图中的边来构造最小生成树;
(2) 必须使用且仅使用(n-1)条边来连接图中的n个顶点;
(3) 不能使用产生回路的边.



2.无向图的连通分量和生成树

在对无向图进行遍历时,若是连通图,仅需调用遍历过程(DFS深度优先遍历或BFS广度优先遍历)一次,从图中任一顶点出发,便可以遍历图中的各个顶点;若是非连同图,则需要多次调用遍历过程,每次调用得到的顶点集连同的相关的边就构成图的一个连同分量.

设G=(V,E)为连通图,则从中任一顶点出发遍历图时,必定将E(G)分成两个集合T和B,其中T是遍历过程中走过的边的集合,B是剩余的边的集合:T∩B=∅,T∪B=E(G).显然,G'=(V,T)是G的极小连通子图,即G'是G的一棵生成树.

由深度优先遍历得到的生成树称为深度优先生成树;由广度优先遍历得到的生成树称为广度优先生成树.这样的生成树是由遍历时访问过的n个顶点和遍历时经过的(n-1)条边组成的.

 对于非连通图,每个连通分量中的顶点集和遍历是走过的边一起构成一棵生成树,各个连通分量的生成树组成非连通图的生成森林.



以上是关于图——生成树和最小生成树 (概念解析)的主要内容,如果未能解决你的问题,请参考以下文章

图的相关算法(二):最小生成树算法

基础-11:最小生成树(MST)

怎么求一幅图像的最小生成树

运筹学笔记 图与网络分析

Python数模笔记-NetworkX最小生成树

最小生成树之克鲁斯卡尔(Kruskal)算法