1. 引言
无线传感网络(Wireless Sensor Networks, WSNs)集成了通信、传感器和分布式信息处理技术,通过大量微型传感器节点以多跳或单跳通信方式组成的网络。WSNs通常部署在危险环境中,传感器节点所携带的能量有限且难以补充,因此能量消耗成为影响WSNs生命期的重要因素,如何均衡高效的利用传感器节点有限能量成为研究热点之一。其中,网络层路由协议是WSNs中采集数据在网络中可靠、有效传输的关键。
近年来,研究学者们利用蚁群算法、遗传算法、粒子群优化算法的无线传感器网络路由优化方法,通过群体中个体协作、分布式计算,在加快寻优速度的同时提高路由效率。其中,粒子群优化算法(Particle Swarm Optimization, PSO)由于参数少,易实现而得到了广泛应用,然而基本粒子群算法在WSNs路由优化过程中存在易于停滞和陷入局部最优的不足,难以获得全局最优。针对基本粒子群算法的不足,众多研究学者不断改进粒子群算法在WSNs路由优化中的应用,在有效均衡网络节点能耗的同时,大幅提升了WSNs的生命期。
2. 基本粒子群算法原理
自然界中许多生物群体在缺乏“领袖”集中指挥控制的情况下,通过生物个体本能自然简单的行为规则,经过一段相互作用的过程,整个群体会表现出异常复杂而有序的行为。诸如蚁群寻找食物,人字形飞行的雁群,池中聚集于食物浓度高的鱼群等。在分析借鉴自然界生物群体行为特点基础上,研究学者提出了一系列具有较强适应性、较好并行性和收敛性的群体智能优化算法。与传统的优化算法相比,群体智能优化算法不需要严格的数学模型,其评估函数和约束条件也不需要精确的数学描述,具有自适应、鲁棒性、并行性和全局搜索的优点。
其中,PSO算法是一种新兴的群体智能优化算法。PSO通过随机初始化一群粒子,利用粒子自身学习经验的不断累积和粒子之间形成的社会协作,在搜索空间中并行的不断调整速度进行搜索全局最优解。
2.1. 鸟群的生物行为特征
在任意的空间区域内存在一块食物,鸟群中每只鸟都知道自身当前所处的位置,能够预测自身与食物之间的距离,但是在鸟群随机搜索开始,所有鸟都不确定食物的准确位置。那么,鸟群是如何实现食物位置的快速定位呢?研究人员经过长期深入研究,发现鸟群的生物行为有如下特点,介绍如下。
(1) 时聚时分。自然界中鸟群在搜索过程中会不时的改变飞行方向,呈现有时分散有时聚拢的现象。
(2) 邻域自适应。自然界中鸟群在搜索食物过程中,每只鸟的飞行动态受周围有限数量邻居的影响,它会结合自身经验追随邻居进行自适应调整。
(3) 群体一致性。在搜索食物过程中,每一只鸟的飞行动态是无法预测的,但是鸟群的整体行为保持大体一致,呈现出鸟群整体搜索在似乎某个控制中心下以个体简单飞行规则实现了复杂的全局搜索。
2.2. 粒子群算法基本原理
受自然界中鸟群捕食行为的启发,Eberhart和Kennedy两名博士于1995年提出了一种粒子群优化算法-PSO,该算法是一种新兴的群体智能优化算法。PSO在求解优化问题时,每一只鸟比作粒子,问题的解比作粒子的位置,初始化时粒子具有自身的速度和位置,并用适应度函数来衡量每个粒子的优劣。
粒子群算法中的粒子,与自然界中的鸟存在如下共同特点。
(1) 位置映射相同。自然界中鸟的位置代表当前鸟搜索食物的定位,粒子则是抽象为没有体积和质量的“鸟”,其位置对应着搜索空间中问题的解。
(2) 更新规则相似。自然界中鸟根据一定的飞行规则,可以估算自己位置的适应值,在受到周围邻居的影响下不断调整飞行方向和速度,从而实现位置的更新。粒子则通过计算自身的适应度值,跟踪粒子个体最优解和全部粒子中的全局最优解这两个极值,改变粒子飞行的方向和速度,从而实现自身位置的更新。
(3) 随机性与收敛性。粒子和自然鸟在搜索初期都呈现出一定的随机盲目性,依靠自身的不断学习积累经验,经过一段时间经过相互之间的社会协作,大大缩短搜索进程,加速搜索的收敛定位。
综上可知,起初粒子被赋予一个随机速度在整个问题空间运动,通过计算适应度值来估算自己所处位置的优劣,粒子通过记忆和群里感知能力,借助粒子间的竞争与合作不断进化,最终粒子群达到全局最优。
2.3. 基本粒子群算法
粒子群算法在连续空间和离散空间优化问题中得到了广泛应用,其算法的简单易操作性得到了验证。PSO是模拟鸟群觅食的过程,采用速度–位置模型进行食物搜索。与鸟群飞行的简单行为相似,粒子也有一定的运算法则。粒子通过记忆自身当前所找到的局部最优位置,与粒子群中传播的全局最优位置,然后不断调整飞行方向和速度,朝着这两个最优位置不断靠拢。
在粒子群算法具体应用中,每一个鸟类个体被抽象为没有体积和质量的一个粒子,每个粒子都有一个被适应度函数决定的适应值,每个粒子都有一个决定搜索方向和距离的速度,都是通过追随局部最优位置和全局最优位置两个极值在搜索空间进行搜索。
在N维搜索空间里,存在m个粒子,粒子群算法中涉及相关概念描述如下。其中,X表示粒子群整体,Xi表示第i个粒子的位置方向矢量,Vi表示第i个粒子的飞行速度矢量,Pi表示第i个粒子目前搜索到的局部最优位置,Pg表示粒子群目前搜索到的全局最优位置,数学形式如式(1)所示。
(1)
其中,速度Vi决定了粒子在搜索空间中每一次迭代的位移。根据更新规则,所有粒子的速度和位置更新如式(2)和(3)所示。
(2)
(3)
其中,,。对于式(2)和式(3)而言,关键的参数介绍如下。
(1) 惯性权重系数
是惯性权重,主要用来控制粒子群算法的探索能力和开发能力。只管而言,决定了粒子对当前速度继承的多少。当值较大时,粒子具有较大速度,粒子群算法全局搜索能力较强。当值较小时,粒子速度变缓,粒子群算法倾向于局部搜索,具有较强的开发能力。在众多研究中,关于惯性权重的选择,通常有常数和时变两种。当前普遍采用的方法是惯性权重系数随着迭代次数的增多而不断线性递减,这种方法师德粒子群在开始时能够探索较大的区域,较快定位最优解的大致位置,然后随着惯性权重的递减,粒子速度减慢开始精细的局部搜索。需要主要的是,大多数研究学生对于惯性权重的初始都定在0.9,但是对于最小值则意见不一,主要有0.4和0.1两种值。
(2) 学习因子
和参数通常称为学习因子,起粒子加速作用,意在让粒子向群体中的两个极值个体靠近。其中,是粒子跟踪自身历史最优解的权重系数,表示粒子对经验累积的自我学习认识。是粒子通过粒子间消息传播后跟踪粒子群最优解的权重系数,表示粒子对群体知识的社会学习认知。学习因子起到调节粒子向全局最优解和局部最优解法方向飞行的最大步长。如果太小粒子可能会远离目标区域,如果太大则粒子有可能飞过目标区域或者突然向目标区域飞去。学习因子和的合理设置能够加速算法的收敛并避免陷入局部最优,目前众多文献中建议学习因子的取值为。
(3) 粒子速度
Vi表示粒子的速度,为了粒子速度合理不至于无限扩大,也不至于速度太小导致搜索空间不彻底,通常会对速度进行区间限制,如给定区间范围。速度区间范围合理设置有助于粒子在问题空间里有规律的跳动,陈小全[1] 指出粒子的最大速度设定为问题空间的10%~20%较为适宜。
(4) 粒子位置
Xi表示粒子的位置,对于粒子的位置也可以给出合理的区间范围。
(5) 种群规模
种群规模m退化为1时,PSO算法变为基于个体搜索的技术,一旦陷入局部最优则无法跳出继续优化。当m值较小时,算法收敛速度快,容易陷入局部最优。当m值较大时,算法寻优能力较强,但是收敛速度慢。通常,粒子群规模在10~20之间就可以取得较好的效果,对于复杂类型的搜索空间,种群规模可以适时增大。
(6) 随机参数
和是处于之间的随机参数。这两个随机参数通常由编程语言的相应随机数函数产生,对于粒子群算法性能会有一定的影响,但是目前仅有刘志雄[2] 等少数研究学者对随机参数进行相应的研究与验证分析。
2.4. 基本粒子群算法流程
基本粒子群算法流程步骤如下。
(1) 参数初始化。包含迭代次数、学习参数、种群数量、惯性权重等。
(2) 粒子信息初始化。包含粒子的位置初始化和粒子速度的初始化。
(3) 粒子性能评价。根据适应度函数计算每个粒子的适应值。
(4) 局部最优解更新。根据粒子的当前适应值和历史最佳适应值进行比较,更新粒子的局部最优解。
(5) 全局最优解更新。将粒子的当前适应值与群体全局最优解进行比较,更新粒子群全局最优解。
(6) 若全局最优解保持定值达到限定次数或达到最大限定次数,算法终止。否则,按照式(2)和式(3)更新粒子的速度和位置,转至(2)。
其中,适应度函数是学者研究的重点。
3. 粒子群算法在WSNs路由协议中的应用研究
3.1. WSNs网络结构
WSNs路由模型建立之前,假定WSNs监测区域为一个的二维平面,其中传感器节点具有唯一ID且位置固定,Sink节点能量与计算、存储能力不受限制。每个节点均可与Sink直接通信,节点结构相同,具有接收和发送数据的能力,均可以参与簇首的竞选。传感器可以获得相邻节点的相关信息,且节点之间通信对称。
3.2. 改进粒子群算法的研究现状
粒子群算法作为当前WSNs路由协议选择的热点算法之一,受到了业界学者的广泛深入的研究。其中,文献[3] [4] 采用粒子群算法用于WSNs分簇路由协议中的簇首选择优化上,在一定程度上提高了无线传感器网络节点能量的利用率。周晓斐[5] 提出改进粒子群算法MPSO,以种群粒子平均适应度值为分界,提出惯性权重的自适应调整分段函数,在粒子群算法分簇过程中将起转化为带约束的非线性优化问题,就生存时间、能耗均衡和节点剩余能量方差三方面与文献[6] [7] 相比较,经仿真表明MPSO算法能够有效节约网络中节点能量并平衡网络节点能量消耗,延长WSNs网络生命期。袁浩[8] 为了克服粒子群算法后期群体多样性下降的问题,以初始路由表构造初始种群,以路径代价为适应度函数,引入遗传算法中的变异算子来保持种群的多样性,当节点经过粒子群算法优化后,确定下一跳节点,更新路由表,从而找到最优路径。缺点是该算法仅仅以20个节点的无线传感器网络进行仿真,对比最优路径的成功率和最优解,并没有考虑WSNs中节点的能量消耗,能量均衡问题和整个网络的生命期。彭大志[9] 等在LEACH和PEGASIS协议的基础上提出了一种混合粒子群算法的WSNs路由协议,该算法放弃了传统PSO算法中通过跟踪两个极值来更新粒子位置的方法,而是将遗传算法中的交叉和变异操作引入其中,通过粒子同个体极值和群体极值的交叉以及粒子自身变异的方式来搜索最优解。该算法采用集中式算法,用混合粒子群算法以及能量、距离等原则形成链路,实现簇首选举,以遍历路径长度作为适应度函数的构建依据。在仿真过程中与贪婪算法构成的链路进行比较,该算法的链路距离长度约为贪婪算法的一半,并且能够有效的均衡网络节点能量消耗,有效延长了网络生命期。郑波[10] 针对经典分簇协议LEACH存在能量消耗过大的问题,采用位置加权粒子群算法,在粒子位置更新过程中引入影响因子,将式(3)修改如式(4)所示,并建议取值0.4。并且,针对惯性权重的重要性,提出动态变化的WSNs应该采用动态非线性变化的惯性权重而非传统线性变化的惯性权重,其定义了一个新的非线性惯性权值,如式(5)所示。因为考虑了粒子的局部最优解和全局最优解,因此即使粒子处于特殊条件下,也能取得较好的收敛性。此外针对学习因子参数在搜索前期和后期的异同,作者提出线性增加线性减少的调整思路。在粒子优劣评价和优化簇首选举的过程中,作者以剩余能量、簇间距离和簇首与Sink之间距离三因素作为适应度函数的构建依据。仿真结果表明基于位置加权的粒子群算法在WSNs能量优化方面,能够使得整个网络能耗相对均衡,延长了网络生命期。
(4)
(5)
近年来,大量学者利用混沌搜索的随机性、便利性等特点对标准PSO进行改进,提出混沌粒子群优化算法(Chaotic Patrticle Swarm Optimization, CPSO) WSNs路由算法。其中,任红霞[11] 提出WSNs路由数学模型,将混沌思想引入PSO算法,在每次迭代过程中,对Pg进行混沌干扰,并将其作为粒子的更新位置,很好的防止了粒子位置趋同。在对粒子的Pg进行混沌干扰时,首先将Pg映射到方程定义域[0,1],利用扰动方程进行不断迭代,得到n个混沌变量,通过逆映射获得n个粒子,最后对所有粒子适应度值进行计算和排序,从而得到最优解。此外,作者给出了粒子早熟收敛的具体判断依据和WSNs最优路由的求解流程。在仿真阶段采用网络生存时间和最优路由的搜索成功率与遗传算法、PSO算法分进行比较,结果证明混沌粒子群算法的WSNs路径优化效果更好,有效延长了WSNs生命期。郑波[12] 提出改进CPSO算法,通过引入混沌粒子群算法优化簇首选举,对于大多数混沌粒子群采用Logistic [11] 或Tent [13] 映射产生混沌扰动不同,改进CPSO算法采用傅文渊[14] 提出的不依赖初始位置且搜索效率较高的Fuch映射,如式(6)所示。
(6)
改进CPSO提出系统一直处于稳定或混沌状态都是不利的,只有混沌与稳定相互交替方可找到最优值。因此建议在稳定时引入混沌,帮助粒子跳出局部最优,在不稳定时加速向最优值靠拢,加快收敛速度。并且改进CPSO给出了判断粒子所处状态的判定公式。在适应度函数方面,改进CPSO以剩余能量,簇首与簇内节点距离为依据,在簇首与Sink之间多条路径计算借鉴最小生成树来减少簇首与Sink直接通信消耗的能量。在仿真试验中,改进CPSO以网络生命期和能耗两个技术指标与LEACH、CPSO进行比较,结果表明基于改进CPSO的协议性能更甚一筹,能耗均匀的同时有效延长了WSNs的生命期。刘志坤[15] 等提出了基于CPSO的分簇算法CPSOCH,以能量评价因子和距离评价因子构造适应度函数,提出簇首节点激活的范围要适当,以确保簇首局部性工作目的,采用Tent [13] 映射作为混沌扰动产生器,算法仿真时与文[12] 一致,采用网络生命期和能耗两个技术指标与LEACH协议进行比较,显示出良好的网络能耗均衡性,并延长了WSNs生命期。刘安丰[16] 等提出一种基于PSO的能量空洞避免路由算法EHAR,首先将WSNs路由问题转化为线性规划问题并证明了两者之间的等价性,然后利用PSO算法来求解能量空洞避免路由问题。EHAR算法的优点是对于WSNs网络拓扑没有任何要求,提出了网络能耗不等式和能量空洞避免的绕路策略,重新定义了PSO的粒子、粒子运算与“飞行”规则。其中,粒子的编码长度为无线传感器网络中节点的数量,每一个粒子代表一个WSNs路由方案。然后给出了粒子种群的产生算法和粒子速度表示,粒子的加法运算,减法运算和数乘运算,适应函数则以网络首节点死亡时间为构建依据。最后给出基于PSO的能量空洞避免路由算法,算法仿真从节点死亡时间分析、网络寿命和分簇网络三个方面进行分析,并分别与Direct和Relay算法进行比较,仿真结果证实了EHAR算法的有效性,缺点是需要一个中心优化器,周期性计算和广播路由信息,实时性和动态性相对性能不佳。
3.3. 改进粒子群算法在WSNs中应用总结
根据上述分析,研究学者在仿真验证时参照的性能指标主要有网络生命期、网络节点能耗均衡性方面,但是进行算法分析比较对象存在差异性,进行性能统一比较存在一定困难。总结可知,研究学者将改进粒子群算法和混沌思路引入粒子群算法,用在WSNs中簇首的选择,区别主要表现在适应度函数的构造上。今后,研究重点将放在研究适用于实时、动态的基于改进PSO的WSNs路由协议,在提升网络节点能耗均衡的同时,延长WSNs的生命期。
4. 结束语
本文简单介绍了无线传感器网络的应用和特点,引出了标准粒子群算法特点及其流程。然后,重点汇总分析了当前学术界将改进粒子群算法应用于无线传感器网络路由协议的研究现状并指出研究的不足。最后指出了改进粒子群算法在无线传感器网络中应用的研究方向。
在改进粒子群算法方面,本文作者将会从线性规划最优化角度,借用混沌粒子群算法的优点,从粒子的编码、运算和“飞行”规则入手,进一步提升改进粒子群算法在无线传感器网络路由协议中应用的性能,在均衡网络能量的同时有效延长WSNs的生命期。
基金项目
北京联合大学“启明星”大学生科技创新项目(201511417SJ029和201511417SJ045),北京联合大学新起点计划项目资助(zk10201303),北京市职业院校教师素质提高工程资助项目。