关志艳
(山西大学商务学院信息学院,山西 太原 030031)
近年来,信息技术和网络技术的发展给人类社会和国民经济的各个领域带来了巨大变化,尤其是物联网的发展。无线传感器网络是物联网的重要分支,被誉为“改变世界的十大技术之一”。[1]覆盖控制是WSN中的一个基本问题,直接影响着监控质量,不管是区域覆盖、点覆盖、栅栏覆盖,只有传感器节点将目标覆盖,才能达到WSN的基本要求。
人工鱼群算法由李晓磊[2]博士于2002年首次提出,近些年应用鱼群算法解决实际工程优化问题越来越多。李晓磊等[3]引入生存机制和竞争机制来对算法加以改进。王锡淮等[4]设计了基于竞争惩罚函数的适应值函数来改进人工鱼群算法,算法的收敛速度和搜索效率都得到了提高。
本文将人工鱼群算法应用于无线传感器网络覆盖中,目的希望通过鱼群的觅食行为,聚群行为来调整。仿真实验证明,人工鱼群算法对于随机部署于WSN的节点有改善效果,从而提高有效覆盖率。
人工鱼描述可借助于面向对象方法,定义其是一个封装了自身数据和行为的实体。人工鱼所在的环境是问题的解空间和其他人工鱼的状态。这与WSN监测环境下部署节点高度吻合,每一个节点类比一条人工鱼,每个节点都封装了自身属性和移动行为,节点在下一刻的位置取决于问题当前解的优劣和其他同伴的状态。
如图1所示,假设人工鱼节点Si的当前位置在Xi,以Si的感知半径RS为圆的区域可理解为人工鱼的Visual视野范围,在视野范围内,若Xi位置状态优于当前状态X;则step向前一步到达Xnext,否则巡视视野内的其他位置。将节点Si的邻居节点(两节点间距离小于2RS)当作环境中的感知同伴,同伴影响对Si的状态也会相应调整自身状态。
图1 人工鱼感知模型示意图
觅食行为一般认为人工鱼通过视觉或味觉来感知水中食物量或浓度进而选择下一时刻位置。在WSN环境中,由于随机部署节点,必然会造成覆盖盲区。覆盖盲区吸引附近节点去填补,覆盖盲区等价为食物浓度。
图2 觅食行为示意图
行为描述[5]:设人工鱼节点Si当前状态为Xi,在其感知范围内随机选择一个状态Xj。
Xj=Xi+Visual·Rand()
.
(1)
其中,Rand()为[0,1]之间随机数,若Y(Xj)>Y(Xi),则向该方向前进一步。Y=f(x) ,Y为食物浓度目标函数值。
.(2)
反复尝试Try-number以后,若仍不满足Y(Xj)>Y(Xi),则保持原地不变。
伪代码描述:
float fish_sensor:FS_prey()
{for(i=0;i {Xj=Xi+Rand()·Visual; if(Y(Xj)>Y(Xi)) else Xi/next=Xi+Rand()·step; } } (3) 其中:L、S分别为检测区域的长与宽。 图3 蜂窝节点分布 伪代码描述: float fish_sensor:FS_ swarm() { nf=0;Xc=0; for(j=0;j {if(dij {nf++; Xc= Xc+Xj;} else FS_prey(); } } 1) 初始化人工鱼节点规模N,人工鱼节点移动最大步长step,感知半径视野Visual RS,迭代次数Try-number,拥挤度因子δ; 2) 随机部署人工鱼节点,并自身获取自动位置坐标; 3) 计算网络有效覆盖率; 4) 对每个人工鱼节点进行评价,并根据邻居节点间的覆盖盲区和重叠区进行觅食行为和聚群行为判断; 5) 执行选择的行为,更新人工鱼节点位置; 6) 更新全局人工鱼节点状态。 在MATLAB环境下进行实验仿真。在50 m×50 m的监测区域,分布感知半径视野Visual RS=10的人工鱼节点,据公式(3)可计算将需人工鱼节点60个,随机分布人工鱼节点,假设人工鱼节点移动最大步长step=1,迭代次数Try-number=100,拥挤度因子δ=0.01,由于节点的初始部署对人工鱼群算法有一定影响,因此取50次随机部署经过人工鱼群以观察结果,图4为两次随机部署节点后,分别经过人工鱼群算法后的节点分布改善情况,图中可以观察到随机分布后的节点经过人工鱼群算法后,节点的分布更均匀化,由于随机初始化节点位置对算法有很大的影响,并不是每次算法都可以取得很好的效果,因此取了50次随机初始化,每次算法内都迭代100次,经过对50次初始化取均值得出经过算法作用后,网络覆盖有效率提高5.23%。 图4 人工鱼群算法分布对比图 本文研究了基本人工鱼群算法在同构无线传感器网络中的应用,将随机部署的节点抽象成封装了自身数据和行为的人工鱼,可以根据自身及周边环境的覆盖盲区和重叠区为引导来指导人工鱼节点的移动,人工鱼节点规模,人工鱼节点移动最大步长,感知半径视野,迭代次数,拥挤度因子是基本人工鱼群算法中重要的参数,从仿真实验可以看出在常规参数设置后,人工鱼算法对随机部署的无线传感器网络有效覆盖率有一定的提高,但也可以看出上述参数对算法效果的影响,并不是每一次算法都有改善作用,后续将深入对其中的拥挤度因子等参数的研究。2.2 聚群行为
3 算法流程
4 仿真性能
5 结束语