第二章 生成树
- 格式:doc
- 大小:1.94 MB
- 文档页数:26
⽣成树协议详解⽣成树协议详解⽣成树协议是由Sun微系统公司著名⼯程师拉迪亚?珀尔曼博⼠(Radia Perlman)发明的。
⽹桥使⽤珀尔曼博⼠发明的这种⽅法能够达到2层路由的理想境界:冗余和⽆环路运⾏。
你可以把⽣成树协议设想为⼀个各⽹桥设备记在⼼⾥的⽤于进⾏优化和容错发送数据的过程的树型结构。
我们要介绍的这个问题在图1中进⾏了描述。
图1.如果这些交换机不采⽤⽣成树协议并且以这种⽅式连接,每⼀台交换机将⽆限地复制它们收到的第⼀个数据包,直到内存耗尽和系统崩溃为⽌。
在2层,没有任何东西能够阻⽌这种环路的事情发⽣。
在图1中,管理员必须要⼿⼯关闭这个红⾊连接线路才能让这个以太⽹⽹络运⾏。
⽣成树协议在当前可⽤连接有效时关闭⼀个或者更多其它冗余连接,⽽在当前连接出现故障后,再启⽤这些被关闭的冗余连接。
⽣成树协议决定使⽤哪⼀个连接完全取决于⽹络的拓扑结构。
⽣成树协议拓扑结构的思路是,⽹桥能够⾃动发现⼀个没有环路的拓扑结构的⼦⽹,也就是⼀个⽣成树。
⽣成树协议还能够确定有⾜够的连接通向这个⽹络的每⼀个部分。
它将建⽴整个局域⽹的⽣成树。
当⾸次连接⽹桥或者发⽣拓扑结构变化时,⽹桥都将进⾏⽣成树拓扑的重新计算。
当⼀个⽹桥收到某种类型的“设置信息”(⼀种特殊类型的桥接协议数据单元,BPDU)时,⽹桥就开始从头实施⽣成树算法。
这种算法从根⽹桥的选择开始的。
根⽹桥(root bridge)是整个拓扑结构的核⼼,所有的数据实际上都要通过根⽹桥。
顺便提⽰⼀下,有⼿⼯设置根⽹桥时要特别注意。
对于思科设备来⾔其根⽹桥的选择过程暴露出⼀些问题,就是过分简单化。
思科硬件通常使⽤最低的MAC地址,具备这些地址的设备通常是⽹络中最古⽼的设备,因⽽其交换速度常是最慢的,⽽从根⽹桥在⽹络中的位置看,它负荷却最重。
⽣成树构建的下⼀步是让每⼀个⽹桥决定通向根桥的最短路径,这样,各⽹桥就可以知道如何到达这个“中⼼”。
这⼀步会在每个局域⽹进⾏,它选择指定的⽹桥,或者与根桥最接近的⽹桥。
第二章树教学安排的说明章节题目:§2.1树的特性;§2.2割边与割点,§2.3生成树学时分配:共2课时本章教学目的与要求:会正确表述关于树的一些基本概念(如树、生成树、割边与割点),会用避圈法和破圈法找生成树,会用树的方法描述一些简单的实际问题.课 堂 教 学 方 案课程名称:§2.1树的特性;§2.2割边与割点;§2.3 生成树授课时数:2学时授课类型:理论课教学方法与手段:讲授法教学目的与要求:会正确表述关于树的一些基本概念(如树、生成树、割边与割点),会用避圈法和破圈法找生成树,会用树的方法描述一些简单的实际问题. 教学重点、难点:(1) 理解树的概念以及树的等价命题;(2) 掌握割边与割点的概念;(3) 理解生成树的定义;(4) 掌握找生成树的两种方法——避圈法和破圈法。
教学内容:树是图论中的一个重要概念。
树是一种极为简单而又非常重要的特殊图,它在计算机科学以及其它许多领域都有广泛的应用。
在1847年克希霍夫就用树的理论来研究电网络,1857年凯莱在计算有机化学中222n C H 的同分异构物数目时也用到了树的理论。
各类网络的主干网通常都是树的结构。
本节介绍树的基本知识,其中谈到的图都假定是简单图。
2.1 树的特性定义2.1.1 连通无圈的无向图称为无向树,简称为树(Undirected tree )。
记作T ,树中的悬挂点(或称T 中度数为1的顶点)又称为树叶(leave )(或叶顶点),其它顶点称为树枝(Branch Point 或内点(Inner Point))。
诸连通分支均为树的图称为森林(forest ),树是森林。
例1 图1中(a ),(b )为树,(c )为森林。
图1由于树无环也无重边(否则它有圈),因此树必定是简单图。
树还有等价命题:设T 是一个无向(,)n m 图,则以下关于T 的命题是等价的。
(1) T 是树;(2)T 无圈且1m n =-;(3) T 连通且1m n =-;(4)T 无圈,但增加任一新边,得到且仅得到一个圈。
(5)T 连通,但删去任一边便不连通(2n ≥)。
(6)T 的每一对顶点间有唯一的一条通路(2n ≥)。
证明 (1) ⇒(2)由树的定义可知T 无圈。
下证1m n =-。
对n 进行归纳证明。
当1n =时,0m =,显然1m n =-。
假设n k =时结论成立,现证明1n k =+时结论也成立。
由于树是连通而无圈的,所以至少有一个度数为1的顶点v ,在T 中删去v 及其关联边,便得到k 个顶点的连通无圈图。
由归纳假设它有1k -条边。
再将顶点v 及其关联边加回得到原图T ,所以T 中含有1k +个顶点和k 条边,故结论1m n =-成立。
所以树是无圈且1m n =-的图。
(2) ⇒(3)用反证法。
若T 不连通,设T 有k 个连通分支(2k ≥) 1T ,2T ,,k T ,其顶点数分别是12,,,k n n n ,边数分别为12,,,k m m m ,于是11,k k i i i i n n m m ====∑∑11(1)1k k i i i i m m n n k n ====-=-<-∑∑得出矛盾。
所以T 是连通且1m n =-的图。
(3) ⇒(4)首先证明T 无圈。
对n 作归纳证明。
当1n =时,10m n =-=,显然无圈。
假设顶点数为1n -时无圈,今考察顶点数是n 时的情况。
此时至少有一个顶点v 其度数deg()1v =。
我们删去v 及其关联边得到新图T ',根据归纳假设T '无圈,再加回v 及其关联边又得到图T ,则T 也无圈。
其次,若在连通图T 中增加一条新边(,)i j v v ,则由于T 中由i v 到j v 存在一条通路,故必有一个圈通过i v ,j v 。
若这样的圈有两个,则去掉边(,)i j v v ,T 中仍存在通过i v ,j v 的圈,与T 无圈矛盾。
故加上边(,)i j v v 得到一个且仅一个圈。
(4) ⇒(5)若T 不连通,则存在两个顶点i v 和j v ,在i v 和j v 之间没有路,若加边(,)i j v v 不会产生圈,但这与假设矛盾,故T 是连通的。
又由于T 无圈,所以删去任一边,图便不连通。
(5) ⇒(6)由连通性知,任意两点间有一条路径,于是有一条通路。
若此通路不唯一,则T 中含有圈,删去此圈上任一边,图仍连通,这与假设不符,所以通路是唯一的。
(6) ⇒(1)显然T 连通。
下证T 无圈。
用反证法。
若T 有圈,则圈上任意两点间有两条通路,此与通路的唯一性矛盾。
故T 是连通无圈图,即T 是树。
从以上特征性可以看出,树是“最小的连通图”,少一边便不连通;树又是“最大的无圈图”,多一边便有圈,因而树是以“最经济”的方式把其中各顶点连接起来的图。
推论2.1.4 任何多于一个顶点的树都至少有两片叶。
证明 设T 是一棵(,)n m 树(2n ≥),则1deg()22(1)22n ii v m n n ===-=-∑ (1)若T 中无树叶,则T 中每个顶点的度数2≥,则1deg()2n ii v n =≥∑ (2)若T 中只有一片树叶,则T 中只有一个顶点度数为1,其他顶点度数2≥,所以 1deg()2(1)22n ii v n n =>-=-∑ (3)(2),(3)都与(1)矛盾。
所以T 中至少有两片树叶。
树的特征可见:在顶点数给定的所有图中,树是边数最少的连通图, 也是边数最多的无圈图。
由此可知,在一个(,)n m 图G 中,若1m n <-,则G 是不连通的; 若1m n >-,则G 必定有圈。
例2 设T 是一棵树,它有两个2度顶点,一个3度顶点,三个4度顶点,求T 的树叶数。
解 设树T 有x 片树叶,则T 的顶点数213n x =+++,T 的边数为15m n x =-=+又由12deg()ni i m v ==∑得2(5)223143x x +=⨯+⨯+⨯+所以9x =,即树T 有9片树叶。
§2.2 割边与割点定义2.2.1若无向图,G V E =为连通图,若有点集1V V ⊆,使图G 删除了1V 的所有顶点后,所得到的子图是非连通图,而删除了1V 的任何真子集后所得到的子图仍是连通图,则称1V 是G 的一个割集(Vertex Cutset )。
若某一个顶点构成一个割集,则称该顶点为割点(Cut Vertex )。
如图2,{b ,d },{c },{e}都是割集,顶点c 和顶点e 都是割点。
虽然删除顶点a 和c 图成为不连通的,但因{c }是{a ,c }的真子集,所以{a ,c }不是割集。
图2定义2.2.2 若无向图,G V E =为连通图,若有边集1E E ⊆,使图G 删除了1E 的所有边后,所得到的子图是非连通图,而删除了1E 的任何真子集后所得到的子图仍是连通图,则称1E 是G 的一个边割集(Edge Cutest)。
若某一条边构成一个边割集,则称该边为割边(Cut Edge)或桥(Bridge)。
定理 2.2.1 一个无向连通图G 中的顶点v 是割点的充分必要条件是存在顶点u 和w ,使得连接u 和w 的每条路都经过v 。
证明 充分性:如果连通图G 中存在顶点u 和w ,使得连接u 和w 的每条路都经过v ,则在子图{}G v -中u 和w 必不可达,故v 是割点。
必要性:如果v 是割点,则{}G v -中至少有两个连通分支>=<111,E V G 和>=<222,E V G ,任取1V u ∈,2V w ∈,因为G 连通,故在G 中必有连接u 和w 的路P ,但u 和w 在{}G v -中不可达,因此路P 必通过v ,即u 和w 之间的任意路必经过v 。
定理2.2.2 一个无向连通图G 中的边e 是割边的充分必要条件是存在顶点u 和w ,使得连接u 和w 的每条路都经过e 。
定理 2.2.3 无向连通图G 中的边e 是割边的充分必要条件是e 不包含在图的任何基本圈中。
证明 (,)e x y =是连通图G 的割边当且仅当x 和y 在{}G e -的不同连通分支中,而后者等价于在{}G e -中不存在x 到y 的路,从而等价于e 不包含在图的任何基本圈中。
于是定理得证。
§2.3 树与生成树1.无向图中的生成树定义2.3.1 若无向(连通图) G 的生成子图是一棵树,则称该树是G 的生成树或支撑树(Spanning Tree),记为T 。
生成树T 中的边称为树枝。
图G 中其他边称为T 的连枝。
所有这些连枝的集合称为T 的补。
例如,图3中()b 、()c 所示的树1T 、2T 是图()a 的生成树,而()d 所示的树3T 不是图()a 的生成树。
()f 、()g 所示的树是图()e 的生成树。
一般的,一个图的生成树不唯一。
图3考虑生成树1T ,可知1234,,,e e e e 是1T 的树枝,567,,e e e 是1T 的连枝,集合567{,,}e e e 是1T 的补。
生成树有其一定的实际意义。
例3 某地要兴建5个工厂,拟修筑道路连接这5处。
经勘测其道路可依如图3()a 的无向边铺设。
为使这5处都有道路相通,问至少要铺几条路?解:这实际上是求G 的生成树的边数问题。
一般情况下,设连通图G 有n 个顶点,m 条边。
由树的性质知,T 有n 个顶点,n -1条树枝,1m n -+条连枝。
在图3()a 中,5n =,则1514n -=-=,所以至少要修4条路才行。
由图3可见,要在一个连通图G 中找到一棵生成树,只要不断地从G 的圈上删去一条边,最后所得无圈的子图就是G 的一棵生成树。
于是有以下定理。
定理2.3.1任一连通图G 都至少有一棵生成树。
证 若G 无圈,则G 本身为一树。
若G 有圈。
则删去圈上任一边e ,G –e 仍连通。
对G –e 重复上述讨论,直到得到G 的无圈的连通子图——生成树。
定理2.3.2 无向图G 有生成树的充分必要条件是G 为连通图。
证明 先采用反证法来证明必要性。
若G 不连通,则它的任何生成子图也不连通,因此不可能有生成树,与G 有生成树矛盾,故G 是连通图。
再证充分性。
设G 连通,则G 必有连通的生成子图,令T 是G 的含有边数最少的生成子图,于是T 中必无圈(否则删去圈上的一条边不影响连通性,与T 含边数最少矛盾),故T 是一棵树,即生成树。
生成树的求法求一个连通图的生成树有一个简单算法,这个算法就是在一个连通图中破掉所有的圈,剩下不含圈的连通图就是原图一个生成树,这个算法叫做“破圈法”. 也可以用下面的算法来构造连通图的生成树.在图G 中任意取一条边1e ,找一条不与1e 构成圈的边2e ,然后再找一条不与{1e ,2e }构成圈的边3e ,这样继续下去,直到这种过程不能进行,这时所得到的图G 就是一个生成树.这种算法我们称之为“避圈法”.2.无向赋权图中的最小生成树在实际工作中,有很多问题的可行解方案都可以通过一个赋权有向图表示,例如:物流渠道的设计、物资运输路线的安排、装卸设备的更新、排水管道的铺设等、所以赋权图被广泛应用于解决工程技术及科学管理等领域的最优化问题。