第9讲 生成树
- 格式:ppt
- 大小:1.38 MB
- 文档页数:53
生成树协议原理生成树协议是一种基于链路层的协议,它通常在以太网交换机上实现,用于管理以太网局域网中的网络拓扑。
生成树协议的工作原理是通过使用一个根桥(Root Bridge)和多个非根桥(Non-Root Bridge)来建立一颗树状结构,以确保网络中没有环路存在。
生成树协议的核心算法是通过一种称为生成树算法(Spanning Tree Algorithm)来找到从根桥到每个非根桥的最短路径,从而构建一颗最小生成树。
最小生成树是一种能够连接所有节点并且没有环路的树状结构,它是生成树协议的基础,用于确定网络中数据包的传输路径。
生成树协议的工作流程包括以下几个关键步骤:1. 选择根桥:在网络中通过比较桥(Bridge)的优先级和MAC地址来确定根桥,根桥是生成树中的根节点,所有数据包都将通过根桥进行转发。
2. 计算生成树:每个非根桥通过生成树算法计算到根桥的最短路径,确定自己在生成树中的位置,并将该信息传播到整个网络中。
3. 确定端口状态:每个桥根据生成树信息确定哪些端口可以用于数据包的传输,哪些端口需要阻断以避免环路的产生。
4. 更新生成树:在网络拓扑发生变化时,生成树协议会重新计算生成树,并更新每个桥的状态,重新确定最佳路径。
5. 数据包转发:根据生成树确定的路径,数据包会被从源地址传输到目的地址,通过生成树结构保证数据包的正常传输。
生成树协议的优点是可以有效避免数据包在网络中的循环传输,提升网络通信的稳定性和可靠性。
生成树协议能够自动适应网络拓扑的变化,快速重新计算生成树,并重新确定最佳传输路径,从而保证网络快速恢复到正常状态。
然而,生成树协议也存在一些局限性。
生成树协议在网络中设置大量的桥和端口时,会造成网络拓扑复杂,生成树的计算和更新会消耗大量的网络资源。
此外,生成树协议需要在所有交换机上进行配置和管理,当网络规模较大时,配置和管理网络可能会变得困难。
为了解决生成树协议的一些局限性,IEEE制定了一系列的生成树协议标准,包括802.1D、802.1w和802.1s等。
⽣成树协议详解⽣成树协议详解⽣成树协议是由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 无圈,但增加任一新边,得到且仅得到一个圈。
生成树算法的三个步骤生成树是图论中的重要概念,它描述了一个连通图的一个子图,该子图包含了图中的所有顶点,并且是无环的。
生成树算法是用来找到一个连通图的生成树的一种方法。
本文将介绍生成树算法的三个步骤:图的遍历、边的选择和生成树的构建。
一、图的遍历图的遍历是生成树算法的第一步,它的目的是将图中的所有顶点访问一遍。
常用的图的遍历算法有深度优先搜索(DFS)和广度优先搜索(BFS)。
深度优先搜索是通过递归的方式进行遍历,从某个顶点开始,先访问它的一个邻接顶点,然后再递归地访问该邻接顶点的邻接顶点,直到所有顶点都被访问过。
广度优先搜索是通过队列的方式进行遍历,从某个顶点开始,先访问它的所有邻接顶点,然后再依次访问这些邻接顶点的邻接顶点,直到所有顶点都被访问过。
二、边的选择边的选择是生成树算法的第二步,它的目的是选择一些边,使得这些边构成一个连通图的生成树。
常用的边的选择算法有最小生成树算法和最大生成树算法。
最小生成树算法的目标是选择一些边,使得这些边的权值之和最小。
常用的最小生成树算法有普里姆算法和克鲁斯卡尔算法。
普里姆算法是从一个顶点开始,每次选择一条最小权值的边,将该边连接的顶点加入到生成树中,直到所有顶点都被加入到生成树中。
克鲁斯卡尔算法是先将所有边按照权值从小到大排序,然后依次选择权值最小的边,如果这条边连接的两个顶点不在同一个连通分量中,则将这条边加入到生成树中。
最大生成树算法的目标是选择一些边,使得这些边的权值之和最大。
常用的最大生成树算法有逆克鲁斯卡尔算法和逆普里姆算法。
逆克鲁斯卡尔算法和逆普里姆算法的原理与克鲁斯卡尔算法和普里姆算法相反。
三、生成树的构建生成树的构建是生成树算法的第三步,它的目的是根据选择的边构建一个生成树。
生成树可以用邻接矩阵或邻接表来表示。
邻接矩阵是一个二维数组,其中的元素表示两个顶点之间是否有边。
邻接表是一种链表的数据结构,其中的每个节点表示一个顶点,节点的值表示该顶点的邻接顶点。
树的诞生故事(数学)【最新版4篇】目录(篇1)1.引言:介绍树的概念及其在数学中的应用2.树的基本结构:节点、边、叶子节点、度、生成树等3.树的种类:满二叉树、完全二叉树、平衡二叉树(AVL 树)和二叉搜索树4.树的遍历:前序遍历、中序遍历和后序遍历5.树的应用:图论、数据结构和算法6.结论:总结树的重要性和在数学领域的发展正文(篇1)树的诞生故事 (数学)树的概念在生活中非常常见,它既是生物学中的基本结构,也是数学中的一个重要研究对象。
在数学领域,树被广泛应用于图论、数据结构和算法等方面,为我们理解和解决许多实际问题提供了有力的工具。
接下来,我们将探讨树的诞生故事,了解其在数学中的基本结构、种类和应用。
首先,让我们来了解一下树的基本结构。
在数学中,树是由节点(vertex)和边(edge)组成的一种非线性数据结构。
树的节点表示元素,边表示元素之间的关系。
树中还存在叶子节点(leaf node),即没有子节点的节点。
度(degree)是树中节点的子节点数量,根节点的度为 0,而叶子节点的度为 1。
生成树(spanning tree)是指一个树覆盖一个图的所有节点,且保持图的连通性。
接下来,我们来探讨树的种类。
满二叉树是一种特殊的完全二叉树,它的每一层都充满了节点,且最后一层可能不完全填充。
完全二叉树是一种特殊的平衡二叉树(AVL 树),它的每一层都充满了节点,且最后一层可能不完全填充。
平衡二叉树是一种保持左右子树高度差不超过 1 的二叉树,它的调整操作使其保持平衡。
二叉搜索树是一种特殊的平衡二叉树,它的左子树中的所有节点的值都小于根节点的值,右子树中的所有节点的值都大于根节点的值。
在树的遍历方面,有前序遍历、中序遍历和后序遍历三种方式。
前序遍历是指先访问根节点,然后遍历左子树,最后遍历右子树。
中序遍历是指先遍历左子树,然后访问根节点,最后遍历右子树。
后序遍历是指先遍历左子树,然后遍历右子树,最后访问根节点。
⽣成树计数算法⽣成树计数问题:给出⼀个⽆向图,求它的⽣成树的个数。
预备知识(1)⼀个n个顶点的⽆向图G,定义它的度数矩阵D,D是⼀个n*n的矩阵。
对于顶点u,设度数为deg[u],如果i=j,那么D[i][j]=deg[i],否则D[i] [j]=0.(2)⼀个n个顶点的⽆向图G,定义它的邻接矩阵A,A是⼀个n*n的矩阵。
如果i和j之间有边,那么A[i][j]=1,否则等于0。
(3)⼀个n个顶点m条边的⽆向图G,定义它的关联矩阵B,B是⼀个n*m的矩阵。
对于第i条边e[i]=(u,v),那么B[u][i]和B[v][i]中⼀个是1,⼀个是-1,第i列其他值为0。
那么我们有所以对于如果i=j,它是顶点i的度数,否则,如果i和j之间有边,那么它等于-1,否则它等于0.(4)对于⼀个n个顶点m条边的⽆向图G,定义它的Kirchhoff矩阵C,C是⼀个n*n的矩阵,很显然,C=D-AMatrix-Tree定理对于⼀个⽆向图G,它的⽣成树个数等于其Kirchhoff矩阵任何⼀个n-1阶主⼦式的⾏列式的绝对值。
所谓n-1阶主⼦式,就是对于任意⼀个r,将C的第r⾏和第r列同表⽰时删去后的新矩阵,⽤下⾯的字母表⽰C_{r}接下来,我们⾸先证明下⾯四个性质:性质1:对于任何⼀个图的Kirchhoff矩阵C,它的⾏列式为0。
性质2:对于不连通的图,它的Kirchhoff矩阵C的任⼀个n-1阶主⼦式的⾏列式均为0。
性质3:如果G是⼀棵树,它的Kirchhoff矩阵C的任⼀个n-1阶主⼦式的⾏列式均为1。
性质4:柯西-⽐内公式。
设A和B分别是n*m和m*n的矩阵,那么其中S是⼀个⼦集,⼤⼩为n,也就是S取遍所有的n⼦集,相应的As和Bs为从A和B中取出S元素下标的所有列和所有⾏。
性质1证明:由C的性质可得,它的每⼀⾏每⼀列和均为0,那么我们把第2到第n⾏都加到第⼀⾏,那么第⼀⾏就全部是0了。
有⼀⾏全部是0,那么它的⾏列式就是0了。