童孟军 ,俞 立,郑立静,董齐芬
(1.浙江工业大学信息工程学院,杭州 310032;2.杭州电子科技大学计算机学院,杭州 310018)
无线传感器网络(Wireless Sensor Network,WSN)[1]是继Internet之后随着无线通信技术、传感器技术、微电子技术和分布信息处理技术发展起来的一种新兴信息获取技术。WSN综合了嵌入式技术、传感器技术、通信技术和分布式信息处理技术,能够协作实时感知、监测、采集网络分布区域内的各种环境的信息,并对数据进行适当的处理以获得精简准确的信息,并传送给最终的用户。
无线传感器网络由于节点能量有限,这给传感器网络路由协议的设计提出了巨大挑战。将蚁群算法应用于路由协议的设计中,利用蚁群算法的网络分布式、个体简单而群体智能表现出优化等特点很好的均衡了网络负载,延长了网络寿命,近年来引起了中外研究人员的广泛关注,已逐渐成为当前无线传感器网络路由设计研究领域的热点。
随着各种智能算法的相继出现,越来越多的学者将它们应用于无线传感器网络路由协议的研究中,而蚂蚁寻找食物的行为与网络中节点寻找路由的过程十分相似,因此基于蚁群算法的传感器网路由协议得到了大量的关注。文献[2-3]给出了关于蚁群算法的概述性的介绍,基于蚁群的网络路由协议的典型代表有Kassabalidis等人提出的AntNet算法[4]。然而 AntNet是面向有线网络的,文章[5]对蚁群算法作了改进,提出了ACRA算法,文章[6]在DD算法的基础上将蚁群优化应用到路由算法中,提出了ARAWSN算法,文章[7]在ACO算法的基础上提出了一种基于预测模式的蚁群优化算法,文章[8]提出了 AntHocNet算法,文章[9]提出了ARAMA 算法,ANSI[10]和 ARA[11]都是基于智能蚁群算法的按需路由协议。
本文将蚁群算法的特点与无线传感器网络路由设计的要求结合起来,对各蚁群路由算法的特点进行了研究和总结,在此基础上提出了一种改进的适用于无线传感器网络的蚁群路由协议,实验表明它表现出了更好的性能。
Marco Dorigo等人在1998年提出了AntNet协议[12],在AntNet协议中,每个节点维护一张路由表和另外一张附加的表,这张附加表中包含着网络蚂蚁流量分布的信息,记录着蚂蚁经过的节点。在路由表的每条表项中,记录着目标节点地址和到达目标节点地址的下一跳的启发式信息值。但是AntNet蚁群路由算法是应用在有线网络中的,由于它所带来的良好的网络路由性能吸引了国内外研究学者在AntNet基础上进行了广泛的研究,大多无线自织网络中的蚁群路由算法都是在AntNet协议基础上发展而来的。
Gunes等人提出的ARA(ant colony based routing algorithm)算法[13]是最早的将ACO算法应用于移动自组织网络的算法。在ARA中,路由表的每条表项也包含着用于计算选择下一跳概率的信息素值,这个信息素的量随着时间的流逝而逐渐挥发。路由表中的信息素值减小到一定的阈值以下后节点进入到休眠模式。在路由发现阶段,ARA同样使用前向蚂蚁和后向蚂蚁共两种蚂蚁来进行路由建立操作。ARA的路由维护过程不需要特殊的数据包,而是在数据传输过程中进行的。如果源节点收到一个路由失败通知,它就重启动一个路由发现过程。ARA的缺点是不适合大规模的网络并且不提供回路检测。
O.Hossein和T.Saadawi等人在2004年提出了ARAMA(ant routing algorithm for mobile ad hoc networks)协议[14],它是一个主动式的路由协议。在其他的ACO路由协议中,前向蚂蚁的主要任务是收集路径信息。而在ARAMA中,前向蚂蚁不仅关心跳数信息,还收集所经过的路径上的链路的信息比如节点能量和队列延迟的大小等。ARAMA定义梯度(grade)的概念,这个值由后向蚂蚁返回的途中进行计算并保存在节点中。后向蚂蚁在返回源节点的过程中,使用梯度值对节点中的路由表进行更新,以一定的信息素更新策略对信息素进行更新。文章中作者指出,路由发现和维护的代价通过控制前向蚂蚁的产生速率来减小,但并没有指出在动态变化的拓扑环境中怎样去控制这个数据产生速率。
Di Caro等人在2005年提出了AntHocNet协议[15],这个协议结合了AntNet和ARA两个协议的优点,表现出更加优秀的性能。在AntHocNet中,人工蚂蚁维护着一个节点列表,记录着它访问过的所有节点。源节点发出前向蚂蚁,如果一段时间后如果收到了所有后向蚂蚁,则称之为一个蚂蚁路由周期结束。如果在计时期结束没有收到后向蚂蚁,节点向它所有的邻居广播链路失效信息,然后邻居节点启动按需路由发现过程。AntHocNet协议是一种混合式路由协议,但路由维护过程需要有大量的蚂蚁,另外,每个节点保存着一张它所有可达目的节点的路由表,所以,对于规模大的网络AntHocNet并不太适合。
Laura Rosati等人在2008年提出DAR(Distributed Ant Routing)协议[16],它是一种按需的路由协议,相对于主动式路由,它可以减少路由时的网络负载。前向蚂蚁只负责收集关于交叉节点的ID信息,它在使用概率公式计算选择下一跳节点的概率时只使用信息素值作为参数。而后向蚂蚁在返回过程途中只释放常量值的信息素值。在DAR中,每个路由节点中路由表都是随机的:下一跳节点是依据概率值的大小进行选择的。这个概率值是通过以前蚂蚁走过时留下的信息素进行计算的。但是DAR算法要让蚂蚁记录经过的节点,不适用于大型网络,同时也容易陷入局部最优解,网络的收敛速度也不快。
无线传感器网络路由设计的指标之一就是尽可能的节省能量,延长网络寿命。上述蚁群路由算法中,在带有记忆功能的前向蚂蚁中存储着它访问过的所有节点的ID值,而在大型的无线传感器网络中,节点数量往往是成千上万甚至更多,导致蚂蚁的记忆列表越来越长,蚂蚁包的大小随之增大,节点间传输蚂蚁包带来的能耗加剧,网络寿命减少。文章[17]提出一种能量高效的蚁群路由协议EEABR协议,该算法的蚂蚁包只保存两个最近访问记忆列表的ID值。同时在每个节点中增加一个记录发送和接收蚂蚁包的列表,每个记录保存着蚂蚁的上一跳节点,下一跳的转发节点,蚂蚁ID以及生存时间值。实验证明,EEABR协议有效地减少了网络中节点的能耗,延长了网络的寿命,但是EEABR算法也存在着很多不足,包括蚂蚁报文设计、蚂蚁路径概率选择、信息素更新公式以及信息素挥发机制等方面都有可改进之处,本文在EEABR协议的基础上进行研究并改进,提出了改进的基于蚁群算法的能量有效路由协议IEEABR。实验证明该算法延长了网络寿命和提高了能量有效性。
在EEABR协议的基础上,针对该算法的前向和后向蚂蚁包都用相同的数据结构会带来不必要的冗余问题,本文分开定义这两种蚂蚁包,这样就能避免不必要的能量消耗。
前向蚂蚁的数据包结构如图1所示。其中,hp_type是数据包类型,使用它来判断是不是一只蚂蚁包,pkt_src_是蚂蚁产生的源地址,seqno代表着一个节点生成的前向蚂蚁的序列号,蚂蚁源地址与序列号的组合<pkt_src_,seqno>唯一标识一只蚂蚁,node_nbr是一个地址数组,用于记录要发送前向蚂蚁的当前节点的所有邻居地址,节点进行概率选择下一跳时,把node_nbr作为禁忌表,这样可以避免蚂蚁走回头路并且减少了环路出现的可能性。Esum是目前为止前向蚂蚁走过的路径上节点的消耗的能量值之和,Emin是目前为止前向蚂蚁走过的路径上节点的最小能量值,lenFromSrc指当前蚂蚁走过的路径的长度,用节点跳数表示,TTL表示生存时间。
图1 前向蚂蚁数据包结构
后向蚂蚁的数据包结构如图2所示。其中,phe_value代表信息素更新值,由Sink节点计算并赋值,由后向蚂蚁在返回过程中携带,用于信息素更新公式的计算。pkt_dst_表示此后向蚂蚁要到达的目的节点,lenFromSrc代表着后向蚂蚁离开Sink节点的路径长度,从1开始累计。
图2 后向蚂蚁数据包结构
由于蚂蚁包不再记录已访问过的节点ID,这样就需要在每个节点中建立一个蚂蚁访问列表,用于记录访问过该节点的蚂蚁。在节点代理类IeeAbr中增加一个visitedAnts的链式类的指针:
LinkList*visitedAnts;
其中LinkList是一个链式类,它的类结构如图3所示。
图3 LinkList类结构图
本文保留EEABR协议里的用于建立和维护邻居关系的Hello包。这样每个节点都必须保存一个邻居表,用于记录邻居信息。
邻居表项数据结构如图4所示。其中,nb_addr是邻居节点的地址,energy是邻居节点的剩余能量值,通过hello包来主动式的更新。pheromone值是当前节点到此邻居节点的链路上的信息素值,它的初始值我们定义为一个常量值STARTUP_PHEROMONE,在节点的代理类中,它是个静态常量,值为1,随着时间的推移,信息素会以一定的策略进行挥发。hops是从邻居到达Sink节点的跳数值,初始为一个较大常量值BIG_CONSTANT_HOPS,本协议中定为9999,代表着这个邻居还不能转发数据包,我们定义邻居表项中hops字段值小于BIG_CONSTANT_HOPS值的邻居为有效邻居,当一个节点收到一只后向蚂蚁时,则更新邻居表中相应hops的值。其中,last_update_time是最后一次更新这个表项的时间值。
图4 邻居表项结构图
在IEEABR协议中,如果中间节点r收到一只sant,如果这只蚂蚁不在它的visitedAnts列表中,则这个节点按式(1)计算选择下一跳的节点概率:
其中,Pk(r,s)是前向蚂蚁k在传输的过程中从节点r选择移动到s节点的概率大小,τ(r,s)是存储在节点r的路由表中的链路(r,s)上的信息素值的大小,η(s)是节点r到节点s的链路上启发式信息,即人工蚂蚁释放的信息素浓度,Nr代表蚂蚁包中的node_nbr节点地址数组,本文对η(s)的含义做了改进,如式(2)所示:
其中Einit为传感器节点能量初始值,E(s)为节点s的剩余能量,Einit-E(s)是节点消耗的能量值。从公式可以看出节点能量消耗较小的邻居节点更容易成为下一跳节点,有利于平衡网络能量消耗,延长网络寿命。
在EEABR协议中,前向蚂蚁在从源节点到Sink节点的传输过程中,并没有对路径上的信息素进行更新,而Jing Yang等人[18]在研究中发现,如果前向蚂蚁在每一跳转发过程中也对链路的信息素进行更新,则会使算法的快速收敛取得更佳的效果。在本文的IEEABR协议中,前向蚂蚁与后向蚂蚁均按式(3)对链路上的信息素值进行更新:
其中ΔTk(r,s)对于前向蚂蚁和后向蚂蚁计算方法不同。对于前向蚂蚁,它的任务主要是收集路径上的信息,找到一条到达Sink节点的最佳路径。在IEEABR协议中,前向蚂蚁的ΔTk按式(4)进行计算:
其中Emin是前向蚂蚁k从源节点到当前节点所走过的路径上的节点能量最小值,E(s)是邻居节点s的剩余能量值,Eavg是蚂蚁k从源节点到当前节点所走过的路径上的节点消耗能量的平均值,k1,k2,k3分别代表以上三部分能量的权值,从式(4)中看出,前向蚂蚁k在具有能量瓶颈的路径上释放的信息素较少,并且在计算时考虑到了当前邻居的节点能量值大小,以引导后来的蚂蚁将能量较大的邻居作为下一跳,同时还从全局的角度考虑了蚂蚁搜寻路径上能量消耗情况,从算法的整体性能上来看,它有利于均衡网络能量消耗,延长网络平均寿命。对于后向蚂蚁,ΔTk(r,s)按式(5)进行信息素的更新:
其中Bdk是后向蚂蚁k经过的路径长度,用节点跳数来表示。k4,k5系数,代表E(s)与Bdk的权值,反映这两个变量的相对重要性。ΔTk参考[17],由Sink进行计算,ΔTk的计算如式(6)所示:
其中Einit为节点能量初始值,Fdk代表前向蚂蚁所访问的节点数。每当Sink收到一只前向蚂蚁时就计算此值并放到相应的新生成的后向蚂蚁的phe_value字段中。
最后Sink节点释放前向蚂蚁并把后向蚂蚁发送给源节点。后向蚂蚁在返回的途中,按式(3)和式(5)对所经过的每个节点进行信息素的更新。后向蚂蚁在返回过程中,不仅考虑到路径长度,还考虑到当前下一跳邻居的能量值。对于离Sink节点较近的节点,后向蚂蚁在其邻居的链路上释放较多的信息素,可以加速蚁群算法的收敛。同样,当前邻居节点能量的因素可以平衡网络消量消耗,避免能量较小的节点由于过多的转发蚂蚁而导致快速死亡,可以有效延长传感器网络的平均寿命。
IEEABR算法在EEABR算法上做了较大的改动,算法的具体过程可以描述为:
(1)在协议运行初始阶段,先进行hello包的广播,建立起节点与其邻居的之间一个相互关系,初始时每个具有邻居关系的链路上的信息素设置为1;
(2)对于每一个非Sink节点生成各自的第一只前向蚂蚁并选择按概率选择公式下一跳进行发送,各个节点上蚂蚁生成的独立且同步进行的,每只蚂蚁的生成时间都由随机数生成器来控制;
(3)每个中间节点收到IEEABR数据包之后进行判断,报文类型有三种,分别是IeeAbrTYPE_HELLO、IeeAbrTYPE_SANT和IeeAbrTYPE_BANT;
(4)如果是类型IeeAbrTYPE_HELLO,则表明这是邻居发来的信息,先判断当前节点是否已经有当前邻居的信息,如果没有,将此邻居信息加入邻居表,否则对邻居表项内容进行更新处理;
(5)如果节点收到一只前向蚂蚁,即类型Iee-AbrTYPE_SANT,节点判断是否达到Sink节点,如果已到达Sink节点,则生成后向蚂蚁并让前向蚂蚁死亡,如果没有到达Sink节点,说明当前节点是中间节点,此前向蚂蚁需要进行下一跳的转发。如果TTL的生命期还没到,则随机生成一个0到1间数,如果小于0.001,则从有效邻居中均等概率随机选择下一跳进行转发,否则按式(1)计算概率选择下一跳邻居节点。然后对前向蚂蚁各字段的信息进行更新并将它加入到当前节点的蚂蚁访问列表,根据式(3)和式(4)对邻居表信息素进行更新,转发前向蚂蚁,转到步骤(3);
(6)前向蚂蚁到达Sink节点后生成相应的后向蚂蚁并死亡。节点收到一只后向蚂蚁,即类型为Iee-AbrTYPE_BANT,首先判断是否到达源节点,如果没有到达源节点,则更新后向蚂蚁信息,并按式(3)和式(5)对链路信息素进行更新,按记录下的前向蚂蚁的反向路径转发到下一跳,然后删除邻居表中相应前向蚂蚁的记录,转到步骤(3)。如果回到源节点,则表示蚂蚁已经成功找到一条从源节点到目的Sink节点的一条路径,从节点的蚂蚁访问列表中删除相应前向蚂蚁的记录,后向蚂蚁死亡,转步骤(7)。
(7)节点判断是否发送前向蚂蚁,如果是,则转向步骤(2),否则结束。
本实验搭建环境是WindowsXP SP2+cygwin+NS2.29,改进的IEEABR协议源代码是用C++实现的,包括:
将 ieeabr文件夹拷贝到 ~ /ns-allinone-2.29/ns-2.29目录下。然后修改相应的文件:
完成后,打开 cygwin,进入到 ns-allinone-2.29 s-2.29目录下,依次运行 touch common/packet.cc和make两个命令,上文所有添加或修改过的.cc文件都将会被重新编译。编译成功结束后IEEABR协议就添加到了NS2里。EEABR源代码的添加方法类似。
本实验对IEEABR与EEABR这两个协议的性能进行了仿真实验对比,节点的通信半径为20m,基站位置为(0,0),其他节点位置随机播撒,节点数目和场景区域大小将随不同的实验而变化。本文使用First-order Radio Model[19]能量传输模型,发送功率txPower为0.7W,接收功率 rxPower为 0.4W,设置发送和接收电路工作时消耗的能量Eelec为50nJ/bit,设置放大器工作时消耗的能量εamp为10pJ/bit/m2,数据融合时电路的功耗为5nJ/bit。节点初始能量为2J,为保证仿真过程的顺利进行,我们将基站的能量单独设为100J。数据流使用CBR流,数据包大小为256Byte,使用cbrgen工具生成数据流文件,仿真时间为200s。使用gnuplot工具进行画图。
(1)网络能量消耗
网络生存时间的长短与网络消耗的总能量成反比,消耗越少的能量其网络生存的时间就越长。网络消耗的总能耗又与每个节点的平均能耗息息相关。
本文定义节点平均能量消耗为模拟时间之内消耗能量总量与节点数目之比,这里进行两组实验,第一组实验场景按100~500不同节点数目进行比较,节点数目从100~500每次增加100个节点,网络节点随机安置在800 m×600 m的矩形区域内,节点部署好之后静止或作小量移动。为了减小随机性带来的影响,不同节点数目场景下分别进行50次实验并取平均值,实验结果如图5所示。第二组实验查看节点平均能耗随时间上升的情况,选取300个节点的网络,在场景大小为600 m×600 m的正方形区域中随机部署进行仿真实验,所有节点都是静止。实验重复进行50次并取平均值,节点平均能耗随时间变化的实验结果如图6所示。
图5 节点平均能耗随节点数量变化图
图6 节点平均能耗随仿真时间变化图
从图5可以很明显地看出,IEEABR协议比EEABR协议在单个节点平均能耗上性能有了较大的提高。特别地,当节点数目为300时,模拟时间结束后IEEABR协议的节点平均能耗比EEABR减少近26%。图6中,时间小于50s时,EEABR的节点平均能量消耗小于IEEABR协议,这是可以理解的,因为IEEABR的前向蚂蚁携带着节点的邻居表,在开始阶段收发前向蚂蚁报文的开销比EEABR协议要大,但随着时间的进行,模拟时间大于60之后,EEABR的节点平均能耗增长速度明显大于IEEABR协议,这是因为,IEEABR协议的每只前向蚂蚁携带了上一跳节点的所有邻居节点,选择下一跳时避免选择两个节点生命的邻居部分,这样就一定程度上避免了路由环路的发生,同时驱使前向蚂蚁向更远的地方搜索,快速找到Sink节点,增加了算法的收敛速度,从而减少了网络中的前向蚂蚁的数量,所以节点平均能量消耗相对较小。
(2)能量有效性
本文中,能量有效性定义为从开始到模拟完成之后这段时间里Sink节点接收到的数据包总数与能量消耗总量的比值。能量有效性也是评价协议性能的重要指标之一,为了对比 IEEABR协议和EEABR协议的能量有效性,实验场景选取传感器节点为100~500的网络,每次节点增加100,节点随机放置在800m*600m的矩形区域内,仿真时间为200s,其他场景设置和参数与上文描述相同。每次实验重复50次并取平均值,实验结果如图7所示。
图7 能量有效性随节点数目变化图
从图7中可以看出,IEEABR协议在节点数目不同情况的能量有效性均高于EEABR,特别地,在节点数目为200时,IEEABR协议的能量有效性比EEABR提高近28%。这是因为,EEABR协议在前向蚂蚁搜寻路径过程中出现环路的可能性远高于IEEABR,由于环路时蚂蚁就会被丢弃,导致节点需要发送更多的蚂蚁去获得最优路径,降低了搜索的效率,并且导致能量消耗增加。尽管IEEABR协议的前向蚂蚁多加了一个邻居表地址数组node_nbr,但从网络整体能量消耗的有效性而言,IEEABR协议比EEABR协议更优。另外,随着网络规模的扩大,两个算法的能量有效性都在逐渐增加,当在节点数目为300时,两个算法的能量有效性都高于20%。这是因为,随着网络规模的扩大,节点密度增加,节点通信距离减小,节点间通信消耗的能量也随之减少,所以能量消耗有效性增加。
(3)网络生存时间
本文中,为了对比IEEABR和EEABR协议的网络生命时间,我们进行了两组实验,分别采用第一个节点死亡时间和网络生存节点个数作为网络寿命的评价指标进行考察对比。第一组实验选取节点数目为100~500个节点的网络,每次增加100个节点,在范围800 m×600 m的矩形区域内,所有节点都静止。同样地,不同节点数目的实验各进行50次,最后取平均值。第一个节点死亡时间随节点数目变化的情况如图8所示。第二组实验选取300个节点的网络,传感器节点随机安置在一个800 m×600 m的矩形区域内,网络部署好之后所有节点都是静止的,实验重复进行50次,并取平均值。网络生存节点个数随模拟时间的变化情况如图9所示。
图8 第一个节点死亡时间随节点数目变化图
图9 网络生存节点个数随时间变化图
图8很明显地反映出在仿真过程中,IEEABR协议第一个节点的死亡时间要比EEABR晚。并且从图中还可以看出,两个算法在网络规模小于300个节点的时候,随着网络规模的增加,网络寿命都相应延长,而在网络结点个数大于300的时候,网络寿命都相应地减少。这是可以理解的,因为网络规模过小,传感器节点间的距离增加,数据传输所耗费的能量增加,网络寿命减少。而如果网络规模过大,则蚂蚁找到一条源节点到Sink节点间路径的时间增加,导致算法收敛速度减小,能耗随之增加,同时节点密度增加后,广播hello包的数量也增加,网络能耗增加,网络寿命减小。从图9中可以看出,从开始到100 s时刻的这段时间里,IEEABR协议没有节点死亡,而EEABR协议从70 s开始有节点持续死亡。IEEABR在时间170 s之后死亡节点将逐渐减少,生存节点总数基本维持在250个左右,而EEABR节点时间进行到170 s之后,生存节点个数将维持在240个左右。
本文在大量研究无线传感器网络路由协议特点及蚁群算法理论的基础上,对Carreto C.等提出的能量有效的蚁群路由算法(EEABR)进行了研究分析。针对EEABR协议在蚂蚁报文设计、概率选择及信息素更新等方面存在的不足,本文提出了基于EEABR的改进的能量有效的蚁群路由算法(IEEABR)。为了验证改进算法是否适应课题的要求,使用NS2开源软件平台对IEEABR和EEABR协议进行了仿真实验,并做了大量的实验比较和分析。经过多组仿真实验和分析,可以看出,无线传感器网络中采用改进的蚁群路由算法IEEABR协议,相比改进前的EEABR路由协议,网络的性能有了很大的改善。
本文改进蚁群路由算法具有能量高效、网络负载均衡,鲁棒性,正反馈性和分布式计算等优点,已经显示出它在无线传感器网络路由方面的优势。
[1]Akyildiz Lf,Su W l,Sankarasubramaniam Y,et al.A Survey on Sensor Networks[J].IEEE Communications Magazine,2002,40(8):102-114.
[2]Dorigo M,Birattari M,Stutzle T.Ant Colony Optimization:Artificial Ants as a Computational Intelligence Technique[J].IEEE Computational Intelligence Magazine,2006,1(40):28-39.
[3]Blum C.Ant Colony Optimization:Introduction and Recent Trends[J].Physics of Life Reviews,2005,2(4):353-373.
[4]Di Caro G,Dorigo M.AntNet:Distributed Stigmergetic Control for Communication Networks[J].Journal of Artificial Intelligence Research,1998,9(1):317-365.
[5]耶刚强,梁彦,孙世宇.基于蚁群的无线传感器网络路由算法[J].计算机应用研究,2008,25(3):715-717.
[6]梁华为,陈万明,李帅.一种无线传感器网络蚁群优化路由算法[J].传感技术学报,2007,20(11):2450-2455.
[7]黄如,苗澎,陈志华.基于预测模式蚁群优化的传感网节能路由机制[J].传感技术学报,2010,23(5):701-707.
[8]Di Caro,Ducatelle F,Gambardella L.AntHocNet:An Adaptive Nature-Inspired Algorithm for Routing in Mobile Ad Hoc Networks[M].European Transactions on Telecommunnications,2005,16(5):443-455.
[9]Hussein O H,Saadawi M J,Lee M.Ant Routing Algorithm for Mobile Ad Hoc Networks(ARAMA)[J].Phoenix,Arizona,2004:15-17.
[10]Rajagopalan S,Shen C.ASNI:A Unicast Routing Protocol for Mobile Ad Hoc Networks Using Swarm Intelligence[C]//Proceedings of the International Conference on Artificial Intelligence,Italy,2005:24-27.
[11]Mesut Gunes,Udo Sorges,Imed Bouazizi.ARA:The Ant-Colony Based Routing Algorithm for MANETs[C]//Proceedings fo the 2002 International Conference on Parallel Processing Workshops,Aachen,2002:79-85.
[12]Di Caro G,Dorigo M.AntNet:Distributed Stigmergetic Control for Communication Networks[J].Journal of Artificial Intelligence Research,1998,9(1):317-365.
[13]Mesut Gunes,Udo Sorges,Imed Bouazizi.ARA:The Ant-Colony Based Routing Algorithm for MANETs[C]//Proceedings fo the 2002 International Conference on Parallel Processing Workshops,Aachen,2002:79-85.
[14]Hussein O H,Saadawi M J,Lee M.Ant Routing Algorithm for Mobile Ad Hoc Networks(ARAMA)[J].Phoenix,Arizona,2004:15-17.
[15]Di Caro,Ducatelle F,Gambardella L.AntHocNet:An Adaptive Nature-Inspired Algorithm for Routing in Mobile Ad Hoc Networks[M].European Transactions on Telecommunnications,2005,16(5):443-455.
[16]Laura R,Matteo B,Cgianluca.On Ant Routing Algorithms in Ad Hoc Networks with Critical Connectivity[R].Ad Hoc Network Journal,2008,6(6):827-859.
[17]Camilo T,Carreto C,Silva J S,et al.An Energy-Efficient Ant-Based Routing Algorithm for Wireless Sensor Networks[C]//Proceedings of ANTS 2006-the 5th International Workshop on Ant Colony Optimization and Swarm Intelligence,Brusels,Belgium,2006:49-59.
[18]Yang J,Xu M,Zhao W.A Multipath Routing Protocol Based on Clustering and Ant Colony Optimization for Wireless Sensor Networks[Z].SENSORS,2010,10(5):4521-4540.
[19]Heinzelman W,Chandrakasan A,Balakrishnan H.Energy-Efficient Communication Protocol for Wireless Sensor Networks[J].Proc of Hawaii International Conference on System Sciences,Washington DC,2000:175-187.