张苏颖,竺兴妹,许曙青
(1.江苏联合职业技术学院南京工程分院电子工程系,江苏 南京 210035;2.中国矿业大学经济与管理学院,江苏 徐州 221116)
在信息处理与无线通信技术的高速发展背景下,传感网络已经广泛应用在环境监测等领域,主要特征为:无中心节点,所有节点拥有相同地位,修复与重构能力较强,可适应动态拓扑;通信范围受限,由于节点处于不断变化的状态,任意一个节点的计算、储存与通信能力都是有限的,只能实现近距离感知;多跳路由,无需专业路由设施,普通节点即可实现路由功能,既能扮演数据始发者的角色,也能承担转发者的任务。但传感网络需要大量节点协同合作,工作环境通常比较复杂。因此,如何最大程度覆盖目标区域,高效实现环境感知对建设传感网络具有重大意义。
近年来,节点移动策略在传感网络覆盖优化问题中获得广大学者关注,国内外学者纷纷对传感网络节点移动策略做出了研究。杨海波等人[1]提出基于信噪比-虚拟力的节点移动方法探究,综合分析信道传输特征,建立信噪比模型;结合信噪比与节点度两个指标修正虚拟力模型,得出对应节点移动策略。Habib等人[2]提出基于节能移动性簇头选择机制的节点移动算法。利用CH选择算法选择对传感器能耗有巨大影响的专用参数。根据节点的移动水平、剩余能量、下沉距离和邻居密度计算每个节点的权重。当迭代次数最大时输出全局最优解,即节点移动位置。向庭立等人[3]提出基于布谷鸟搜索的混合传感器网络节点移动策略,基于混杂传感节点在目标区域内随机部署,初步确定移动传感器节点的候选目标位置,并用位置优化方法求取最优目标位置,实现传感器网络节点移动位置优化。Thomson等人[4]提出基于移动感知任务循环和动态前导算法的无线传感器网络节点移动策略。根据静态节点建立的阈值与移动宿节点的位置之间的关系,做出与节点休眠功能、转向清除信道评估和随后发送前同步码相关的决策。
虽然上述算法较大程度覆盖了监测区域,但也存在一定盲区,且节点移动总路程较长,会造成能耗与成本的浪费。基于此,本文利用改进鲸鱼算法在传感网络中设计一种新的节点移动策略,鲸鱼算法属于高度智能算法,具有较强的寻优能力,但也容易陷入局部最优,降低算法搜索性能。为此,本文构建传感网络节点与信道基本模型,设置自适应步长参数改进鲸鱼算法,提升局部与全局的搜索能力,并将该算法用于构建的传感网络节点与信道基本模型中,计算大量节点位置并优化,得到了较好的传感网络节点移动策略。
如果在某传感网络中布置N个节点,所有节点的覆盖半径Rcov均一致,那么在实际环境下,传感器能够获取以自身为圆心,Rcov半径范围内的监测数据,且所有节点都存在同样大小的通信半径Rcom。为方便表示网络节点之间相互连接情况,利用0-1的连通矩阵T=(tij)N×N,该矩阵中各元素表示意义如下:当tij=1时,代表位置为i的传感器能够和位置为j的传感器通信,当tij=0时则说明两个传感器之间无法通信。
上述两个传感器节点的坐标分别描述成(xci,yci,zci)和(xcj,ycj,zcj),其中,i=1,2,…,N,j=1,2,…,N。连通矩阵元素表达式为:
将节点通信区间内邻居节点数目当作节点度[5],则位置为i的节点度ndi表达式为:
覆盖率属于传感节点布置和节点移动方法的重要指标,为准确表现出网络的覆盖情况,将网络划分为K×M×L的长方体网格。利用覆盖矩阵维数P表示网格点的整体数量[6],计算公式如下:
建立下述覆盖矩阵:
矩阵中,若fij=1代表位于i处的传感器能够感知j处的数据;若fij=0则表示该传感器无法感知j处的数据。
两个位置的传感器探测点坐标描述为(xgi,ygi,zgi)和(xgj,ygj,zgj),则覆盖矩阵元素表达式为:
分析覆盖矩阵F=(fij)N×P,能够得出任意一格点的覆盖状况K=(ki)1×P,矩阵元素表达式如下:
将传感网络覆盖率转换为该区域被覆盖的格点数量和网格整体数量的比。则覆盖率指标g的计算公式为:
传感网络节点在通信过程中,不但需符合连贯性标准tij=1,还要满足信噪比需求,所以,需建立通信信道模型。假设传输节点S向目标节点D传输数据时,节点D通信范围内的其余节点R1和R2会对通信造成干扰[7]。
利用hSD描述从节点S向D传输数据时产生的信道增益,计算公式为:
式中:dSD表示两个节点的传输距离,α代表吸收系数,θ2是信道自身衰减系数,A描述传输损耗。本文假设A=0且θ2=0。则增益计算式可作如下简化处理:
如果两个节点通信产生的信噪比SINRSD符合下述条件,则表明两节点通信正常,信噪比表达式为:
式中:r S代表节点传输方向,且r S∈[0,1],P′S是信息传输功率,tSD代表两节点的传输耗时,l描述干扰节点标记号,rl代表干扰节点传输方向,P′l代表干扰节点信息传输功率,hjD代表干扰节点传输信道增益,tlD代表干扰节点传输耗时,η代表噪声功率,β为信噪比阈值。
完成通信信道建模后,还需设定路由协议,本文利用基于流量与传输质量的协议。此种协议不但能分析数据传输的最佳路径,还可综合考虑传输延时与通信质量之间的关系,此类协议中代表性最强的就是SAR协议,该协议非常重视通信质量,在选取传输路径时综合分析服务质量与能耗等各类因素[8]。当两个节点进行数据传输时,中间节点会考虑数据延时与服务质量,确定最优转发路径;对于中间节点的选择,通常挑选能耗较低的。此种方法能够保证拓扑结构改变时,协议网络可寻找新的传输路径,具备较强的自适应性能。与只分析路径能耗的协议相比,该协议能够确保网络的连通性与实时性。
根据上文构建的传感网络节点与信道基本模型,为保证节点传输质量,在此基础上采用改进鲸鱼算法,通过引用自适应步长参数提升局部与全局的搜索能力,对大量节点进行位置优化,得到节点移动策略。
鲸鱼算法是根据座头鲸捕食方式演化提出的,鲸鱼会慢慢游向海洋深处,在猎物附近构成气泡进行捕猎,通常包括包围、攻击和搜索三个主要过程。
当包围猎物时,假定现阶段最佳位置就是猎物位置,鲸鱼群中的个体都会向最佳位置靠近,此过程通过下述公式表示:
式中:t′代表现阶段迭代次数,X(t′)为鲸鱼目前节点位置,X*(t′)描述最佳位置,C和A′都代表系数矢量,能够操控鲸鱼游走形式。表达式分别如下:
式中:γ属于[0,1]区间内的随机数,鲸鱼的包围机制是逐渐缩小的,且顺着指定路径向目标靠近。在鲸鱼算法中,将a由2缩小到0,来模拟包围行为,则a的计算公式为:
式中:Maxiter代表最大迭代次数。
鲸鱼是通过群体协作方式捕食的,针对鲸鱼发出的气泡攻击,每个个体会结合随机概率值选择利用螺旋式还是收缩包围方法更新当前位置[9]。其中收缩包围方式表达式如式(12),螺旋式如下:
式中:b描述螺旋形状,l′代表[-1,1]区间内的随机数。假设p代表[0,1]内的任意随机数,气泡网攻击通过下述公式描述:
在寻找猎物过程中,鲸鱼结合其他个体位置寻找目标,便于提高全局搜索性能,利用下述模型描述:
式中:Xrand(t′)代表位置随机矢量。
传统鲸鱼算法搜索目标时,随机矢量Xrand(t′)以及A′、D′的值共同决定了位置更新情况。当A′的取值区间为[-2,2]时,|A′|由2逐步下降至0;当|A′|≥1,会扩大搜索范围,无法获得较好的候选解;当|A′|<1,搜索范围变小,容易陷入局部最优,算法的搜索能力有限。另外在迭代初始时刻,|A′|>1的概率较低,进一步降低全局搜索性能[10]。
为解决上述问题,本文设置一个自适应步长参数U,它具有较强的自适应性,能够实时调节步长,使局部与全局的搜索能力更加平均[11]。参数U的表达式如下:
式中:rand是[0,1]内的随机数,利用下述两个公式替换式(16)和式(17):
式中:sign(·)代表符号函数,取值可以是-1、1和0。
基于改进鲸鱼算法的节点移动策略就是对大量节点进行位置优化,确保监测感知范围最大,即计算传感器节点的最佳位置。因此将覆盖优化问题变换成将最大覆盖率g当作目标函数的寻优问题。将位置寻优过程看作鲸鱼群包围目标的行为,计算出的最佳解即为节点位置[12]。在该方法中,每个鲸鱼都描述不同的覆盖分布,假设共有N个节点,则移动策略详细步骤如下:
步骤1 设置节点数量N、覆盖半径Rcov以及监测区域边长,设定参数U=30;
步骤2 计算多个位置的适应度值,结合计算结果排序,选取最佳前q个个体当作原始种群;
步骤3 将覆盖率当作目标函数,计算种群适应度,确定目前种群全局最佳解的方位[13];
步骤4 判定[0,1]中的随机数rand大小,如果低于0.5,继续执行下一步骤,反之通过螺旋式完成位置更新;
步骤5 更新A′值,如果|A|<1,继续更新位置,若|A|≥1执行下一步骤;
步骤6 将更新位置和初始位置对比,若优于原来位置则保留,反之舍弃[14];
步骤7 分析算法是否满足最大迭代次数,如果满足,获得全局最优解,也就是传感器节点的最佳位置,若不满足,返回步骤3。
本文设计改进鲸鱼算法的伪代码如下:
表1 改进鲸鱼算法伪代码
7:if1(p<0.5)8:if2(|A|<1)9:Update the position of the current search agent by the Eq(2)10:else if2(|A|≥1)11:Select a random search agent(X rand)12:Update the position of the current search agent by the Eq(8)13:end for 14:Check if any search agent goes beyond the search space and amend it 15:Calculate the fitness of each search agent 16:Update X*if there is better solution 17:t=t+1 18:end while 19:return X*
为评价改进鲸鱼算法性能,在MATLAB仿真软件中搭建仿真网络平台,为保证传感网络性能测试的准确性,在一个70 m×70 m的区域内随机散布70个传感器节点,保证数据多样化。设置节点覆盖半径为10 m,通信半径是15 m,通信信道的信噪比是30 dB,且所有节点的移动速度均相同,节点原始能量设置为8 J以保证节点移动能耗测试条件的统一。传感器节点分布图如图1所示。
图1 传感器节点分布图
在三台PC机上分别利用所提方法、文献[1]方法、文献[2]方法及文献[3]方法进行节点移动策略布置,通过对比仿真验证所提方法的有效性。
为了对传统鲸鱼算法进行改进,本文引入自适应步长U,仿真中需验证该参数在算法中发挥的作用。U经过多次迭代后,其变化趋势如图2所示。
由图2可知,U值随迭代次数的增多,大体上表现出下降趋势,既存在较大步长,也会有小步长出现,能够增加搜索过程的多样性,具有自适应调节功能。迭代过程的初始阶段,步长较大可以增强全局搜索性能;迭代后期,步长逐渐缩小,能减少全局优现象,提高收敛能力。
图2 自适应步长参数变化趋势
传感网络寿命是节点移动策略好坏的重要指标,利用上述四种算法,在节点数量为30、60、90、120、150以及180时,分别进行20次仿真,计算平均网络寿命。
结合图3分析,能够发现改进鲸鱼算法可延长传感网络寿命,同时随着节点数目增多,效果越发显著。当节点数量为180个时,文献[1]方法、文献[2]方法、文献[3]方法的传感网络节点寿命分别为13 min、15 min及14.5 min,而本文方法的传感网络节点寿命为28 min,表明该算法的扩展性能优于其他方法,能够较好地适应大量节点布撒。
图3 不同方法下传感网络寿命
节点移动的另一个重要目标就是利用最低能耗在监测区域内完成感知任务。也就是说要保证节点移动总路径最短。要想准确评价节点移动策略,可将理想路径和全部可能的解空间(即为所有路径之和,表示为M)进行对比,理想路径的计算公式如下:
式中:x′i′代表路程排列顺序值,ρi′则是与其相对应的概率值。
如图4所示,纵坐标代表总路程理想值和解空间之比,横坐标则描述不断增加的节点数量。纵坐标比值越小表明移动路径方法的性能越好。当节点数量为10时,文献[1]方法、文献[2]方法、文献[3]方法和本文方法的总路程理想值和解空间之比分别为0.136、0.145、0.155及0.112。因此得出,所提策略移动路径较短、能耗低、且随节点数量的增多纵坐标比值显著下降,更加凸显该算法优越性。这是由于鲸鱼搜索猎物的过程就是寻找最优目标节点位置的过程,经过多次搜索,不断寻找最佳位置,能够最大程度缩短移动距离,降低节点移动能耗。
图4 节点移动能耗评价结果
由于节点移动路径影响传感网络的覆盖性能,降低网络稳定性,因此本文提出基于改进鲸鱼算法的节点移动策略。通过增加自适应步长参数,完成对传统鲸鱼算法的改进,将覆盖率作为目标函数不断更新节点最优位置,得到移动的最佳解。仿真结果表明,所提方法可延长传感网络寿命,降低能耗。在今后研究中应引入定位算法,提高节点定位精度,使网络覆盖率更高。