知识大全 图 - 生成树和最小生成树 - 最小生成树(一)
Posted 知
篇首语:欠伸展肢体,吟咏心自愉。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 图 - 生成树和最小生成树 - 最小生成树(一)相关的知识,希望对你有一定的参考价值。
最小生成树
对于连通的带权图(连通网)G 其生成树也是带权的 生成树T各边的权值总和称为该树的权 记作
>
这里:
TE表示T的边集
w(u v)表示边(u v)的权
权最小的生成树称为G的最小生成树(Minimum SpannirngTree) 最小生成树可简记为MST
生成树和最小生成树的应用
生成树和最小生成树有许多重要的应用
【例】网络G表示n各城市之间的通信线路网线路(其中顶点表示城市 边表示两个城市之间的通信线路 边上的权值表示线路的长度
或造价 可通过求该网络的最小生成树达到求解通信线路或总代价最小的最佳方案
最小生成树性质(MST性质)
( )MST性质
最小生成树性质 设G=(V E)是一个连通网络 U是顶点集V的一个真子集 若(u v)是G中所有的一个端点在U(u∈U)里 另一个端
点不在U(即v∈V U)里的边中 具有最小权值的一条边 则一定存在G的一棵最小生成树包括此边(u v)
( )MST性质的证明
为方便说明 先作以下约定
①将集合U中的顶点看作是红色顶点 ②而V U中的顶点看作是蓝色顶点 ③连接红点和蓝点的边看作是紫色边 ④权最小的紫
边称为轻边(即权重最 轻 的边) 于是 MST性质中所述的边(u v)就可简称为轻边
用反证法证明MST性质
假设G中任何一棵MST都不含轻边(u v) 则若T是G的一棵MST 则它不含此轻边
由于T是包含了G中所有顶点的连通图 所以T中必有一条从红点u到蓝点v的路径P 且P上必有一条紫边(u v )连接红点集和蓝点集
否则u和v不连通 当把轻边(u v)加入树T时 该轻边和P必构成了一个回路 删去紫边(u v )后回路亦消除 由此可得另一生
成树T
T 和T的差别仅在于T 用轻边(u v)取代了T中权重可能更大的紫边(u v ) 因为w(u v)≤w(u v ) 所以
w(T )=w(T)+w(u v) w(u v )≤w(T)
故T 亦是G的MST 它包含边(u v) 这与假设矛盾
所以 MST性质成立
求MST的一般算法描述
求MST的一般算法可描述为 针对图G 从空树T开始 往集合T中逐条选择并加入n 条安全边(u v) 最终生成一棵含n 条边的
MST
当一条边(u v)加入T时 必须保证T∪(u v)仍是MST的子集 我们将这样的边称为T的安全边
用伪代码可将算法描述为
GenerieMST(G)//求G的某棵MST
T〈 ¢; //T初始为空 是指顶点集和边集均空
while T未形成G的生成树 do
找出T的一条安全边(u v);//即T∪(u v)仍为MST的子集
T=T∪(u v); //加入安全边 扩充T
return T; //T为生成树且是G的一棵MST
注意
下面给出的两种求MST的算法均是对上述的一般算法的求精 两算法的区别仅在于求安全边的方法不同
为简单起见 下面用序号 … n 来表示顶点集 即
V(G)= … n
G中边上的权解释为长度 并设T=(U TE)
cha138/Article/program/sjjg/201311/23829相关参考
树(自由树)无序树和有根树 自由树就是一个无回路的连通图(没有确定根)(在自由树中选定一顶点做根则成为一棵通常的树) 从根开始为每个顶点(在树中通常称作结点)的孩子规定从左到右的次序则它就成为
克鲁斯卡尔(Kruskal)算法 ()算法思想 ①T的初始状态 只有n个顶点而无边的森林T=(V¢) ②按边长递增的顺序选择E中的n安全边(uv)并加入T生成MST 注意 安全边指两个
最小生成树的概念和应用背景 最小生成树(MinimumSpanningTree)各边权的总和最小的生成树 MST性质 假设N=(VE)是一个连通网U是顶点集V的一个非空子集若(UV)是一条具有最
在例及中已考察过这个问题因为具有n个顶点的无向网络G的每个生成树刚好具有n条边所以问题是用某种方法选择n条边使它们形成G的最小生成树至少可以采用三种不同的贪婪策略来选择这n条边这三种求解最小生成树
.一带权无向图的邻接矩阵如下图试画出它的一棵最小生成树【浙江大学五 (分)】 .请看下边的无向加权图 ().写出它的邻接矩阵(分) ().按Prim算法求其最小生成树并给出构造最小
最小生成树的KRUSKAL算法是一种贪心法(GREEDY)( )【华南理工大学一(分)】 求最小生成树的普里姆(Prim)算法中边上的权可正可负( &
Prim(普里姆)算法适用于求______的网的最小生成树kruskal(克鲁斯卡尔)算法适用于求______的网的最小生成树【厦门大学一】 .克鲁斯卡尔算法的时间复杂度为______它对___
.考虑右图 ()从顶点A出发求它的深度优先生成树 ()从顶点E出发求它的广度优先生成树 ()根据普利姆(Prim)算法 求它的最小生成树【上海交通大学六(分)】 在什么情况下Prim算法
生成树(SpanningTree)从连通图的任何一个顶点出发进行遍历遍历过程中经过的边加上图的所有顶点构成的子图称为图的生成树 深度优先生成树由深度优
.试写出用克鲁斯卡尔(Kruskal)算法构造下图的一棵最小支撑(或生成)树的过程【吉林大学一 (分)】 求出下图的最小生成树【合肥工业大学四(分)】 cha138