基于蚁群算法的无线自组网络节能按需路由方法

文档序号:7646244阅读:211来源:国知局
专利名称:基于蚁群算法的无线自组网络节能按需路由方法
技术领域
本发明涉及一种信息技术领域的方法,涉及一种基于蚁群算法的无线自组(Ad Hoc)网络节能按需路由方法。
背景技术
Ad Hoc网络是一种没有基础设施、多跳、无线自组织网络。分布式的网络结构使得网络非常灵活,特别适合于临时信息共享的网络应用,如会议、军事行动和灾难救助等。Ad Hoc网络的多跳路由、随机移动等特点使得其路由发现和维护过程非常复杂。而且设备终端通常都是采用电池供电,网络的寿命很大程度上都取决于电池的能量消耗,因此节能策略成为Ad Hoc网络研究的热点,如何有效地管理节点的能量消耗,延长整个网络的工作寿命是无线通信领域最具挑战性的课题之一。
目前在Ad Hoc网络领域已经提出了很多节能策略,涵盖了无线网络的各个功能层。如IEEE 802.11标准提出一种MAC层的节能策路,节点处于空闲时,通过将节点设置成睡眠状态而达到节能目的。类似的MAC层节能策略还有EC-MAC、PAMAS等。在网络层,也有很多以节能为目的的方法,如MTPR,MBCR,MMBCR等。近年来,已有人将蚁群算法应用到移动Ad Hoc网络的路由中来,利用蚁群算法的分布式、自适应、正反馈和负反馈的特点,来自动配置、自适应网络的动态变化,根据网络的状态及时调整路由,以实现多个QoS的优化,例如AntHocNet、EARA、ANSI、ARAMA。这些方法中,蚂蚁在进行路由发现过程中需要记录所有访问过的节点信息,蚂蚁分组结构复杂,甚至还需要专门的控制分组来增强网络路径,因此在网络节点数量较多时,会增加网络的开销,甚至造成拥塞。目前基于蚁群算法的路由协议中很少从节能角度来考虑路由建立过程。
经对现有技术的文献检索发现,O.Hussein等在《IEEE conferenceProceedings onPerformance,Computing,and Communications》(IEEE会刊性能、计算和通信)(2003年4月)上发表的“Ant routing algorithm formobile ad-hoc networks(ARAMA)”(“用于移动Ad hoc网络的蚂蚁路由算法(ARAMA)”),该文中提出的ARAMA算法采用路由跳数和节点能量消耗作为网络QoS指标,算法中前向蚂蚁分组进行路由搜索时随机选择一个邻居节点进行转发,该分组在转发过程中需要按访问顺序记录所经过的节点地址作为路由路径,当目标节点收到前向蚂蚁分组时,对该分组记录的路径进行评估,然后沿着该路径向源节点发送反向蚂蚁分组,同时增强路径上各节点相应的信息素表。其不足在于该方法所发出的前向蚂蚁分组的数量与网络的动态特性有关,当网络变化频繁时需要增加前向蚂蚁分组数量,这必然会增加网络开销,甚至造成网络拥塞;此外,蚂蚁需要记录所有访问过的节点信息,使得蚂蚁分组的结构复杂,特别当网络节点较多、密度较大时,蚂蚁分组的传输会占用较多的网络带宽,这些不足该文中都没有予以解决。

