王勇智,戴 华,严权峰
(湖南理工学院 信息科学与工程学院,湖南 岳阳 414006)
精准农业利用无线传感器网络对农业环境进行监测,能大大提高土地利用率.传感器节点将采集到的湿度、温度等数据,汇聚到宿节点(Sink node),再由宿节点发往目标节点.宿节点的位置直接影响末端传感器节点的通讯距离以及无线传感器网络的数据传输效率[1].目前,无线传感器网络的宿节点通常被部署在场地的中心点,以提供监测范围的最大化[2].但因不同作物密度与高度、平地与山地等典型农业环境的影响,场地中心点有可能是无线信道传输损耗较大的位置,也有可能是邻近节点稀疏的位置,这样容易导致中心宿节点及其周围节点的能耗更大,造成“能量空洞”,缩短网络的生命周期[3].本文将烟花算法(Firework Algorithm,FWA)[4]应用于精准农业,结合能量衰减模型,提出一种基于能量感知的无线传感器宿节点部署算法,用于计算邻近节点个数多且邻近节点剩余能量更充足的宿节点.
烟花算法是一种新型的种群算法,全局优化能力强,参数少,并具有爆发性、多样性,支持并行搜索等优点.根据烟花适应度的优劣,每个烟花将在自身位置临近范围产生大量的火花以进行搜索.在种群数为N的烟花种群中,第i个烟花的爆炸范围Ai与产生火花数量Si分别为
其中Amax为最大爆炸范围,Smax为最大火花数,Fitness(Xi)为第i个烟花的适应度,Fitnessmin为当前种群最低的适应度函数值,Fitnessmax为当前种群最高的适应度函数值(适应度函数值越高,适应度越低),ε为一个最小量,以避免分母为零.为了限制烟花产生的火花过高或过低,对于产生的火花数量,烟花算法进行了以下限制:
其中a,b均为常数,round 表示以四舍五入规则对值取整.每个火花爆炸时都会从D维解空间内随机挑选z∈ [ 1,D]维进行更新从而产生新的火花,即第k次迭代后第i个火花产生的新的火花在j维解空间上的位置为
其中rand 为( -1,1)范围内的均匀随机数.除了上述产生的火花,每次迭代还将从N个火花中随机选择m个火花产生高斯变异火花.新生成的高斯变异火花在j维解空间上的位置为
其中randGauss 为( -1,1)范围内的高斯随机数.通过产生高斯变异火花与正常火花,每次迭代后将产生Smax+m个火花.除了保留当前迭代最优的火花外,烟花算法在每次迭代时从Smax+m+N个火花中选取N- 1个火花进行保留,以维持火花总数不变.保留第i个火花的概率为
其中R(Xi)为该火花距离所有火花的距离之和,即
结合式(6)(7)可知,距离其他火花越远,被保留的概率越大.经过多次迭代后,烟花算法的全局最优解即为优化问题的最优解.
在无线传感器网络的传输过程中,节点的能量衰减主要来自于传输与接收数据两个过程损耗的能量ETX与ERX,传输距离越长能量衰减越快[5].当传输距离为d时,节点传输与接收1 bit 数据所消耗的能量ETX与ERX分别为
其中Eelec为节点发送与接收1bit 数据的过程中电路损耗的能量;εfs与εamp分别为信号放大器损耗的能量以及路径上的能量衰减;d0为传输距离的阈值.
最佳宿节点部署问题本质上是一个在二维平面空间内寻求最优解的问题,因此,若令烟花算法的可行解空间维度为2,则每个火花的当前位置即为宿节点的一个候选解.为将烟花算法生成的最优解与实际节点位置联系起来,我们采用节点的最邻近解作为宿节点的位置,即将距离烟花算法产生的最优解位置最邻近的节点视为宿节点.对于一个具有Nnode个节点的无线传感器网络,第i个火花得到的宿节点的位置为
其中Xnodek表示传感器节点k在平面内的位置.为了评估每个火花得到的宿节点位置的优劣,基于无线传感器网络通信过程中的能量衰减模型,在适应度函数中考虑宿节点的邻近传感器节点的数量Nneighbor、邻近传感器节点的剩余能量Esensor、宿节点自身的剩余能量Esink以及宿节点到网络中心区域的距离d等因素.采用的适应度函数
其中α1、α2和α3为[0,1]范围内的随机数.式(11)表明,提出的宿节点部署算法在搜索过程中更倾向于寻找邻近节点数大、邻近节点及自身剩余能量多且距离中心远的解.每次迭代后,所有火花产生的最优解将保留到下一次迭代,经过大量迭代后,最优解将稳定在一个历史最优解.
算法使用Matlab 进行仿真与比较.仿真环境采用实际大棚环境,网络范围为600m ×600m的方形区域.节点分布与实际大棚中的传感器节点部署一致,分为稀疏分布、适中分布与密集分布三种情况,节点总数分别为100,200 与300,分布情况如图1 所示.设置所有传感器节点的通讯距离均为100m.
图1 三种仿真环境下的节点分布
为证明本文提出的宿节点部署算法找到的宿节点位置的优越性,将本算法生成的最优宿节点位置与文[2]提出的中心宿节点进行比较,两种部署方法均在相同的仿真环境运行.烟花算法中,N、D、Smax、m、Amax、a和b的取值分别为5、2、50、5、40、0.04 和0.8,迭代次数为1000.为更清楚展示两种部署方式的不同,引入Dijkstra 算法构建最短路径树,结果如图2、图3 所示,中心大圆点表示宿节点.可以看出,本算法选取节点密度较大且节点能量较充足的区域设置宿节点位置,其所产生的数据传输路径与中心宿节点方式所产生的最短路径树有很大的区别.由于考虑了能量、邻近节点数等因素,算法生成的传输路径将具备更大的总能量以及更小的能量损耗,也能有效避免部署宿节点于不利通信的地点.
图2 三种仿真环境下中心点为宿节点的最短路径树
图3 三种仿真环境下FWA 得到的宿节点的最短路径树
为测量基于这两种部署方法构建的无线传感器网络的生命周期,引入A3 拓扑算法构建仿真数据传输路径,并采用动态全局基于时间的拓扑重建协议(DGTTRec)进行路由拓扑维护,该协议在文[6]中被证明为最适合A3 算法的拓扑维护协议.设定无线传感器网络的生命周期为第一个数据包开始传输到第一个传感器节点能量耗尽之间的时间差,测试结果见表1.
表1 测试结果
从表1 数据可知,在稀疏、适中和密集三种节点不均匀分布环境下,以本算法找到的最优邻近点为宿节点的网络相比于直接用中心点作为宿节点的网络具有更低的适应函数值,即更好的适应度.尽管在三种环境下,两种算法构建的网络的活动节点数差异不大,但由于考虑了能量、邻近节点数等条件,本算法构建的网络具备更长的生命周期,具有更强的鲁棒性.
为提高无线传感器网络在精准农业应用中的生命周期,本文设计了一种基于烟花算法的宿节点部署算法,通过将邻近节点数及剩余能量等条件作为适应度函数的影响变量,有效得出较优的宿节点位置,能降低网络节点能耗,延长网络的生命周期.