-
无线传感器网络(Wireless sensor networks,WSNs)是由传感器节点组成的通信重要平台之一,旨在完成某些任务[1-2].由于小型、低成本和智能传感器的发展,无线传感器网络已经变得更加流行.无线传感器网络适用于环境监测、目标检测、事件跟踪和安全监控等领域[3-5].在WSN中如果节点处于彼此的无线范围内则节点彼此连接.这些自治节点可以从环境中收集感测数据并以分布式执行算法以形成自组织网络.基于本地进程,节点可以决定将感测数据传输到专门的汇聚节点,该汇聚节点充当WSN与其用户之间的网关.在典型的多跳传感器网络应用中,数据可以被聚集并中继到宿,或者命令可以从宿发送并且与一些中间节点一起转发以到达目标节点.
在同构网络中传感器在存储、处理、传感和通信方面具有相同的功能[6],异构网络使用具有不同功能的传感器[7-8].无线传感器网络的2种重要报告机制是事件驱动型和周期性的,在事件驱动沟通中由某些事件或查询随机触发的,并且是周期性驱动的通讯;传感器以恒定的周期性间隔收集和传输数据,如果所有传感器节点都将数据传输到接收端,则能耗会更高.数据聚合是通过利用网内处理并减少数据包传输数量来消除原始数据固有冗余的最佳解决方案[9].
降低能耗是WSNs需要解决的关键问题.为了最大限度地降低能耗并提高可扩展性,已经有节能WSNs协议的研究.文献[10]提出了一种多级聚类和无结构算法相结合的WSNs混合方法,该算法开发了实时无线传感器网络应用中的多级数据感知聚合技术(MDA),该混合算法可以提高聚合增益和能量消耗.文献[11]提出了基于模糊和蚁群优化的组合MAC,路由和不等群集无线传感器网络跨层协议(FAMACROW),FAMACROW使用模糊逻辑和剩余能量,相邻节点的数量以及通信链路的质量作为簇头选择的输入变量,能够达到节能和增加网络寿命的目的.文献[12]提出了一种基于改进的粒子群优化算法来延长网络寿命的新方法,该算法是一种用于选择目标节点的优化方法.该协议考虑了能量效率和传输距离,并且使用中继节点来缓解簇头的过度功耗,所提议协议导致更好的分布式传感器和均衡的群集系统,从而提高网络的使用寿命.
在研究了现有WSNs协议的基础上,为了进一步提高节能效率和延长网络寿命,本文提出了一个新的WSNs协议,即能量有效的蚁群优化数据传输(Energy Efficient Ant Colony Optimized Data Transmission,EEACODT)协议,用于传感器节点在发生特定事件时将数据传输到接收器,研究了最小化能量消耗的主动/睡眠调度问题. EEACODT根据汇聚节点距离将网络划分为多个扇区,在网络中选择簇首(Cluster Head,CH)的距离被认为是BS的距离.当网络中发生事件时,选定的CH可以汇总数据以供传输. EEACODT考虑节点对BS的选择,从队列大小和剩余能量来选择中继CH.将显示基于优化技术所提议的协议减少能量消耗,减少延时并且增加包传送比率.
全文HTML
-
EEACODT协议将根据距离汇聚节点的距离将网络划分为多个扇区,根据扇区位置为节点分配特定的活动时间,以此来实现高效节能,EACODT扇区的形成如图 1所示. EEACODT协议分为5个步骤,具体流程见图 2.
-
对于无线传感器网络的能量模型可进行如下设置:将N个传感器节点放置在M×M个感测区域中,BS和传感器节点在部署后是静态的,BS的位置在传感场内,节点不知道在网络领域的位置.基于接收到的信号强度,节点可以计算节点之间的距离,CH可以将汇总的数据传送给BS,参数如自由空间损耗εfs和多径衰落εmp用于网络中的数据传输.发送器用于将数据传输到距离d的能量消耗量在式(1)中给出.
其中lEelec表示接收lbit消息所需的能量,可以用ER(l)表示,d0表示阈值传输距离,其表达式为
-
多扇区形成和簇首选择可以分为5个部分:邻居节点检测、CH选择与簇形成、多扇区形成与主动时间分配、事件识别和事件聚合.
(1) 邻居节点检测
网络中的每个节点将兴趣消息neighbor_dscvr发送到距源节点阈值距离内的节点,通过向源节点发送确认(ACK),听到消息的节点成为源节点的邻居.源节点在收到阈值距离内邻居的ACK信号后创建一个Ack_list.重复该过程,直到网络中的所有节点都能够找到它们各自的邻居.
(2) CH选择和簇形成
聚类是传感器网络降低能耗被广泛接受的方法,只有CH可以在每个簇中执行数据聚合和网内处理,以减少需要传输到BS的数据量.在邻居节点检测阶段之后,节点进入簇形成阶段,邻居节点等待来自源节点的广播消息(form_cluster).广播消息form_cluster指示源节点ID(Nodeid),簇ID(Clusterid),源节点能量(Node_energy)以及从CH到簇成员的最大跳数(hopsmax),到BS的距离(dist_BS)和消息到达n个邻居节点的时间(TTEmax).
听到这个广播消息的邻居节点将与源节点比较其Node_energy和dist_BS,如果邻居节点尚不是另一个簇的成员并且在hopsmax内,则加入到源节点簇,节点可以重置其参数,如Clusterid和CH_ID.具有最高Node_energy和最低dist_BS的节点在每个簇中被选为簇首.
(3) 多扇区形成和主动时间分配
根据汇聚节点的距离,EEACODT将网络划分为多个扇区.扇区的形成从sink位置开始,在EEACODT中,P0是sink的位置,R1是汇聚节点的径向距离,属于此范围的CHs是扇区1的簇.为了选择下一个扇区CH,EEACODT将径向距离值设置为R2,对于径向距离内的所有CH,R1和R2形成扇区2.重复此过程直到所有CH在网络中找到其扇区位置.根据网络中的扇区总数,EEACODT为节点分配不同的活动时间.
根据扇区位置,设置节点的活动时间,即ATsector1>ATsector2>ATsector3>…>ATsector-max,其中AT表示活动时间,为网络中节点分配不同活动时间有助于分配节点的流量负载,与各个扇区中各自的位置成比例.
(4) 事件识别
事件识别阶段负责检查事件并及时将事件数据转发到sink节点.通过与数据感知选播(Data Aware Anycast,DAA)的聚类方案相结合,EEACODT可以传输单个事件和多个事件,网络中的节点检查在指定时间间隔内发生的事件数量. EEACODT中的事件通信过程如下所述.
单一事件:如果网络中发生单个事件,接收事件的节点将向CH发送相关数据,只有CH可以执行聚合并将数据转发到下一个扇区节点.
多个事件:当网络中发生多个事件时,节点不能同时处理所有数据,EEACODT给予最高信号强度事件的优先级,以降低复杂性.为了选择多个事件之间的最高信号强度事件,可以使用基于接收事件信号强度(Receive event signal strength,RESS)的方法.每个事件的RESS值存储在节点的队列中.事件队列以信号强度递减的顺序排序,并从队列中选择最高强度事件,在执行第一个事件之后,将处理队列中存储的下一个事件.如果在处理队列中剩余事件的处理之前发生任何其他事件,则根据其能量将新事件放入队列中.
(5) 事件聚合
只有CH可以在EEACODT中执行数据聚合.只要网络中发生事件,首先EEACODT会检查它是簇成员节点还是CH,如果事件节点是簇成员节点,则节点将数据传输到各自的CH. CH在每个群集中执行数据聚合,CH只将聚合数据传输到下一个最低的扇区CH.
-
在网络中的事件聚合后,EEACODT使用以下过程将数据传输到下一个扇区CH.
(1) 每个CH向所有附近CH广播的Route_select消息选择中继CH.
CH广播包括dist_BS,node_ID,Node_energy和queue_size,接收Route_select的邻居CH将信息存储到CH节点的传输表中.如果节点sj满足式(3)中的给定条件,则CHi选择一个中继CHsj.
其中PRCH(·)表示CH节点传输表,Renergy(·)表示剩余能量,THRenergy表示剩余能量阈值,queue(·)表示队列大小,THqueue表示队列阈值大小,THdist表示阈值距离,dist(·,BS)表示到BS的距离.
式(3)中包含了3个条件,其中第1个条件确保节点sj的剩余能量应该高于阈值剩余能量,第2个条件根据队列大小选择一个中继CH节点.考虑中继CH的队列大小应该足够大于存储来自源节点的数据,并且队列长度应该大于阈值队列大小THqueue.第3个条件确保所考虑的中继CH位于源CH的阈值距离THdist内,THdist确定当前CH和中继CH两者之间的最大可能距离,当前CH将发送数据直接发送到BS,如果没有满足第一条件的中继CHs,即PRCH将是空集. EEACODT结合了上述3个条件选择网络中的中继CH.
(2) 在每个CH,蚂蚁以规则的间隔放置以确定BS的路径.每个蚂蚁通过使用式(4)来确定中继CH.
其中,Pijk被定义为蚂蚁k选择从节点si到节点sj的概率,由第k个蚂蚁选择PRCH(si)的集合,边缘(si,sj)的信息素尾迹值由τij(t)表示,α决定信息素踪迹的相对影响,β检查启发式信息,ηij由式(5)表示:
其中,剩余能量队列REQ是剩余能量与节点可用队列大小之间的比率,较小的队列大小和较大的剩余能量条件下则REQ较大. ηij保证所选择的中继CH是:更靠近源CH、高剩余能量和更小的分组队列大小,如果有更多数目的蚂蚁通过该链路(si,sj),则该路径将被选择.
(3) 如果中继CH更接近源CH,则源CH选择具有高剩余能量和低队列容量的中继CH.
源CH可以存储关于已被蚂蚁访问的所选中继CH的信息,要找到BS的最佳效率路径,EEACODT重复步骤(2)和步骤(3),直到源CH选择了中继CH.
(4) 来自源节点的蚂蚁将通过选择的中继CH节点收集路径信息并最终传输到BS.
在EEACODT中,当第k个蚂蚁到达后,BS开始检查接收到的数据,由第k个蚂蚁创建的路径是S{S0,S1,…,Sm},由第k个蚂蚁收集的数据是S{(S0,dist(s0,s1)),…,(Sm-1,dist(sm-1,sm))},其中源CH是S0,并且目的BS是Sm.
1.1. 网络设置
1.2. 多扇区形成和簇头选择
1.3. 数据传输到BS
-
本节中,在MATLAB和Network Simulator version 2上对本文协议EEACODT进行仿真,模拟了一个由500个传感器节点组成的网络,仿真区域为400 m×400 m的区域,有一个位于(0,0)的汇聚节点,接收器从源节点收集事件数据. EEACODT的仿真参数如表 1所示.
每个传感器节点的传输范围为50 m,而数据传输速率为200 kb/s,每3秒可在选定节点上随机生成任意数量的事件,数据包长度为200 b,每个传感器节点具有0.5 J的初始能量.εfs和εmp分别表示自由空间模型和多路径衰减模型中功率放大所需的能量.
图 3给出了本文算法、FAMACROW协议和PSO协议的能量损耗.
由此可知,能耗随着节点的增加而变大,FAMACROW协议和PSO协议的能量消耗较大,本文EEACODT协议的能量消耗低于其他2种协议,这是因为EEACODT的重要特征是使用ACO有效地选择中继节点,将数据传输到每个簇中传感器节点中的下一扇区和CH旋转策略,均匀地分布在网络中所有节点上的能量消耗,EACODT中的占空比机制降低了节点间的能耗,因此EACODT比使用PSO的FAMACROW协议执行得更好.
图 4给出了节点数不同时各算法的延时指标,可以看出本文算法在不同的节点数上延时都小于FAMACROW协议和PSO协议的延时,本文EEACODT协议的选择路径更趋近于直线,这是因为源节点在选择到达sink节点路径时,将sink节点偏转角度小的节点作为选中的节点,大大降低网络延时.
包传送比率PDR定义为:在成功传递到目的地数据包数目和由源节点发送的数据包的数目之间的比值,并且通过公式(6)给出.
其中,由汇聚节点接收的分组总数和由源节点生成的分组总数分别由Preceived和Pgenerated表示,n表示传感器节点的总数. 图 5给出了不同数据速率各算法包传递比率.
从图 5中数据可以看出,在数据传输过程中,EEACODT中传递的数据包数量远大于使用PSO和FAMACROW协议的数据包数量.在EEACODT协议中,感测区域内没有形成扇形区的限制,如果面积增加,扇区的数量也会增加,EECAODT可以成功地将分组传送到下一个扇区或中继,EEACODT利用ACO算法有效地实现了网络中的数据传输.
-
为了延长网络寿命和提高无线传感器网络的能量效率,本文提出了一种协议,即多事件的能量高效蚁群优化数据传输(EEACODT)协议,用于无线传感器多事件数据传输.该协议根据汇聚节点的距离,EEACODT将网络划分为多个扇区,当网络中发生事件时,选定的CH可以汇总数据以供传输. EEACODT使用蚁群优化(ACO)来实现簇间通信和高效的中继CH选择.基于ACO的中继CH选择由当前CH到中继节点之间的距离、中继节点的队列大小和所考虑的中继节点的剩余能量这3个条件决定.实验表明,与FAMAZROW和PSO协议相比,本文方法在能量消耗、延时和包传递比率性能方面均优于现有方法.未来的工作是采用遗传算法来优化网络中簇头和中继节点的选择,进一步提高无线传感器网络的性能.