发明内容
本发明针对现有技术的不足,提出一种基于蚁群算法的无线自组网络节能按需路由方法,使其在相同的网络初始状态和网络负载条件下,网络寿命(在本发明中定义为从开始数据传输到第一个网络节点能量衰竭所经历的时间)相对于常规的距离矢量按需路由(AODV)方法可以延长15%以上,特别是在网络负载较大时,网络寿命的延长效果更为明显。
本发明是通过以下技术方案实现的,本发明实现分为路由建立和路由维护两部分。
所述的路由建立,具体为通过源节点向网络广播路由请求蚂蚁,分布式地搜索网络状态信息,将这些信息进行规范化处理以后保存在一种与源节点和邻居节点相对应的反向信息素表中。目标节点收到请求蚂蚁以后,根据请求蚂蚁收集到的节点能量、跳数和传输能耗等信息,采用轮盘赌法选择一个节点作为下一跳节点,单播出路由应答蚂蚁,并依此方法逐跳返回到源节点,同时在返回的过程中建立从源节点到目标节点的路由。
所述路由维护,具体为节点周期性的检查自身的剩余能量与路由表中相应路由条目的路由能量的比值和该路由条目的生命期,当节点剩余能量和路由能量的比值小于某一个阈值或者生命期结束时,则将该路由条目设置成无效状态,这样在下一次需要使用该路由条目时,就需要触发新的路由发现过程。
本发明是基于AODV路由协议的改进,因此本发明的路由维护主要采用AODV的方法来进行,如采用对节点序列号的管理来避免路由回路等。但是由于本发明是一种考虑网络节点能量消耗的方法,为了延长网络的使用寿命,避免出现个别节点由于过度使用而能量衰竭,从而过早的死亡,对整个网络的寿命产生影响。采用本发明上述的路由维护方法,在新的路由发现过程中就可以根据当前的网络状态,选择具有更多能量的节点参与路由转发,从而避免了节点的过度使用,均衡了整个网络的负载分配,可以有效地延长网络的寿命。
所述的路由建立过程,包括以下步骤步骤一源节点s有数据发送请求时,首先判断是否存在到达目标节点d的有效路由,如果存在则用此路由发送数据包;否则,广播请求蚂蚁分组进行路由搜索,该请求蚂蚁分组主要包含参数跳数、节点能量、路径能耗、目标节点地址、源节点地址。
步骤二中间节点j收到来自节点i的请求蚂蚁,首先判断自己是不是该请求蚂蚁的源节点,如果是则丢弃该请求蚂蚁分组,否则,按照下式对该请求蚂蚁分组进行评估,得出其规范化的评估值Msji。
Msji=exp(γ1Rje+γ2Rjh+γ3Rjc)]]>其中Msji表示源节点s发出的请求蚂蚁经过节点i到达节点j这条路径的性能评估;Rje=eiE0,]]>表示请求蚂蚁携带的前一节点的相对剩余能量;Rjh=1-hjHmax,]]>表示规范化的请求蚂蚁所经过的跳数;Rjc=1-cjCmax,]]>表示规范化的分组在该路径上传递所消耗的能量;γ1、γ2和γ3为各QoS指标的权重系数。
然后判断中间节点j的反向信息素表中有没有对应于源节点s、邻居节点i的信息素条目,如果没有,则建立对应于(s,i)的信息素条目并将该条目的信息素值初始化为0。比较Msji与(s,i)对应的信息素条目的信息素值,如果Msji更大些,则用节点j的剩余能量代替该请求蚂蚁分组的剩余能量,用重新计算的能量消耗代替该请求蚂蚁分组的路径能耗,跳数加一,然后转发该请求蚂蚁分组。如果Msji较小,则丢弃该请求蚂蚁分组。最后更新信息素表,如下式所示τsji(t)=MsjiMsji>τsji(t-1)(1-ρ)τsji(t-1)otherwise]]>其中τsji(t)表示t时刻节点j收到从节点i转发的来自源节点s的这条路径的信息素值;ρ表示信息素挥发系数。
上式表明,当前路径的性能评估值高于节点以前发现的路径对应的信息素时,对其对应的信息素值进行更新,否则对其信息素进行挥发处理。
节点中保存的反向信息素表是一种反映请求蚂蚁所搜集的当前网络状态信息的二维表格。反向信息素表的横轴对应于节点j所收到的各请求蚂蚁对应的源节点,纵轴表示节点j的邻居节点,每个源节点和邻居节点对应一个信息素值τsji,表示节点j收到从节点i转发的来自源节点s的这条路径的性能评价值。
步骤三目标节点d收到该请求蚂蚁分组时,首先对此分组进行评估,并更新对应的反向信息素表。然后根据反向信息素表中对应于源节点s和邻居节点的信息素值计算各邻居节点的选择概率psdi,计算公式如下psdi=τsdiΣk∈{1,2,Λ,Nd}τsdk]]>其中psdi表示在目标节点d选择节点i作为下一跳节点返回到源节点s的概率;τsdi为源节点s和邻居节点i所对应的信息素的量,{1,2,Λ,Nb}表示节点d的所有邻居集合。
根据节点的选择概率采用轮盘赌法选择返回s的下一跳节点,然后对信息素表进行更新,并向该选择的节点单播应答蚂蚁分组。
步骤四中间节点j接收到应答蚂蚁分组以后,首先更新对应于目标节点d的路由条目,将下一跳节点设置成该应答蚂蚁分组的发送者,并且将该路由条目的路由能量设置成该节点的剩余能量,用当前时间更新该路由条目的生命期。然后同步骤三的方法计算各邻居节点的选择概率psji,并选择一个返回s的下一跳节点,对信息素表进行更新以后向所选择的节点单播应答蚂蚁分组。
步骤五源节点s收到返回的应答蚂蚁分组以后,更新对应于目标节点d的路由表条目,丢弃该应答蚂蚁分组,路由建立过程结束。源节点s就可以按照所建立的路由向目标节点d发送数据包。
综上所述,本发明相对其他同类协议,具有以下的优点l、简化了基于蚁群算法的路由协议结构。本发明设计了一种反向信息素表结构,并重新设计蚂蚁分组的结构,使得蚂蚁分组在进行路由发现的过程中,只需要携带少量的节点状态信息,就可以优化路由的QoS,提高网络的寿命。而其他的同类协议如AntHocNet、EARA、ANSI、ARAMA通常都需要蚂蚁携带所访问节点的列表,蚂蚁分组结构复杂,不易实现,而且在网络中传递时需要占用大量内存和网络带宽,当网络节点较多时甚至会引起网络拥塞。
2、在路由选择过程中将节点剩余能量、路径能耗和跳数作为QoS指标。通过对这三个QoS指标的规范化处理,使得具有较大节点剩余能量、较小能耗和跳数的路径具有更多的机会参与路由,从而避免节点过度使用或者节点过早死亡。并且采用概率选择机制,可以均衡节点的负载分配,有助于延长网络的工作寿命。
3、在路由维护中结合节点的剩余能量采用主动的方式触发路由请求过程。本发明中每个路由条目都增加路由能量信息,记录在建立该条路由时节点的剩余能量。这样当路由路径上的节点能量降到路由能量的某一百分比时,则将该路由条目设置成无效状态,从而触发新的路由发现过程,避免了节点被过度使用,延长整个网络的寿命。
综上所述,采用本发明的路由方法可以使网络寿命相对于采用AODV作为路由时延长至少15%,特别是在网络负载较大时,网络寿命的延长效果更为明显。


