1 算法介绍
一种基于樽海鞘群算法的无线传感器网络节点定位方法,包括初始化樽海鞘群个体节点,判断节点位置,将节点位置作为食物源对周围环境进行链式搜索,找到其余节点进行确认,并转为食物源变量进行迭代搜索,最终搜索出所有节点并输出等步骤.本发明的方法具有更好的定位精确度和收敛性,并且在定位成本和计算复杂度上都优于现有的传统算法,适用于无线传感器网络定位系统.
1.1 wsn模型
1.2 樽海鞘群算法
2 部分代码
%% 清除环境变量
clear
clc
%% 网络参数
L = 50; % 区域边长
V = 35; % 节点个数
Rs = 5; % 感知半径
Rc = 10; % 通信半径
Re = 0.1; % 感知误差
data = 1; % 离散粒度
%% SSA参数
N = 30; % 种群规模
dim = 2*V; % 维数
ub = L;
lb = 0;
Max_iter = 300;
% 初始化节点位置
X = rand(N, dim).*(ub-lb)+lb;
% 计算适应度值
for i = 1:N
fitness(i) = fun(X(i, :), L, Rs, Re, data);
end
end
%% 结果显示
x = gbest(1:2:end);
y = gbest(2:2:end);
disp('最优位置:' );
for i = 1:V
disp([num2str(x(i)), ' ', num2str(y(i))]);
end
disp(['最优覆盖率:', num2str(fitnessgbest)]);
%% 绘图
figure;
plot(Curve, 'r', 'lineWidth', 2); % 画出迭代图
title('SSA覆盖率进化曲线', 'fontsize', 12);
xlabel('迭代次数', 'fontsize', 12);
ylabel('网络覆盖率', 'fontsize', 12);
figure
for i = 1:V
axis([0 ub 0 ub]); % 限制坐标范围
sita = 0:pi/100:2*pi; % 角度[0, 2*pi]
hold on;
fill(x(i)+Rs*cos(sita), y(i)+Rs*sin(sita), 'k');
end
plot(x, y, 'r+');
title 'SSA优化覆盖';
3 仿真结果
4 参考文献
[1]苏军, 施肖肖, 王春枝,等. 一种基于樽海鞘群算法的无线传感器网络节点定位方法:, CN111031502A[P]. 2020.