首页 > 编程知识 正文

最短路径算法SPF,开放最短路径优先ospf实验报告

时间:2023-05-06 00:16:52 阅读:190127 作者:2252

一般的路由协议如RIP、IGRP、BGP等是距离向量协议,OSPF和ISIS是数据链路状态协议。 矢量路由器只知道自身和与自身连接的接口的路径信息,矢量图只是一个方向图,在路径传播的过程中容易形成环路。 RIP路由器采用扁平化设计避免环路,BGP通过As-path避免环路。 OSPF是一种数据链路状态路由协议,采用SPF算法或最小生成树算法(Dijkstar )。 OSPF中不存在路由组,但是在OSPF之间传递路由信息时,它是矢量路由协议。 这意味着在OSPF之间传递路由信息时会发生路由组。

Dijkstar算法:

1、算法目的:

在无向图g=(v,e )中,设各边E[i]的长度为w[i],找出从顶点V0到其余各点的最短路径。 (单源最短路径) )。

2、算法说明:

算法思想: g=(v, e )作为加权有向图,将图表中的顶点集合v分为两组,第一组是已经求出最短路径的顶点集合(用s表示的话,初期s只有一个源点,以后每次求出最短路径时被追加到集合s中,所有的顶点都追加到s中在添加第二个组时,其馀的最短路径是不确定的顶点集合,从源点到s的每个顶点的最短路径的长度将保持不大于从源点到u的任何顶点的最短路径的长度。 另外,各顶点与一个距离相对应,s中顶点的距离为从v到此顶点的最短路径长度,u中顶点的距离为从v到此顶点只将s中顶点作为中间顶点的当前最短路径长度。

3、算法步骤:

a .初始时,s只包含源点。 即,S={v},v的距离为0。 u包括除v外的其他顶点,即:U={剩下的顶点},如果v与u中的顶点u有边,则u、v为正常的权利值,如果u不是v的两边相邻点,则u、v的权利值为。

从b.u中选择距离v最小的一个顶点k,将k加到s中。 该选择的距离为从v到k的最短路径长度。

作为新考虑C.K的中间点,修正u中的各顶点的距离,在从源点v到顶点u的距离(通过顶点k )比原来的距离)不通过顶点k )短的情况下,修正到顶点u的距离值,对修正后的距离值到顶点k的距离加上边缘上的权重。

d .重复步骤b和c,直到所有顶点都包含在s中。

4、算法示例:

使用Dijkstra算法找出以a为起点的单源最短路径的步骤如下

也就是说,a已经是根节点,遍历树的结果是s=A、c、b、d、e、f

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。