一、果蝇优化算法
1、算法介绍
果蝇优化算法(Fruit Fly Optimization Algorithm, FOA)是基于果蝇觅食行为的仿生学原理而提出的一种新兴群体智能优化算法。
果蝇优化算法(FOA)通过模拟果蝇利用敏锐的嗅觉和视觉进行捕食的过程,FOA实现对解空间的群体迭代搜索。FOA原理易懂、操作简单、易于实现,具有较强的局部搜索能力。
果蝇算法可应用于求解最优解:
果蝇群体迭代搜寻食物的步骤如下:
(1)随机初始化果蝇群体位置。
Init X_axis
Init Y_axis
(2)赋予果蝇个体利用嗅觉搜寻食物的随机距离与方向。
Xi = X_axis + Random Value
Yi = Y_axis + Random Value
(3)由于无法得知食物的位置,因此先估计与原点的距离(Dist),再计算味道浓度判定值(S),此值为距离的倒数。
Disti = sqrt(Xi^2 + Yi^2)
Si = 1 / Disti
(4)味道浓度判定值(S)代入味道浓度判定函数(或称为Fitness function)以求出该果蝇个体位置的味道浓度(Smelli)。
Smelli = Function(Si)
(5)找出该果蝇群体中味道浓度最高的果蝇(求极大值)。
[bestSmell bestIndex] = max(Smell)
(6)保留最佳味道浓度值与x、y的坐标,此时果蝇群体利用视觉往该位置飞去。
Smellbest = bestSmell
X_axis = X(bestIndex)
Y_axis = Y(bestIndex)
(7)进入迭代寻优,重复执行步骤2-5,并判断味道浓度是否优于前一迭代味道浓度,若是则实行步骤6。
2、基于果蝇算法的WSN节点部署
1、参数设置
FOA 实验部分参数设置如下:部署区域为50 × 50 50×5050×50,网格点设置为0.4 × 0.4 0.4×0.40.4×0.4,搜索步长0.3,种群规模20,迭代次数为500,传感器感知半径r s = 5 rs=5rs=5,PSO和GSO的实验参数设置同文献[3]和文献[4]一样。
2、MATLAB程序实现
- 计算WSN覆盖率函数
- FOA主函数
- 结果分析
初始随机值和最终的最优解如下:
对应的覆盖图如图1、图2所示。
图1 FOA-WSN初始覆盖效果
图2 FOA-WSN最终覆盖效果
覆盖率变化如图3所示。
图3 WSN节点覆盖率变化
三、算法对比将传感器节点数目设置为35,为克服实验的随机现象,更好的观察算法的性能,三种算法(FOA、PSO、改进GSO)都分别独立做了15次实验,它们的平均覆盖率、标准差以及最好、最差的覆盖率如表1所示。
表1 35 个节点下覆盖率的比较结果
然后,为了进一步更加形象化观察算法的改进性能,随机选取一组初始部署节点的数据利用三种算法对节点进行优化,图4是覆盖率进化曲线对比图。
图4 三种算法网络覆盖率比较图
由表1可知,本文提出的算法(FOA)的平均覆盖率、最好和最差覆盖率均高于PSO和改进GSO相对应的结果,且标准差较PSO和改进GSO小,说明结果更稳定;由图4可知,本文提出的算法在50次迭代的时候覆盖率就超过其他算法,然后在160次迭代的时候逐渐收敛。
因此,可以得出结论:本文提出的FOA算法相比较PSO、改进GSO而言收敛速度更快,有更高更稳定的覆盖率。
[2] 张谦. 基于群智能算法的无线传感器网络覆盖优化研究[D].湖南大学,2015.
[3] Liao W H , Kao Y , Li Y S . A sensor deployment approach using glowworm swarm optimization algorithm in wireless sensor networks[J]. Expert Systems with Applications, 2011, 38( 10):12180-12188.
[4] Ab Aziz N A , Alias M Y , W. Mohemmed A . A wireless sensor network coverage optimization algorithm based on particle swarm optimization and Voronoi diagram[C]// International Conference on Networking. IEEE, 2009.
[5] Pan W T . A new Fruit Fly Optimization Algorithm: Taking the financial distress model as an example[J]. Knowledge-Based Systems, 2012, 26(2):69-74.