导航:首页 > 源码编译 > 生成树机制算法

生成树机制算法

发布时间:2024-06-16 22:10:32

⑴ 生成树的标准有哪些各有什么异同

一 区别

最小生成树能够保证整个拓扑图的所有路径之和最小,但不能保证任意两点之间是最短路径。

最短路径是从一点出发,到达目的地的路径最小。

二 实现方法

  1. 最小生成树

  2. 最小生成树有两种算法来得到:Prims算法和Kruskal算法。

  3. Kruskal算法:根据边的加权值以递增的方式,一次找出加权值最低的边来构建最小生成树,而且规定:每次添加的边不能造成生成树有回路,知道找到N-1个边为止。

  4. Prims算法:以每次加入一个的临界边来建立最小生成树,直到找到N-1个边为止。其规则为:以开始时生成树的集合(集合U)为起始的定点,然后找出与生成树集合邻接的边(集合V)中,加权值最小的边来建立生成树,为了确定新加入的边不会造成回路,所以每一个新加入的边,只允许有一个顶点在生成树集合中,重复执行此步骤,直到找到N-1个边为止。

  5. 2 最短路径

算法描述

(这里描述的是从节点1开始到各点的dijkstra算法,其中Wa->b表示a->b的边的权值,d(i)即为最短路径值)

1. 置集合S={2,3,n}, 数组d(1)=0, d(i)=W1->i(1,i之间存在边) or +无穷大(1.i之间不存在边)

2. 在S中,令d(j)=min{d(i),i属于S},令S=S-{j},若S为空集则算法结束,否则转3

3. 对全部i属于S,如果存在边j->i,那么置d(i)=min{d(i), d(j)+Wj->i},转2


Dijkstra算法思想为:设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径 , 就将 加入到集合S中,直到全部顶点都加入到S中,算法就结束了),第二组为其余未确定最短路径的顶点集合(用U表示),按最短路径长度的递增次序依次把第二组的顶点加入S中。在加入的过程中,总保持从源点v到S中各顶点的最短路径长度不大于从源点v到U中任何顶点的最短路径长度。此外,每个顶点对应一个距离,S中的顶点的距离就是从v到此顶点的最短路径长度,U中的顶点的距离,是从v到此顶点只包括S中的顶点为中间顶点的当前最短路径长度。

算法具体步骤

(1)初始时,S只包含源点,即S=,v的距离为0。U包含除v外的其他顶点,U中顶点u距离为边上的权(若v与u有边)或 ∞(若u不是v的出边邻接点)。

(2)从U中选取一个距离v最小的顶点k,把k,加入S中(该选定的距离就是v到k的最短路径长度)。

(3)以k为新考虑的中间点,修改U中各顶点的距离;若从源点v到顶点u(u U)的距离(经过顶点k)比原来距离(不经过顶点k)短,则修改顶点u的距离值,修改后的距离值为顶点k的距离加上边上的权。

(4)重复步骤(2)和(3)直到所有顶点都包含在S中。

复杂度分析

Dijkstra 算法的时间复杂度为O(n^2)空间复杂度取决于存储方式,邻接矩阵为O(n^2)

⑵ 计算机网络 STP

STP (Spanning Tree Protocol)是生成树协议的英文缩写搭衫孝。
生成树协议 运行塌敬生成树算法(STA). 生成树 算法很复杂,但是其过程可以归纳为以下3个步骤:

(1)选择根网桥
(2)选择根端口
(3)选择指定端口

First:BID(Bridge ID,网桥ID),因为根交换机的选举是基于BID的,BID由三部分组成——优先级、发送交换机的MAC地址、Extended System ID(扩展系统ID,可选项)
BID = 网桥ID=网桥优先级+网桥MAC地址组成的

First:(PID)=端口ID等于优先级加上端口编号,默认端口优先级是128。
P:每个非根交换机有且只有一个根端口。

选举根端口依照下面的顺序:
首先,最低花费的端口将成为根端口;在花费相同的情况下比较发送者的BID,BID小的将成为根端口。--->
即:到根网桥最低的根路径成本→发送BPDU的网桥ID(BID)较小→端口ID(PID)较小的。端口ID由端口优先级与端口编号组成。

请看下面这张拓扑图:

特殊的: 如果 发送者的BID相同,则比较发送者的PID:

关于选择指定端口:每个网段上选择一个指定端口。
P:每个网段有且只有一个指派端口
选择顺序为:根知稿路径成本较低(花费较低)→发送BPDU的网桥ID值较小→本端口的PID值较小。
根网桥的接口皆为指定端口,因为根网桥上端口的根路径成本为0

第一种情况:假设路径花费不同的情况下 :

既不是根端口也不是指派端口的端口将被阻塞。看上图

⑶ 最小生成树的两种算法

主要有两个:
1.普里姆(Prim)算法
特点:时间复杂度为O(n2).适合于求边稠密的最小生成树。
2.克鲁斯卡尔(Kruskal)算法
特点:时间复杂度为O(eloge)(e为网中边数),适合于求稀疏的网的最小生成树。

⑷ 简单生成树协议的算法原理

STP的工作过程是:首先进行根桥的选举。选举的依据是网桥优先级和网桥MAC地址组合成的桥ID,桥ID最小的网桥将成为网络中的根桥,它的所有端口都连接到下游桥,所以端口角色都成为指定端口。接下来,连接根桥的下游网桥将各自选择一条“最粗壮”的树枝作为到根桥的路径,相应端口的角色就成为根端口。循环这个过程到网络的边缘,指定端口和根端口确定之后一棵树就生成了。生成树经过一段时间(默认值是30秒左右)稳定之后,指定端口和根端口进入转发状态,其他端口进入阻塞状态。STP BPDU会定时从各个网桥的指定端口发出,以维护链路的状态。

阅读全文

与生成树机制算法相关的资料

热点内容
做解压学习用品手工 浏览:85
手机文件夹删除又出现怎么解决 浏览:285
php时间段分析 浏览:213
redisjava类 浏览:911
剪力墙错开部分钢筋是否加密 浏览:477
linux字符设备驱动程序 浏览:57
全排列算法java 浏览:465
中国银行app转账电子回单在哪里 浏览:51
操作简单的程序员 浏览:600
数值积分算法求pi 浏览:18
按钮怎么连命令方块 浏览:909
房贷还清后不解压能贷款吗 浏览:36
程序员哄老婆开心技术 浏览:672
oracle自动备份压缩文件 浏览:855
遵义人字形加密网带 浏览:255
宁波人社在哪里下载app 浏览:92
好哒商户app下载在哪里下载 浏览:609
广发兑星巴克是在app哪里操作 浏览:783
linuxgetline 浏览:215
app的悬浮窗权限在哪里设置 浏览:686