1 简介
为有效提高无线传感器网络的节点覆盖率,
2 部分代码
%_________________________________________________________________________% % 基于麻雀优化的WNS覆盖优化算法,3D版 % %_________________________________________________________________________% clearall clc rng('default'); %% 设定WNS覆盖参数, %% 默认输入参数为整数。如果您想定义小数,请乘以系数到整数进行转换。 %% 比如范围1*1,R=0.03可以转换为100*100,R=3; %区域范围为AreaX*AreaY*AreaZ AreaX=100; AreaY=100; AreaZ=100; N=20;节点数%覆盖 R=15;%通信半径 %% 设置麻雀优化参数 pop=30;% 种群数量 Max_iteration=30;设置最大迭代次数% lb=ones(1,3*N); ub= [AreaX.*ones(1,N),AreaY.*ones(1,N),AreaZ.*ones(1,N)]; dim=3*N;%维度为3N,N个坐标点 fobj=@(X)fun(X,N,R,AreaX,AreaY,AreaZ);%适应性函数 [Best_pos,Best_score,SSA_curve]=SSA(pop,Max_iteration,lb,ub,dim,fobj);%开始优化 figure SSA_curve=1-SSA_curve;%将未覆盖率转换为未覆盖率。 plot(SSA_curve,'Color','r') title('Objective space') xlabel(迭代次数); ylabel(覆盖率); axistight gridon boxon legend('SSA') img=gcf; %获得当前绘图的句柄 print(img,'-dpng','-r600','./img.png') %可以得到相应的格式和期望dpi的图像 display([最终获得的最优覆盖率 : ',num2str(1-Best_score)]); %Coordinate存储代表覆盖的坐标点 %CoordinateNumber 代表所覆盖的坐标点的数量 [score,Coordinate,Best_pos,CoordinateNumber] =fun(Best_pos,N,R,AreaX,AreaY,AreaZ); figure plot3(Best_pos(1:N),Best_pos(N 1:2*N),Best_pos(2*N 1:3*N),'r.','MarkerSize',40);%画节点 holdon; plot3(Coordinate(1:CoordinateNumber,1),Coordinate(1:CoordinateNumber,2),Coordinate(1:CoordinateNumber,3),'b.','MarkerSize',0.1)%绘制覆盖区域; holdoff; title('SSA-WSN最终结果 gridon; legend('WSN节点,覆盖区域, img=gcf; %获得当前绘图的句柄 print(img,'-dpng','-r600','./img1.png') %可以得到相应的格式和期望dpi的图像
3 仿真结果
4 参考文献
[1]王振东, 汪嘉宝, 李大海. 无线传感器网络覆盖优化研究是一种增强麻雀搜索算法[J]. 传感技术学报, 34(6):11.