浅水环境中基于熵的能量均衡路由优化算法

冯立波 丁魏魏 王金丽 张梅 罗桂兰 陈本辉



摘 要: 浅水环境具有覆盖面积小、水位低、水底环境较为复杂的特点,当在水下部署传感器节点时,其传输路径容易受到水底障碍物、水中杂物、水浪等影响,给水下传感器的路由选择带来困扰。针对浅水中传感器节点路由选择困难、能量消耗不均、生命周期短的问题,提出一种基于熵的能量均衡路由算法。该算法综合多种节点部署形式,在节点均匀分布和非均匀分布两种条件下分别计算传感器网络通信的能量损耗,权衡考虑节点的剩余能量和位置信息来选择下一跳节点,从而均衡网络能耗。利用NS?2仿真工具对该算法的性能进行仿真分析。结果表明该算法能够实现浅水中的节点通信,有效延长网络生命周期。
关键词: 浅水环境; 熵; 能量均衡; 路由算法; 路由优化
中图分类号: TN911?34; TP391; TN915 文献标识码: A 文章编号: 1004?373X(2017)06?0040?05
Abstract: The shallow water environment has the characteristics of small size, low water level and complex underwater environment. When the sensor nodes are deployed in the water, their transmission paths are easy to be influenced by underwater obstacles, debris, waves and so on. Aiming at the problems, such as difficult routing choice, unbalanced energy consumption and short life cycle, a kind of energy balance routing algorithm based on entropy is proposed. In this algorithm, the energy loss model of sensor network communication is calculated under two different conditions of uniform distribution and non uniform distribution of the nodes. The performance of the algorithm is simulated with NS?2. The results show that the proposed algorithm can achieve the node communication in shallow water and prolong the network lifetime effectively.
Keywords: shallow water; entropy; energy balance; routing algorithm; routing optimization
水下傳感器网络由大量低价格、低功耗的传感器节点构成。这些节点通过各种传感器感知、收集信息,并通过中间节点将这些信息传送给基站,广泛应用于湖泊海洋水质监测、水文资源管理等领域[1]。相对于海洋大范围水文监测,浅水环境具有覆盖面积相对较小、深度低,湖底环境较为复杂等特点。更好地将传感器网络应用于高原湖泊的水文监测,已经成为当前的一个研究热点。针对湖泊环境特点,建立传感器网络的通信模型以及将环境监测数据快速传送到监测中心是水下传感器网络应用的中心环节。水下无线传感器网络面临的最大挑战是网络的能量非常有限。传感器网络节点能量供应是一个重要问题,因此需要最大限度地提高节点及网络的能量有效性,提高网络的生存期,是该类网络的主要设计目标之一[2]。本文提出一种基于熵的能量均衡路由算法(EBRABOE)。该算法根据能量损耗模型,综合考虑节点的剩余能量和位置信息来选择下一跳节点,从而平衡网络能耗。当节点确定分布时,主要考虑下一跳到Sink节点的能量消耗来确定下一跳;当节点非均匀分布时,先计算各自下一跳到Sink节点的距离,如果有出现两个节点的距离相等再考虑各自的能耗情况。
1 水下传感器网络通信模型
1.1 布尔感知模型
三维空间的无线传感器网络节点采用布尔感知模型[3]。
在感知模型中,三维传感器网络的覆盖具有等大小、可互相重叠的特性,具备一个球体对空间覆盖的含义。在三维无线传感器网络空间[4?5]中,计算节点之间的最优部署方法,可以转变为计算三维空间中最节约的球覆盖方法,也即是将此问题转换为三维球形的覆盖问题。二维平面上正六边形的蜂窝覆盖是最优的覆盖模型,同理可知,三维空间的最优覆盖形式应该是三个坐标平面的投影都应该是二维空间的最优覆盖形式(即正六边形覆盖),但这种模型是不存在的。因此下面将要对现有的立方格(六面体)、体心立方格(截角八面体)、面心立方格(十二面体)进行比较。
1.2 现有模型的比较
简单立方格的Voronoi单元为立方体(六面体),体心立方格[6]的Voronoi单元为截八面体,面心立方格的Voronoi单元为菱形十二面体。如图1所示,在正六面体、八面体和十二面体下的图形。
其中Voronoi是泰森多边形又称Dirichlet图,它是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。泰森多边形的特性是:每个泰森多边形内仅含有一个离散点数据;泰森多边形内的点到相应离散点的距离最近;位于泰森多边形边上的点到其两边的离散点的距离相等。
用Vvor表示Voronoi单元的体积,R是Voronoi单元的内接球半径,覆盖半径Rf是Voronoi单元的外接球半径,所以由空间几何知识可得表1。
由表1可以看出,当内接球半径R为常数值,体心立方格的覆盖半径最大,即覆盖范围最广。由此可知,体心立方格是三维空间中最节约节点的覆盖形式。
1.3 无空洞覆盖
三维空间中的无空洞覆盖问题可以转换为三维球体覆盖问题。这是由于等大小、可互相重叠的球体对空间的覆盖是基于三维感知模型的三维传感器网络覆盖的固定特性,该特性的存在导致解决三维传感器网络的最优部署问题直接相当于解决三维空间中最节约的球覆盖问题。给出公式[d=43πR3Vvor],可以分别计算得出三种立方格的覆盖厚度d,如表2所示。可以看出三者中体心立方格的覆盖厚度d最小。
1.4 能耗模型
Pd表示数据包被接收的最低功率值,d表示数据包的传输距离,则节点的发送能耗Esend(d)可以表示为:
[Esendd=Pd?T?Eattenuationd] (1)
式中:T表示数据包发送消耗的时间;[Eattenuationd]表示数据包传输距离为d时的能量衰减,表示为:
[Eattenuationd=dλad] (2)
式中:[λ]为能量扩散因子;参数[a=10a(f)/10]由吸收系数a(f)决定,a(f)表示如下:
[a(f)=0.1110-3f21+f2+4410-3f24 100+f2+2.75×10-7f2+3×10-6] (3)
式中:f为载波频率,单位为kHz;吸收系数a(f)的单位为dB/m。
2 算法思想与实现
2.1 算法思想
本文中提出EBRABOE充分考虑了能量均衡因素,考虑两种情况,节点确定分布和非均匀分布。传感器网络上的能量损耗与网络传输的数据量和节点距离基站距离有关[7]。传输的数据量越大,节点距离基站的距离越远,能量损耗就越大,大大降低了网络生命周期[8]。这样就要求算法在确定下一跳时,使具有较大能量且距离基站近的节点有较大的发送数据的机会,使能量较低、远距离的节点发送或接收数据的机率变小。熵被定义为从开始到结束一组节点相对耗能最少的量。这就是基于熵的能量均衡算法思想。
2.2 熵的定义
如果一组节点从开始到结束节点的接收传送能量消耗最小,则这条路径就可以被认为是最优路径。本文取3个量来衡量:节点的位置、能耗及其传感半径。假定a,b为两个相邻的节点,分别距离Sink节点为d0,d1,且d0>d1。
由自由空间传播模型可知,Free Space传播模型假定了一种理想化传播环境,即在发射方和接收方只有一条无障碍的直线路径。H.T.Friis提出了一种接收信号功率的计算公式如下:
[Pd=PtGtGrλ24π2d2L] (4)
式中:d为发送方和接收方的距离;[Pt]为发射信号的功率;[Gt]和[Gr]分别为发送方和接收方的天线增益;L(L≥1)为系统损耗;[λ]为波长。
经过第一次接收数据和发送数据,a节点的相关特征数值表示为:
[Va=posa,x,y,zEconsumea,r-Econsumea,s] (5)
式中:[posa,x,y,z]表示节点的位置;[Econsumea,r]表示节点接收数据消耗的能量;[Econsumea,s]表示节点发送数据消耗的能量。
由上述设定条件可知,假设节点A发送一个数据包到节点B,节点B又把该数据包发送给C,可以认为A到B消耗的能量与B到C消耗的能量大体是相等的即EA?B,EB?C,即转发同样的数据分组时,节点所消耗的能量大体相等,节点能量消耗只与转发数据有关。即[Econsumea,r]为常数,而由上述公式可知:
[Econsumea,s=ε2d0] (6)
式中:d0为节点到Sink节点的距离;ε为无线信号传播参数。同理,b节点的相关特征数值表示为:
[Vb=posb,x,y,zEconsumeb,r-Econsumeb,s] (7)
[Econsumeb,r=Econsumea,r]时发送数据耗能公式为:
[Econsumea,s=ε2d1] (8)
由上述公式中可以看出,定義熵为:
[ENTROPY=Econsumei=Econsumei,r+Econsumei,s] (9)
式中,i表示节点,i[∈1,2,…,n],n表示节点个数。
当熵的值最小,即能量消耗最少时,该条路径为最优路径。
2.3 算法实现过程
算法主要分为4个阶段,首先进行三维虚拟网格剖分,向节点发送广播信息,其次是邻居节点集合建立并获取邻居节点位置信息,然后通过判断节点是否均匀分布,当均匀分布时通过计算节点剩余能量来确定下一跳;当节点是非均匀分布时通过计算到下一跳邻居节点的距离来确定下一跳,最后进入数据稳定传输阶段。
(1) 网络初始化。在此阶段,形成虚拟单元格,每个虚拟单元格根据所处位置有一个标号,方便数据传输,同时每个虚拟单元格内(即一个簇内)的节点都要有一个簇内惟一的ID。如图2所示。
(2) 邻居节点集合建立。产生数据的源节点i以一定的广播半径R广播Hello寻路信息。Hello寻路信息中包含源节点的位置信息和发送功率信息,在广播范围R内的j节点计算出与源节点的度量值d,并且通过自身位置信息和求出的距离来判断能否作为下一跳节点,满足成为下一跳条件的节点以通信距离d向源节点发送应答信息。
(3) 确定下一跳。同时有多个节点对寻路做出应答,那么源节点必须做出选择,选出最佳的下一跳节点。分为以下两种情况:
① 节点确定分布。由上述设定条件可知,假设节点A发送一个数据包到节点B,节点B又把该数据包发送给C,可以认为A到B消耗的能量与B到C消耗的能量大体是相等的即EA?B=EB?C,即转发同样的数据分组时,节点所消耗的能量大体相等,节点能量消耗只与转发数据有关。
每个节点消耗的能量有两方面:与n-1个节点进行数据收发消耗的能量;与Sink节点通信消耗的能量。
参照自由空间模型,即在发射方和接收方只有一条无障碍的直线路径,如图3所示。
A点到Sink节点就只有一条直线路径,有:
[Econsume=n-1Ee+Ee+εd2BS] (10)
式中:[Ee]表示接收或发送數据消耗的能量;dBS表示节点到Sink节点的距离;ε表示无线信号传播参数;n表示节点的个数。Econsume数值越小,表明消耗的能量越小,即剩余能量越多。剩余能量越多,说明采用这种算法建立的路由在数据传输过程中消耗的能量越少,也就是说这种路由算法在保证传输能耗方面具有相对较好的特性;反之,总剩余能量越小,说明这种路由算法在数据传输过程中消耗的能量较大,不利于节省网络能量。
② 节点非均匀分布。每个节点是不规则地随机分布,每个节点都有惟一的ID号。传感器节点是非地理位置感知的,如图4所示。
如果节点A发送数据给C,选择节点B作为下一跳的条件是当且仅当:
[D2A-C>D2A-B+D2B-C] (11)
成立时,节点A选择节点B作为下一跳将数据转发给C。其中DA?C,DA?B,DB?C分别表示节点A与C、节点A与B、节点B与C之间的距离。
(4) 数据按照建好的路由结构传输给BS。源节点在选择好下一跳路由后发送采集得到的有用信息然后该转发节点变成源节点,继续寻找选择最优下一跳节点。
3 算法仿真和性能分析
3.1 仿真场景及参数
为了分析EBRABOE算法的有效性,本文利用仿真平台NS?2对网络生存时间、网络平均时延、节点平均能量消耗等指标进行仿真和分析。
仿真时,将50个传感器节点部署在水下三维监测区域中,分为随机部署和确定部署。监测区域大小为300 m×300 m×300 m,Sink节点位于水平面中心即坐标为(150,150,300)。进行虚拟网格剖分时,为了方便计算,将监测区域划分为300×300×300个小立方格,每个立方格的大小为1 m×1 m×1 m。仿真结果是50轮仿真实验所得结果的平均值,其他参数设置如表3所示。
表3 仿真环境参数设置
3.2 性能测试和分析
在前面工作基础上,分别对节点网络生存时间、网络平均时延和节点平均能耗进行了仿真。
3.2.1 网络生存时间
在两种条件下进行网络生存时间的仿真分析: 网络中第一个节点死亡的时间;网络中生存节点个数。
图5和图6为EBRABOE网络生存期测试结果。从图5可以看出在仿真过程中,节点确定分布情况下第一个节点的死亡时间要比节点随机分布晚。
当网络规模小于30个节点时,网络寿命将提高。这是因为随着网络规模的变大,广播Hello包的数量也随之增加,节点找到一条从源节点到Sink节点的最优路径时间变长,算法收敛速度变小,导致能耗也因此增加。
从图6可以看出,从开始到90 s左右的这段时间内,节点确定分布情况下没有节点死亡,而节点非均匀分布时从60 s开始就有节点持续死亡。节点确定分布情况下在时间200 s之后死亡节点将逐渐减少,生存节点个数维持在20个左右。而在节点非均匀分布情况下,仿真时间进行到200 s之后,生存节点个数维持在10个左右。
3.2.2 网络平均时延
图7为EBRABOE的网络时延测试结果。
从图7中可以看出,平均端到端的延迟在节点数量较小时,两者时延相当并且随着网络节点数的增加而增加,变化没有规律,这是因为在寻找下一跳到达目的节点时,数据包必须在接口队列中等待一段时间。但总体上,节点非均匀分布时比节点确定分布时,时延大。这是因为当路由表建立后,随着节点的移动和节点数的增加,需要更新路由表次数频繁,影响数据包传送的时间。
3.2.3 节点平均能耗
在两种条件下进行节点平均能耗的仿真。相同仿真时间内,消耗能量总量与节点数目之比;相同节点数目内,消耗能量总量与仿真时间之比。
图8和图9为EBRABOE节点平均能耗测试结果。
由图8可知,当节点非均匀分布时消耗的能量大于节点均匀分布时消耗的能量。这是因为当节点确定分布时,各邻居节点的地理位置已知,在一定程度上避免了路由环路的发生,选择下一跳时只需要考虑能耗,并且节点能够快速找到Sink节点,增加了算法的收敛速度,所以节点平均能量消耗较少。而当节点非均匀分布时,需要考虑路径因素及能量损耗,导致了算法的收敛速度减慢,加大了节点能量的消耗。
从图9可以看出,当时间小于70 s左右时,节点确定分布情况下的平均能量消耗大于节点随机分布情况下的平均能耗。因为节点确定分布时,每个节点都获悉其他节点的位置即保存着相应节点的邻居表,在开始阶段收发节点报文的开销比节点随机分布要大,但随着时间的进行,仿真时间大于80 s之后,节点随机分布情况下的平均能耗增长速度明显大于节点确定分布情况下。因为在寻路过程中,节点不能有效地预防路由环路的发生,当确定下一跳时,访问一个已经访问过的节点,节点就丢弃它,相比节点确定分布,算法的收敛速度较慢,寻路过程较复杂,加大了节点能量的消耗。
4 结 论
根据浅水环境中的水下无线传感器网络的特征,本文深入研究了浅水环境下无线传感器节点通信模型的建立和能量消耗均衡性的问题,提出了一种基于熵的能量均衡路由算法EBRABOE,权衡考虑节点的剩余能量和位置信息来选择下一跳节点,从而平衡网络能耗,达到延长网络生存周期的目的。本文利用NS?2仿真平台对EBRABOE的性能进行了仿真分析,结果表明,EBRABOE在网络生存时间、网络平均时延及能量消耗等参数方面,表现出了良好的性能。本文研究对于水下传感器网络的应用具有一定的参考价值。
参考文献
[1] 张剑,黄本雄,张帆.一种适合水下无线传感器网络的能量有效协议[J].计算机科学,2008,35(1):38?41.
[2] 蒋鹏,阮斌锋,谭劼.全覆盖需求的水下传感器网络覆盖保持算法[J].传感技术学报,2012,25(11):1591?1598.
[3] 张亚斌,刘建明,李宏周,等.基于NS?2的水声通信信道的扩展与仿真[J].计算机仿真,2012,29(7):163?167.
[4] 刘华峰,陈果娃,金士尧.三维水下监视传感器网络的拓扑生成算法[J].计算机工程与应用,2008,44(2):163?168.
[5] 康文静,刘功亮,李亚星.基于深度和距离感知的三维水下传感器网络路由算法[J].科学技术与工程,2011(35):8780?8784.
[6] 曾斌,钟德欢,姚路.考虑水流影响的水下传感器网络移动算法研究[J].计算机应用研究,2010,27(10):3926?3928.
[7] 刘湘雯,薛峰,李彦,等.一种分布式无线传感器网络能量均衡路由算法[J].计算机科学,2010,37(1):122?125.
[8] 周雪,朱小明,陈立建,等.基于停车诱导系统的能量均衡可靠路由协议的设计[J].传感技术学报,2015,28(9):1408?1417.
[9] 黄艳,梁韡,于海斌.一种高效覆盖的水下传感器网络部署策略[J].电子与信息学报,2009,31(5):1035?1039.
[10] 赵文强,胡滨,康文静,等.可调分辨率的水下传感器网络压缩感知重构算法[J].传感技术学报,2015,28(5):723?728.