第25卷 第2期 五邑大学学报(自然科学版) Vb1.25 No.2 2011年 5月 JOURNAL OF WUYl UNIVERSITY(Natural Science Edition) May 201l 文章编号:1006-7302(2011)02・0038-05 改进的A水算法在Ad Hoe网络中的应用 王仁红,廖惜春,郭洪威 (五邑大学 信息工程学院,广东 江r1 529020) 摘要:针对Ad Hoc网络拓朴结构频繁变动,已有路由的有效时间短、丢包率高等问题,将改 进的A’算法应用于Ad Hoe网络实现路由查找,利用NS2仿真,将A 算法与传统的AODV、 DSR路由算法在丢包率、传输速率、平均端到端时延、算法开销等4个方面进行性能比较, 仿真结果表明:A 算法在源节点与目的节点问寻找路由的过程中,能够快速而准确地建立路 由。在路由速度、发包成功率等方面有明显的提升. 关键词:Ad Hoe网络;A 算法;路由查找;发包成功率 中图分类号:TN9l5.04 文献标志码:A A Study of the Application of the A Algorithm in Ad Hoe WANG Ren-hong,LIAO Xi-chun,GUO Hong-wei (School of Information Engineering,Wuyi University,Jiangmen 529020,China) Abstmot:In light of the frequent structural changes of the Ad Hoc network topology.sh0rt duration of the effective route and the high packet loss rate,we applied the improved A Algorithm to the Ad Hoe networks to achieve routing lookup.We compared the A Algorithm and the traditional AODV and the DSR routing algorithms using NS2 simulation in the four aspects of algorithm performance:packet loss rate,transmission rate,average end to end delay and algorithm overhead.Simulation results show that the A algorithm Call quickly and accurately establish the route in the routing process from source node to destination node and can significantly increase the routing speed and the SUCCESS rate of sending packets. Key words:Ad Hoe network;A algorithm;routing lookup;packet-sending success rates Ad Hoc网络是由一些移动节点组成的无线通信网络,它的每一个节点都采用全双工通信,网络 没有固定的结构,当两个节点不满足直接通信时需要通过中间节点传输信息,因此,如何在源节点 与目的节点之间找到通信的路径非常重要I1-31.传统的Ad Hoe网络路由算法主要分为2类【4-5l:一是 动态维护路由表的算法,如目的序列距离矢量路由协议(Destination Sequenced Distance Vector, DSDV),但该算法需要不断地进行路由更新,不仅占用了大量的带宽,而且容易形成广播风暴【6 ; 二是按需路由算法,其代表是Ad hoc按需距离矢量路由协议(Ad hoc On Demand Distance Vector, 收稿日期:2010-12-15 基金项目:广东省科技计划项目(2009B010800012) 作者简介:王仁红(1982一),女,湖南邵阳人,硕士研究生,主要研究无线传感网络及数据处理;廖惜春, 教授,硕士生导师。通信作者,主要研究无线传感网络及数据处理. 第25卷第2期 王仁红等:改进的A 算法在Ad Hoe网络中的应用 39 AODV)、动态源路由协议(Dynamic Source Routing,DSR),这类算法在需要通信的时候才进行查 找路由的操作,从而避免了广播风暴.AODV路由算法是应用较多的按需路由算法,该算法的协议 效率不高、通信质量不能保证.本文针对Ad Hoe网络的不足,将A・按需路由算法应用于Ad Hoc 网络中. 1 A木算法的基本原理 A・算法在人工智能中是一种典型的启发式搜索算法【7】.启发式搜索就是在状态空间中对每一个 搜索的位置进行评估,得到最佳位置,再从这个位置进行下一步搜索,直到找到目标.这样可以省 略大量无畏的搜索路径,提高效率.在启发式搜索中,对位置的评估十分重要,采用不同的估价函 数效果不同.本文所采用的启发的估价函数表示为:f(n)=g(”)+ ( ).其中,f(n)是节点 的估价 函数,体现了搜索的启发信息;g( )是在状态空间中从初始节点到刀节点的实际代价,是已知的; ^(”)是从 到目标节点最佳路径的估计代价. A・算法通过OPEN和CLOSE表选择、保存节点,其中,OPEN表是路由查找过程中的一个链 表,用来保存最终的路由路径,CLOSE表记录已访问过的节点.首先将起始点 放入OPEN表, CLOSE表置空,算法开始,其主要思路用c++语言格式表述如下: 1)若OPEN表不为空,从表头取一个结点 ,该节点”可能是目标节点,也可能只是当前 Ad Hoc网络中的一个普通节点,若OPEN表为空,则失败退出; 2)判断刀是否为目标解,如果是,终止算法;否则进行下一步; 3)将门的所有的后继节点(即Ad Hoc中与节点n可以直接通信的节点。源节点除外)展开, 即把与玎直接关联的子节点放在OPEN表中,并把S放入CLOSE表,同时计算每一个后继节点的 估价函数.厂( ).将OPEN表按.厂(x)排序,最小的放在表头,转到步骤1. 2基于改进A木算法的Ad Hoe路由算法 2.1 改进的A 算法描述 A・算法广泛应用于有线网络最优路径求解以及一些策略设计中,在无线Ad Hoc网络的路由查 找过程中,需要对A・算法做如下改进. a)把上述第3步替换为“将 的所有与父节点直接相连的下一层子节点放人OPEN表中(程 序代码为p->node=n),同时把n放人CLOSE表中,计算启发式函数值,保存在节点信息中,并且 用后向指针指向 的当前节点即父节点,用于从目标点回溯,确定最终的路由,然后返回步骤1”. b)将选定的初始节点保存在CLOSE表中,然后选择次优节点.从源节点到目的节点的搜索过 程中。算法总是选择估价函数,( )值最小的节点作为搜索的节点;并且每一个被验证了的节点不仅 要保存其子节点信息。还要保存次优节点的信息,以便路由寻找过程中保证全局最优,如果有节点 退出,若该节点是表头节点,则将次优节点放人表头,重新往下搜索. c)当搜索一个节点时,若该节点不是目标节点且拥有子节点,则基于A・算法的搜索将其所有 的子节点都放进OPEN表中并根据函数f(n)值按升序排列.在无线Ad Hoc网络的路由搜索中,为 了适应网络特征,这些子节点不仅集中保存,而且被各自的父节点单独保存,它们的父节点还保存 源节点到目标节点的路径. 五邑大学学报(自然科学版) 2011罐 Ad HOC网络中的路由算法归根到底是找出源节点到目的节点之间的路由,实现快捷有效的通 信,改进后A・算法路由算法的路由保存在OPEN表里.本文提出的改进型A・算法主要有2个过程: 一个是从源节点进行广度搜索l ,即从初始状态逐层向下寻找,直到找到目标节点为止,其中删除 了不能扩展的(非目的)节点,以降低算法复杂度;另一个是从目标节点至源节点进行回溯,从而 确定最后的路由.具体步骤如下: 1)首先把源节点和与源节点通信范围内的节点放进OPEN表(按节点与源节点之间的估价函 数值升序排列),并清空CLOSE表,再将源节点放进CLOSE表中; 2)如果OPEN表为空,则退出算法,查找失败;否则转步骤3); 3)从表头取一个节点,如果该节点的子节点不在OPEN表中,则把该节点的子节点按照评估 函数值升序排列.该节点,l可能是目标节点,也可能只是当前Ad Hoc网络中的一个普通节点,判断 ,l是目标解吗?如果是,终止算法。否则下一步; 4)把节点,,放进CLOSE表中同时把刀的估价函数值也放进CLOSE表中,令,l指向“源节点”。 即该节点的前驱节点,循环判断节点,|的所有子节点,如果是目标节点则退出循环。否则判断是否 是叶子(无子节点的)节点,如果是,则删除该节点,否则转向步骤3); 5)清空OPEN表,在CLOSE表中,从目的节点开始,沿着后续节点回溯,直到源节点。把这 条路径中的节点按照顺序放进OPEN表作为最终的路由路径(如果回溯的过程中发现有一节点退出 网络,则选择次优节点进行回溯). 2.2肩发式函数的选择 启发式函数是依赖启发信息帮助寻找目的节点的数学表达式,其表达方式有很多种。考虑到Ad Hoc网络中的节点都是自备电源且处理能力有限等实际情况,本文选择了基于最小跳数的启发式函 数,以从源节点 到目的节点 的最小路由跳数(如图2所示)为例。算法首先从 出发,把 放 进封闭表,同时把 的3个子节点放进开放表,然后检验3个子节点 l,Sn2 3.如果以最大通信范 围500 m作为每一跳的标准,则启发式函数对应 。, 3的代价分别是JI,( 1)= /500,JIl( 2)= 2/500和JII( 3) 3/500,相应的评估函数的返回值是f(S 1)=1+ l/500,厂( 2)=l+ 2/500和 f(S 3)=1+ 3/500. 圈1 一个最小跳数路由的示意图 2.3路由选择的数据包格式 改进后的A・算法数据包格式包括:源地址、源位置、目标地址、目标位置、次优节点的信息、 CLOSE表中全部节点的信息.它比经典算法增加了次优节点信息字段以提高路由速度.次优节点信 息包含节点指示信息、父节点指示信息以及估价函数的代价;CLOSE表中全部节点的信息包含搜索 节点的指示信息、父节点的指示信息以及估价函数代价;源地址就是源节点的IP地址;源位置是源 第25卷第2期 王仁红等:改进的A}算法在AdHoe网络中的应用 41 节点的物理位置;目标地址是目标节点的IP地址;目标位置是指目标节点的物理位置 3仿真及结果 在Windows XP+CygWin+NS2.33软件环境下,对上述改进的A’算法与AODV、DSR算法进行对 比仿真. 实验中的网络拓扑分别由5、10、20…100个节点组成,这些节点随机分布在1 000 m x 1 000 1TI 区域内,形成Ad Hoc网络,链路带宽为I Mbit/s,仿真通信采用大小为512 byte的定长数据包,节 点最大移动速率为l0 m/s,路径的端节点随机选出.实验中,对每组参数都进行了1O次仿真实验, 并取其平均值作为考察依据. 3.1 节点数目和对应丢包收包比的关系 不同节点数目下3种算法的丢包 20 收包比的比较如图2所示.从图2可以 看出:随节点数目的增多,3种算法的 :: 14 丢包收包比都有所上升,但DSR升得 相对快一些;A・考虑了节点的剩余能 量,通过平衡各个节点的能量消耗延 长网络的生存时间,保证了更多的数 :: 8 。 2 据得以传输;AODV相对较好一些,但它仅维护一条到目的节点的路由, 在一定程度上影响了成功率. 3.2停留时间对算法性能的影响 0 节点数 图2发包成功率随节点数的变化图 不同停留时间各算法的性能比较如图3所示.图3-a是不同停留时间下各算法的平均端到端传 输时延,DSR的延迟时间较长,A 的传输时延比AODV要短一些,这是由于A 在路由查找过程中 及时有效地去除了不需要的路由信息(非最优的节点和路径).不同停留时间下各算法开销如图3-b 所示,3种算法的算法开销随着停留时间的增加相应地减少,最后都趋向平稳,DSR算法开销明显 高于AODV和A・,AODV与A坝8几乎相同(AODV稍微高一点). 芒 0 哲 嬗 穰 露 = 擐 懊 蜮 0 50 100 1 50 200 250 300 350 400 450 500 停留时间/0 停留时间/s a.平均端到端时延的比较 b.算法开销的比较 图3停留时间对算法性能的影响 42 五邑大学学报(自然科学版) 2011年 3.3丢包与收包的比率和传输速率之间关系 不同算法的丢包与收包的比率和传输速率的关系如表l所示(表中数据是在节点数为50的条 件下的仿真结果)。由表I可知:随着传输速率的增加,A・算法数据包的接收数目迅速增加。当传 输速率大于300 kb/s时,丢包与收包的比例也迅速逼近0;DSR的丢包收包比下降最为缓慢,在较 高速率(500 kb/s及以上)时逼近0. 表1 不同算法的丢包与收包的比率和传输速率的关系 4结束语 本文结合A・算法提出了一种自适应的Ad Hoc按需路由选择算法,与其他Ad Hoc网络路由技 术相比,本算法具有如下优势:1)算法不需要事先知道网络的拓扑结构,利用通信范围能确定所 有的网络节点,且利用启发式搜索发现节点,获得近似最优的路由路径;2)算法有良好的可扩展 性和自适应性,能够完成无线Ad Hoc网络的路由选择功能,并进一步能够避免广播风暴;3) 在启发式函数的作用下,算法不仅能够发现最优路径,还避免了贪心算法导致的局部最优问题;4) 算法简单易行,效率高.仿真实验证明,本算法具有良好的路由查找性能、降低了端到端的延迟、 算法开销等,具有良好的可扩展性和自适应性. 参考文献 【I】MERKLE D,MIDDENDORF M,SCHMECK H.Ant colony optimization for resource-constrained project scheduling[J].IEEE Transactions on Evolutionary Computation,2002,8(4):333-346. 【2】ZOU Liang,XU lianmin,ZHU Lingxiang.Implement of A’algorithm and its application in shortest path problem in dynamic networks[J]:Journal of Shenzhen University:Science and Engineering,2007,24(I):32-36. 【3】沈辉。石冰心。邹玲,等.Ad Hoc网中基于熵的长寿分布式QoS路由算法【J】.软件学报。2005,l6(3):445-452. 【4】KO Y B,VANDYA N H.Location・aided routing in mobile Ad Hoc networks[J].Wirelesnetworks,2000,6(4): 307.321. 【5】YANG Suqiong。LIN Biqin。HE wei.Implementation of search for map path based on A’algorithm[J].Railway Computer Application,2000,l9(4):8-1 1. 【6】严蔚敏.数据结构:C语言版【M1.北京:清华大学出版社,1992. 【7】郭亚军。鲁汉榕.动态环境中的一种实时启发式搜索算法【J】.空军雷达学院学报,2000,l4(4):58・60. 【81谢希仁.计算机网络【M】.5版.北京:电子工业出版社,2008.