欢迎来到本博客❤️❤️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
本文目录如下:
目录
1 概述
2 运行结果
2.1 有障碍物
2.2 无障碍物
3 参考文献
4 Matlab代码、数据、文章讲解
文献来源:
摘要:针对监测区域内含有障碍物的无线传感器网络(Wireless Sensor Networks,WSNs)异构节点部署优化问题,在花朵授粉算法(FlowerPollinationAlgorithm,FPA)的基础之上,提出了一种改进的花朵授粉算法(Improved Flower Pollination Algorithm,IFPA)用于改善原有算法收敛速度慢、精度不够高的不足。设计非线性收敛因子以约束原有的缩放因子,采用Tent映射以维持迭代后期种群的多样性,而贪心交叉策略则是以较优的个体辅助较差个体搜索。基准函数实验验证了IFPA具有较好的收敛性能,而WSN部署的仿真实验表明IFPA可得到较高的覆盖率,可节约网络部署成本。
关键词:
无线传感器网络;覆盖优化;异构节点;障碍物;改进花朵授粉算法;
随着 5G 和物联网的发展,无线传感器网络 在医疗健康、环境监测和工业领域有着广泛的应
用[1-3]。近些年,研究者在无线传感器网络(Wireless Sensor Networks, WSNs)中的路由协议、定位和覆盖方面研究成果丰硕[4-6],其中覆盖优化是 WSN 的一个最基本问题[7]。随着群智能算法在优化问题上的广泛应用,近些年的研究大多是以智能优化算法实现节点的动态部署。文献[8]提出了一种根据当前搜索状态自适应搜索的粒子群优化(Particle SwarmOptimization,PSO)算法,利用改进的 PSO 优化传感器网络部署,提高了网络的自适应能力,但算法本身仍存在陷入局部最优的不足。文献[9]是利用改进的虚拟弹簧力算法 (Virtual Spring ForceAlgorithm)部署正六边形网络拓扑,有效的减少了传感器网络中漏洞的面积,该方案只讨论了理想条件下的部署策略,复杂环境并未考虑。文献[10]提出一种基于改进灰狼优化(Grey Wolf Optimizer)算法的覆盖优化策略,但没有考虑实际部署中存在障碍物的情况。文献[11]以覆盖率为目标,用改进的鱼群算法(Fish Swarm Optimization)优化传感器节点的部署,显著的提高了网络覆盖面积,但只是针对同构传感器,并未考虑异构传感器和复杂情况下的监测环境。
花朵授粉算法(Flower Pollination Algorithm, FPA)是英国学者 Yang 近些年根据花朵授粉的方式
提出的一种启发式搜索算法[12]。FPA 具有较好的寻优能力和收敛性能,因而得到了广泛的应用。文献[13]将离散操作加入到 FPA 中,并把它应用到解决柔性作业车间调度的问题上,仿真实验证明了算法具有较好的搜索优化效果,但算法的收敛速度较慢。文献[14]提出了一种基于混沌搜索的改进花朵授粉算法,提高了算法跳出局部最优的能力和解的精度,并将其应用于数独问题时,算法可提供更好、更清晰的解决方案,但算法的收敛性能并没有显著提高。
几种算法比较图:
部分代码:
%以下数据验证完毕,完全正确
point = zeros(8,2);%存储这些点 从左 从上往下
point(1,:) = [x1_up,50];
point(2,:) = [0,y1_down];
point(3,:) = [0,y2_up];
point(4,:) = [x2_down,0];
point(5,:) = [x3_up,50];
point(6,:) = [50,y3_down];
point(7,:) = [50,y4_up];
point(8,:) = [x4_down,0];
%菱形的计算
point_diamond = zeros(2,4);%菱形的四个点,方位是顺时针 第一列为上 二列为右
%求出新菱形形的四个点
syms x y;%先定义一个变量
%左上角
k5 = 1;
b5 = 10;
%别搞什么计算了 直接可以看出来
point_diamond(1,1) = 25;
point_diamond(2,1) = 35;
%右上角
k6 = -1;
b6 = 60;
point_diamond(1,2) = 35;
point_diamond(2,2) = 25;
%右下角
k7 = 1;
b7 = -10;
point_diamond(1,3) = 25;
point_diamond(2,3) = 15;
%左下角
k8 = 1;
b8 = 40;
point_diamond(1,4) = 15;
point_diamond(2,4) = 25;
load struct_pop_public.mat;%加载该种群
struct_pops = struct_pop_public;%得到种群数据
load struct_first_init_public.mat%加载最开始的一个个体数据
struct_first_init = struct_first_init_public;%得到初始化个体数据
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]王振东,谢华茂,胡中栋,李大海,王俊岭.改进花朵授粉算法的无线传感器网络部署优化[J].系统仿真学报,2021,33(03):645-656.DOI:10.16182/j.issn1004731x.joss.19-0580.