树与生成树
- 格式:ppt
- 大小:685.51 KB
- 文档页数:38
在离散数学中,图是一个由点和边组成的抽象数学模型。
其中,树是一种特殊的图,它是一个无环连通图。
在图论中,树扮演了重要的角色,它具有许多有趣的性质和应用。
而生成树则是树的一个特殊子集,它由给定图中的所有顶点和部分边构成。
本文将介绍图的树的基本概念,并探讨生成树的计数方法。
首先,让我们来看看图的树。
树是一种无环连通图,其中任意两个顶点之间存在唯一一条路径。
它具有以下性质:1.n个顶点的树有n-1条边。
这可以通过归纳法证明:当n=1时,结论成立;假设n=k时成立,那么n=k+1时,只需要添加一个顶点和一条边,即可构成n=k+1个顶点的树。
因此,结论成立。
2.连接树上任意两个顶点的边都是桥。
即如果一条边被删除,那么树就会变成两个或更多个不相连的子树。
3.树是一个高度平衡的结构。
对于一个n个顶点的树,任意两个叶子结点之间的路径长度至多相差1。
4.树的任意两个顶点之间有唯一一条路径,路径长度为顶点之间的边数。
接下来,让我们来讨论生成树的计数方法。
生成树是树的一个特殊子集,它是由给定图中的所有顶点和部分边构成。
生成树的计数在图论中具有重要的意义和应用。
对于一个具有n个顶点的连通图来说,其生成树的个数可以通过Cayley公式计算得到。
Cayley公式是由亚瑟·凯利于1889年提出的,它给出了完全图的生成树数目。
据此,我们可以得到生成树的计数公式为:T = n^(n-2),其中T表示生成树的个数。
此外,还有一种常见的计数方法是基于度数矩阵和邻接矩阵的矩阵树定理。
矩阵树定理由高斯于1847年提出,它提供了一种计算图的生成树个数的方法。
根据矩阵树定理,一个无向图G的生成树数目等于该图度数矩阵的任意一个(n-1)阶主子式的行列式的值。
其中,度数矩阵是一个对角矩阵,它的对角线上的元素为各个顶点的度数。
邻接矩阵则是一个关于顶点间连接关系的矩阵,其中1表示相邻顶点之间存在边,0表示不存在边。
除了数学方法,还存在一种基于图的遍历的计数方法,称为Kirchhoff矩阵树定理。
离散数学是计算机科学中的重要学科,其中生成树是一个重要的概念。
在图论中,生成树是一棵树,它包含了图中的所有顶点,并且是由图边组成的无环连通子图。
生成树在图论中有着重要的应用,特别是在计算机网络、运筹学和电路设计等领域。
生成树的概念与基础就是组成它的边是有限的,并且连接图中的所有顶点,但没有形成圈回到起点。
生成树通常是用来描述一个系统的最小连接方式。
生成树可以应用于计算机网络的设计中,用于构建最小生成树算法,以便在网络中选择最小的数据传输路径。
此外,在运筹学中,生成树被用于求解最小生成树问题,即为一个加权图找到一棵包含所有顶点的生成树,使得树中边的权重之和最小。
在离散数学中,生成树计数是一个重要的研究分支。
生成树计数是指对给定图,计算其生成树的数目。
生成树计数的问题可以通过使用基于图论和组合数学的算法来解决。
通常,生成树计数的问题与相应图的特性和性质密切相关。
对于一个简单图来说,如果图中任意两点之间至少有一条边,那么该图一定存在生成树。
对于有 n 个顶点的连通图来说,它的生成树数量可以通过Cayley公式计算得到。
Cayley公式表明,一个有 n 个标号的顶点的完全图的生成树数量等于 n^(n-2)。
而对于非完全图,生成树的计数问题则较为困难。
在处理非完全图的生成树计数问题时,可以使用基于递归和动态规划的算法来解决。
一个常见的方法是使用Kirchhoff矩阵树定理,它将生成树计数的问题转化为计算矩阵的行列式的问题。
Kirchhoff矩阵树定理提供了一种计算给定图的生成树数目的有效算法,通过计算图的基尔霍夫矢量的一个特征值,可以得到图的生成树的数目。
另一个常见的方法是使用Prufer编码,它是一个用于描述无环连通图的序列。
通过Prufer编码,我们可以将计算生成树的问题转化为计数树的问题。
通过对无向图进行Prufer编码,我们可以计算出生成树的数目,并且可以根据生成树的数目来确定该无向图的种类和特征。
生成树的名词解释生成树(Spanning Tree)是图论中的一个重要概念,用来描述在一个无向连通图中连接所有顶点的极小连通子图。
在一个无向连通图中,如果能够找到一颗包含所有顶点且边数最少的子图,那么这个子图就是该图的生成树。
生成树的概念最早由Otto Schönflies于1885年提出,并且在图论研究和实际应用中得到了广泛的运用。
生成树在电网规划、通信网络设计、计算机网络以及城市交通规划等领域都有着重要的应用价值。
生成树的定义可以用简洁的方式表述:在一个无向连通图中,生成树是保留了原图的所有顶点,但只保留了足够的边来使得这个子图连通,并且不包含任何环的一种连通子图。
换句话说,生成树是一个无向连通图中的极小连通子图,它连接了所有的顶点,并且不存在回路。
生成树具有很多重要的性质和应用。
首先,生成树的边数比原图的顶点数少一个。
这是因为生成树是一个连通子图,而且不包含任何环。
因此,生成树中的边数等于原图的顶点数减去1。
这个性质经常用于生成树的构造和推导。
其次,生成树可以用于表示图中的最小连接网络。
在一个无向连通图中,如果存在多个连通子图,那么通过连接这些子图的最少的边,就可以得到一个生成树。
这个生成树可以看作是一个最小的连通网络,其中所有顶点都能够通过最短路径相互到达。
此外,生成树还可以用于网络设计和优化问题。
在电网规划、通信网络设计和计算机网络中,生成树常常被用于实现信息的传输和路由的优化。
通过构造合适的生成树,可以使得信息的传输路径更加简洁和高效。
生成树有多种构造算法,其中最常用的是Prim算法和Kruskal算法。
Prim算法是一种贪心算法,它从一个任意选定的顶点开始,逐步构建生成树。
具体地,Prim算法每次选择与已有的生成树连接边权值最小的顶点,并将其加入生成树。
重复这个过程,直到生成树包含了所有的顶点。
Kruskal算法是一种基于边的方法,它首先将图中的边按照权值从小到大排序,然后依次将边加入生成树,直到生成树包含了所有的顶点为止。
VLAN与生成树和生成树的配置一VLAN与生成树在缺省的CISCOSTP模式中,每个VLAN定义一个STP.IEEE802.1Q标准是在整个交换VLAN网络中使用一个STP,但并不排除在每个VLAN中实现STP.1VLAN与生成树的关系>IEEE通用生成树(CST)>CISCOPERVLAN生成树(PVST)>带CST的CISCOPERVLAN生成树(PVST+)CST是IEEE解决运行虚拟局域网VLAN生成树的方法.CST定义,整个第2层交换网络所有实现了的VLAN,仅使用一个生成树实例.这个生成树实例运行在整个交换局域网上.PVST是解决在虚拟局域网上处理生成树的CISCO特有解决方案.PVST为每个虚拟局域网运行单独的生成树实例.一般情况下PVST要求在交换机之间的中继链路上运行CISCO的ISL.PVST+是CISCO解决在虚拟局域网上处理生成树问题的另一个方案.PVST+允许CST信息传给PVST,以便与其他厂商在VLAN上运行生成树的实现方法进行操作.2按VLAN生成树(PVST)为每个VLAN建立一个独立的生成树实例(PVST).生成树算法计算整个交换型网络的最佳无环路径.PVST的优点:>生成树拓扑结构的总体规模减少.>改进了生成树的扩展性,并减少了收敛时间.>提供更快的收敛恢复能力和更高的可靠性.PVST的缺点:>为了维护针对每个VLAN而生成的生树,交换机的利用率会更高>为了支持各个VLAN的BPDU,需要占用更多的TRUNK链路带宽生成树仅可运行在64个VLAN上.3公共生成树(CST)CST是IEEE在虚拟局域网上处理生成树的特有方法,这是一种VLAN解决方案,称为单一或者公共生成树.生成树协议运行在VLAN1即缺省的VLAN上.所有的交换机都举出同一个根网桥,并建立与该根网桥的关系.公共生成树不能针对每个VLAN来优化根网桥的位置.公共生成树优点:>最小数量的BPDU通信,带宽占用少.>交换机负载保持最小.公共生成树的缺点如下:>只用一个根网桥,这不能为所有的VLAN做到网桥的优化放置,导致对某些设备来说可能存在次优化路径.>为包括交换架构中的所有端口,生成树的拓扑结构较大,这就会导致较长的收敛时间和更频繁的重新配置.4增强型的按VLAN生成树(PVST+)PVST+有以下特征:>它是CISCO发展的,可以与802.1Q公共生成树(CST)互操作.>通过ISL中继,PVST+与现存的CISCO交换机PVST协议向后兼容,同时,PVST+也通过802.1Q中继与CST连接互操作.>如果PVST区域和CST区域之间要互操作,一定要通过PVST+区域.二生成树配置生成树配置涉及下面一些任务:>选举和维护一个根网桥.>通过配置一些生成树的参数来优化生成树.(如端口优先级端口成本)>通过配置上行链路来减少生成树的收敛时间.2950交换机上生成树的缺省配置:>STP启用:缺省情况下VLAN1启用>STP模式:PVST+>交换机优先级:32768>STP端口优先级:128>STP路径成本:1000M:4100M:1910M:100>STPVLAN端口成本:(同上)>STP计时器:HELLO时间:2秒转发延迟:15秒最大老化时间:20秒1启用生成树:switch(config)#spanning-tree vlan vlan-list步骤:switch#config tswitch(config)# spanning-tree vlan 10switch(config)#endswitch#show spanning-tree summary(detial)summary摘要detial详细Bridge Identifier has priority 8912,address 0006.eb06.1741 (本地交换机网桥ID)desigated root has priority 8912,address 0006.eb06.1741 (根网桥ID)designated port is 7,path cost 0 (路径成本)times: hold1, topology change 35, notification 2hello 2, max age 20, forward delay 15 (根计时器)2人为建立根网桥在生成树网络中,最重要的事情就是决定根网桥的位置.可以让交换机自己根据一定的原则来选择根网桥以及备份或从(secondary)根网桥,也可使用命令人为指定根网桥.PS:不要将接入层的交换机配置为根网桥.STP根网桥通常是汇聚层或者核心层的交换机.通过命令直接建立根网桥:spanning-tree vlan vlan-id root primary步骤:switch#config terminalswitch(config)#spanning-tree vlan vlan-id root primary dianmeternet-diameter hello-time sec为VLAN配置根网桥网络半径以及HELLO时间ROOT关键字:指定这台交换机为根网桥diameter netdianmeter:该关键字指定在末端口主机任意两点之间的网段的最大数量.net-diameter的值是2-7.这个直径应该从根网桥开始计算,根网桥是1switch(config)#endswitch#show spanning-tree vlan vlan-id detail让交换机返回缺省的配置,可以使用如下命令:no spanstree vlan vlan-id root2>修改网桥的优先级别:多数情况下做如下配置:spanning -tree vlan vlan-id root primary (主ROOT)spanning-tree vlan vlan-id root secondary(备份ROOT)修改网桥优先级:spanning-tree vlan vlan-id priority bridge-priority3确定到根网桥的路径生成树协议依次用BPDU中这些不同域来确定根网桥的最佳路径:>根路径成本(ROOTPATHCOST)>网桥ID(BRIDGEID)>端口优先级(PORTPROIRITY)从端口发出BPDU时,它会被施加一个端口成本,所有端口成本的总和就是路径成本.生成树首先查看路径成本,以确定哪些端口应该转发,哪些端口应该阻塞.报告最低路径成本的端口被选为转发端口.如果对多个端口来说,其中路径成本相同,那么,生成树将查看网桥ID.报告有最低网桥ID的BPDU端口被允许进行转发,而其他所有端口被阻断.如果路径成本和网桥ID都相同(如在平行链路中),生成树将查看端口ID.端口ID低的优先级高,将作为转发端口.4修改端口成本如果想要改变某台交换机和根之间的数据所走的路径,就要仔细计算当前的路径成本,然后,改变所希望路径的端口成本.我们可以更改交换机端口的成本,端口成本更低的端口更容易被选为转发帧的端口.spanning-tree vlan vlan-id cost costno spanning-tree vlan vlan-id cost(删除)配置步骤:>1config terminal 进入配置状态>2interface interface-id 进入端口配置界面>3spanning-tree vlan vlan-id cost cost值为某个VLAN配置端口成本>4end>5show spanning-tree interface interface-id detail查看配置>6write5修改端口优先级在路径成本和网桥ID都相同的情况下,有最低优先级的端口将为vlan转发数据帧.对应基于CLI的命令的交换机,可能的端口优先级别范围为0~63,缺省为32.基于IOS的交换机端口的优先级别范围是0~255,缺省为128.spanning-tree vlan vlan-id port-priority priority值no spanning-tree vlan vlan-id port-priority1>config terminal 进入配置状态2>interface interface-id 进入端口配置界面3>spanning-tree vlan vlan-id port-priority4>end5>show spanning-tree interface interface-id detail6>write6修改生成树计时器使用缺省的STP计时器配置,从一条链路失效到另一条接替,需要花费50秒.这可能使网络存取被耽误,从而引起超时,不能阻止桥接回路的产生,还会对某些协议的应用产生不良影响,会引起连接、会话或数据的丢失。