图1为本发明中的路由建立过程流程图具体实施方式
下面结合附图对本发明的实施例作详细说明本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本实施例在网络仿真软件NS-2(版本2.30)中进行,该软件是一种免费的网络性能测试软件,可以直接从网上下载。
本实施例中路由建立过程实施如下1.源节点s有数据发送请求时,首先判断是否存在到达目标节点d的有效路由,如果存在则用此路由发送数据包;否则,调用发送请求(sendRequest)过程发送请求蚂蚁分组进行路由搜索,并将发送方式设置成广播,该请求蚂蚁分组初始化为Packet Type=Request_Ant,Hop Count=0,Remain Energy=节点剩余能量,Energy Cost=0,Destination Address=d,Source Address=s。
2.节点对请求蚂蚁分组的处理都在接收请求(recvRequest)过程中实现,节点收到来自节点i的请求蚂蚁以后,首先判断自己是不是该请求蚂蚁的源节点,如果是则丢弃该请求蚂蚁分组,否则,按照发明内容中步骤二中的计算方法对该路径进行性能评估、更新反向信息素表。判断自己是不是目标节点,如果不是,则继续调用转发(Forward)过程转发该请求蚂蚁。
3.如果自己就是目标节点,则根据反向信息素表中对应于源节点s和邻居节点的信息素值计算各邻居节点的选择概率psdi,然后采用轮盘赌法选择返回s的下一跳节点,然后对信息素表进行更新,并调用发送响应(sendReply)过程向该选择的节点单播应答蚂蚁分组。
4.节点对应答蚂蚁分组的处理在接收响应(recvReply)过程中实现,首先更新对应于目标节点d的路由条目,将下一跳节点设置成该应答蚂蚁分组的发送者,并且将该路由条目的路由能量设置成该节点的剩余能量,用当前时间更新该路由条目的生命期。然后判断自己是否该应答蚂蚁所请求的源节点,如果不是,则根据反向信息素表中对应于源节点s和邻居节点的信息素值计算各邻居节点的选择概率psji,然后采用轮盘赌法选择返回s的下一跳节点,然后对信息素表进行更新,并向该选择的节点单播应答蚂蚁分组。
5.如果自己就是源节点,则丢弃该应答蚂蚁分组,路由建立过程结束。
本实施例中路由维护过程可以在网络仿真软件NS-2(版本2.30)的定时器处理函数中实现,通过检查路由条目的生命期是否到期,或者节点当前剩余能量和路由能量的比值是否低于阈值(实验中设置为60%),如果以上条件有一个满足,则将该路由条目设置成无效(Invalid)状态,下一次需要用到该路由条目时则会强制重新进行路由发现过程。
本实施例通过在网络仿真软件NS-2(版本2.30)中进行仿真,在仿真试验中,选用25个节点均匀分布在500米×500米的区域,节点最大传输距离为150米,并且采用512bytes的恒定数据流(CBR)作为测试数据源,当网络节点初始能量都相同时,采用本发明的路由方法可以使网络寿命相对于采用AODV作为路由时延长至少15%,特别是在网络负载较大时(20个CBR分组/秒),网络寿命可以延长5倍。
权利要求
1.一种基于蚁群算法的无线自组网络节能按需路由方法,其特征在于,包括路由建立和路由维护两部分,其中所述的路由建立,具体为通过源节点向网络广播路由请求蚂蚁,分布式地搜索网络状态信息,将这些信息进行规范化处理以后保存在一种与源节点和邻居节点相对应的反向信息素表中,目标节点收到请求蚂蚁以后,根据请求蚂蚁收集到的节点能量、跳数和传输能耗等信息,采用轮盘赌法选择一个节点作为下一跳节点,单播出路由应答蚂蚁,并依此方法逐跳返回到源节点,同时在返回的过程中建立从源节点到目标节点的路由;所述路由维护,具体为节点周期性的检查自身的剩余能量与路由表中相应路由条目的路由能量的比值和该路由条目的生命期,当节点剩余能量和路由能量的比值小于某一个阈值或者生命期结束时,则将该路由条目设置成无效状态,这样在下一次需要使用该路由条目时,就需要触发新的路由发现过程。
2.如权利要求1所述的基于蚁群算法的无线自组网络节能按需路由方法,其特征是,所述路由建立,包括以下步骤步骤一源节点s有数据发送请求时,首先判断是否存在到达目标节点d的有效路由,如果存在则用此路由发送数据包,否则,广播路由请求蚂蚁分组进行路由搜索;步骤二中间节点j收到来自节点i的请求蚂蚁,首先判断自己是不是该请求蚂蚁的源节点,如果是则丢弃该请求蚂蚁分组,否则,对该请求蚂蚁分组进行评估,得出其规范化的评估值Msji,然后判断中间节点j的反向信息素表中有没有对应于源节点s、邻居节点i的信息素条目,如果没有,则建立对应于(s,i)的信息素条目并将该条目的信息素值初始化为0,比较Msji与(s,i)对应的信息素条目的信息素值,如果Msji更大些,则用节点j的剩余能量代替该请求蚂蚁分组的剩余能量,用重新计算的能量消耗代替该请求蚂蚁分组的路径能耗,跳数加一,然后转发该请求蚂蚁分组,如果Msji较小,则丢弃该请求蚂蚁分组,最后更新反向信息素表;步骤三目标节点d收到该请求蚂蚁分组时,首先对此分组进行评估,并更新对应的信息素表,然后根据反向信息素表中对应于源节点s和邻居节点的信息素值计算各邻居节点的选择概率psdi,表示在目标节点d选择节点i作为下一跳节点返回到源节点s的概率,根据节点的选择概率选择返回s的下一跳节点以后,对信息素表进行更新,并向该节点单播路由应答蚂蚁分组;步骤四中间节点j接收到应答蚂蚁分组以后,首先更新对应于目标节点d的路由条目,将下一跳节点设置成该应答蚂蚁分组的发送者,并且将该路由条目的路由能量设置成该节点的剩余能量,并更新该路由条目的生命期,然后计算各邻居节点的选择概率psji,并选择一个返回s的下一跳节点,对信息素表进行更新以后向所选择的节点单播应答蚂蚁分组;步骤五源节点s收到返回的应答蚂蚁分组以后,更新对应于目标节点d的路由表条目,丢弃该应答蚂蚁分组,路由建立过程结束,源节点s就按照所建立的路由向目标节点d发送数据包;所述路由维护中,节点周期性的检查自身的剩余能量与路由表中相应路由条目的路由能量的比值和该路由条目的生命期,当节点剩余能量和路由能量的比值小于某一个阈值或者生命期结束时,则将该路由条目设置成无效状态,这样在下一次需要使用该路由条目时,就需要触发新的路由发现过程。
3.如权利要求2所述的基于蚁群算法的无线自组网络节能按需路由方法,其特征是,步骤二中,所述的对该请求蚂蚁分组进行评估,得出其规范化的评估值Msji,采用以下公式进行Msji=exp(γ1Rje+γ2Rjh+γ3Rjc)]]>其中Msji表示源节点s发出的请求蚂蚁经过节点i到达节点j这条路径的性能评估;Rje=eiE0,]]>表示请求蚂蚁携带的前一节点的相对剩余能量;Rjh=1-hjHmax,]]>表示规范化的请求蚂蚁所经过的跳数;Rjc=1-cjCmax,]]>表示规范化的分组在该路径上传递所消耗的能量;γ1、γ2和γ3为各QoS指标的权重系数。
4.如权利要求2所述的基于蚁群算法的无线自组网络节能按需路由方法,步骤二中,所述节点的反向信息素表中,横轴对应于节点j所收到的各请求蚂蚁对应的源节点,纵轴表示节点j的邻居节点,每个源节点和邻居节点对应一个信息素值τsji,表示节点j收到从节点i转发的来自源节点s的这条路径的性能评价值,信息素表反映了请求蚂蚁所搜集的当前网络状态信息。
5.如权利要求2所述的基于蚁群算法的无线自组网络节能按需路由方法,其特征是,步骤二中,所述更新反向信息素表,采用如下公式τsji(t)=MsjiMsji>τsji(t-1)(1-ρ)τsji(t-1)otherwise]]>其中τsji(t)表示t时刻节点j收到从节点i转发的来自源节点s的这条路径的信息素值,ρ表示信息素挥发系数,上式表明,当前路径的性能评估值高于节点以前发现的路径对应的信息素时,对其对应的信息素值进行更新,否则对其信息素进行挥发处理。
6.如权利要求2所述的基于蚁群算法的无线自组网络节能按需路由方法,其特征是,步骤三,所述根据反向信息素表中对应于源节点s和邻居节点的信息素值计算各邻居节点的选择概率psdi,计算公式如下psdi=τsdiΣk∈{1,2,Λ,Nd}τsdk]]>其中psdi表示在目标节点d选择节点i作为下一跳节点返回到源节点s的概率;τsdi为源节点s和邻居节点i所对应的信息素的量,{1,2,Λ,Nd}表示节点d的所有邻居集合。
全文摘要
本发明涉及一种信息技术领域的基于蚁群算法的无线自组网络节能按需路由方法,包括路由建立和路由维护两部分。其中路由建立步骤为1)源节点广播请求蚂蚁搜索网络的状态信息,并经过规范化处理后保存在各节点的反向信息素表中;2)目标节点收到请求蚂蚁以后,立即产生应答蚂蚁,并采用概率选择的方法选择一个邻居节点作为下一跳返回源节点;3)在应答蚂蚁返回源节点的过程中建立从源节点到目标节点的路由。路由维护主要是将能量参数引入路由维护中,当路由路径上的节点能量消耗过多时,就强制进行新的路由发现过程,避免节点过早死亡。
文档编号H04L12/56GK101083616SQ200710043430
公开日2007年12月5日 申请日期2007年7月5日 优先权日2007年7月5日
发明者陈佳品, 双兵, 李振波 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1