ImageVerifierCode 换一换
格式:DOC , 页数:4 ,大小:628KB ,
资源ID:9484191      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-9484191.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于四叉堆优先级队列的OSPF算法.doc)为本站会员(s36f12)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

基于四叉堆优先级队列的OSPF算法.doc

1、基于四叉堆优先级队列的OSPF算法梁志华,李东生,杜莉娜(太原理工大学信息工程学院山西太原030()24)摘要:通过比较已有的D钉kstra算法和基于四又堆优先级队列的D“kstra算法的时间复杂度得出,后者的执行效率高于前者;井在此基础上提出了基于四叉堆优先级队列的()sPF算法,以提高osPF的效率。关键词:路由选择;oSPF;四叉堆随着Pc主频的快速发展和上网人数的大幅增加,网络速度已成为人们关注的焦点,也是影响网络继续普及的关键。因此如何有效提高网络速度已成为当今网络技术的主要课题之一。路由选择协议是TCPIP协议族中重要的成员之一,选路过程实现的好坏会影响整个Internet网络的效

2、率。而路由选择算法在路由协议中起着至关重要的作用,采用何种算法往往决定了最终的寻径结果。因此选择路由算法需综合考虑以下几个设计目标:最优化,简洁性,坚固性,快速收敛,灵活性Internet是AS(Autonomous System,自治系统),每个As由不同的机构运营管理,在其内部使用自己的路由选择协议。按实现范围的不同,路由选择协议aJ分为内部网关协议和外部网关协议。仅就内部网戈协议而言,现正使用的路由协议有以下儿种:R1P 1(Routing Informatlon ProtocoI,选路信息系统);RIP 2;IGRP(Interior Gateway Routlng Protoc01,

3、内部网关路南选择协议);EIGRP(Extended Gateway Protoc01扩充的内部网关路由选择协议);Is Is(Intermediate system Intermedlate system,中间系统);OsPF“其中前4种路由协议采用的是距离向量算法,IsIs和osPF采用的是链路状态算法。对于小型网络,距离向量算法尚能胜任;而在面对大型网络时,不但其固有的无穷计数问题变得更为糟糕,所占用的带宽也迅速增长,以至于网络无法承受。对于大型网络,采用链路状态算法的IsIs和osPF较为有效,并得到了广泛的应用。IS一1S和OsPF在质量和性能上的差别不大,但OSPF更适用于IP,较

4、I孓IS更具有活力。IETF始终致力于osPF的改进工作,其修改节奏比I孓Is快得多。因此OSPF正在成为最为广泛的一种路由选择协议。oSPF属动态的路由协议,它可以迅速地检测AS内的拓扑变化,经过一个比较短的收敛期后,重新计算出无环路由。每个路由器维护一个相同的链路状态数据库,保存整个As的拓扑结构。一旦路由器有了完整的链路状态数据库,该路由器就可以以自己为根,构造最短路径树,然后再根据最短路径树构造路由表口。构造最短路径树采用Dijkstra算法,它的时间复杂度为O(n2)H。但本文提出的基于四叉堆优先级队列的OsPF算法的时间复杂度为协议的时间复杂度大大减少。1 Dikstra算法DIj

5、kstra算法由著名数学家EwDijkstra于1959年提出,是按路径长度递增的次序产生的单源最短路径算法,计算结果为一棵以起点为根的最短路径树。下面为基于邻接矩阵的DikStra算法的语言描述。设Di为砜到V的累计权值,s为最短路径节点的集合arcsi力为弧上的权值。DV。为。,s为空。1)找到从V。出发到其余各节点的最短路径长度的初值,记为D。(若可达,则Dz为v。到此节点弧上的权值;若不可达,则Dz为无穷)。2)找出最小权值。设此最小值对应的终止节点为U,则Dj一mtnDiV为图中的节点且S=S UV,3)若从y,出发到其余任一节点(设为V)弧上的权值与DD之和小于D,即D力+arcs

6、力阻D女,则修改D女的值为;D一D力+arcs力队4)重复2)、3)共“一1次,即可求得从Vo出发到其余各节点的最短路径。此算法的第一个循环的时间复杂度为O(n)第二个循环共进行n一1次,每次执行的时间是O(n),所以第二个循环的时闻复杂度是o(“。),故此算法的时问复杂度是O(舻)我们可以看出,造成此算法效率不高的主要原因在于算法中的二重循环。当节点总数n很大时,此二重循环将耗费大量的计算时间。欲降低此算法的时间复杂度,关键在于对第二个循环进行改造。2 基于四叉堆优先级队列的Dijkstra算法优先级队列是一种用来维护由组元素构成的集合的数据结构。实现优先级趴列的方法较多,但K叉堆是一种很优

7、秀的实现方法。K叉堆结构是一种数组对象,可以被视为一棵完全K叉树。堆结构必须满足以下|生质:对除了根节点以外的每个节点z,有Aparent(i)Ai或AParent(z)Az,即某个节点的值不小于(或不大于)其父节点的值。这样堆中的最小(或最大)元素就存在根节点中=L每一节点的子树中的节点值都不小于(或不大于)该节点的值。因为具有n个元素的K叉堆是基于一裸完全叉树的,则其高度为10即一对于K叉堆的操作,其作用时间至多与树的高度成正比为O(Iog”)+若采用基于K叉堆实现的优先级队列来存储D值(某个节点到其他节点的权值),则可降低算法的时间复杂度,提高算法效率。虽然对于一定大小的整数K,K叉堆操

8、作的运行时间界均为O(109 n),但是,K值不同,堆操作中的赋值、比较及交换操作的次数还是有很大差剐,当K=4时为最佳选择。以下为基于邻接表及四叉堆优先级队列的Dijl【stra算法(假设同前一算法)。此算治对旧算法的第二个子循环进行了改造,它的外层循环执行n次,但内层循环为树的高度log,所以此算法的时间复杂度为0(“log n)5。对于四叉堆,在节点数比较多的情况下,它的高度远小于节点总数。3 结论当n值较小时,已有的Dljkstra算法和基于四叉堆优先级队列的Dijkstra算法的时间复杂度差别不是很大。但当”值较大时,o(”109 n)会比0(n2)小很多。此时,基于四叉堆优先级队列的D1jkstra算法的运行效率会比已有的Dijkstra算法的效率高很多。可见基于四叉堆优先级队列的D-jkstra算法是对已有的Dikstra算法的一种改进。参考文献:

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报