1 简介
为了有效提高无线传感器网络的节点覆盖率,提出一种基于蚁狮算法的网络覆盖优化方法.
2 部分代码
%% 清除环境变量
clear;
clc;
%% 网络参数
L = 100; % 区域边长
V = 80; % 节点个数
Rs = 7; % 感知半径
Rc = 14; % 通信半径
Re = 1; % 感知误差
data = 1; % 离散粒度
%% 初始化参数
N = 30; % 种群规模
dim = 2*V; % 维数
lb = 0; % 自变量下限
ub = L; % 自变量上限
Current_iter = 1; % 迭代次数初值
Max_iter = 300; % 最大迭代次数
%% 初始化位置
%% 初始结果显示
gbest = Elite_antlion_position;
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(Elite_antlion_fitness)]);
% 初始覆盖图
figure;
for i = 1:V
axis([0 L 0 L]); % 限制坐标范围
sita = 0:pi/100:2*pi; % 角度[0, 2*pi]
hold on;
fill(x(i)+Rs*cos(sita), y(i)+Rs*sin(sita), 'b');
plot(x(i)+Rs*cos(sita), y(i)+Rs*sin(sita), 'b');
end
plot(x, y, 'r+');
title '初始部署';
%% 迭代
while Current_iter < Max_iter+1
end
%% 绘图
figure;
plot(Best_fitness, 'k', 'lineWidth', 3); % 画出迭代图
title('ALO算法覆盖率进化曲线', 'fontsize', 13);
xlabel('迭代次数', 'fontsize', 12);
ylabel('覆盖率', 'fontsize', 12);
img =gcf; %获取当前画图的句柄
print(img, '-dpng', '-r600', './img2.png') %即可得到对应格式和期望dpi的图像
%% 初始结果显示
x = gbest(1:2:end);
y = gbest(2:2:end);
disp('最终位置:' );
for i = 1:V
display([num2str(x(i)), ' ', num2str(y(i))])
end
disp(['最终覆盖率:', num2str(Elite_antlion_fitness)]);
% 最终覆盖图
figure;
for i = 1:V
axis([0 L 0 L]); % 限制坐标范围
sita = 0:pi/100:2*pi; % 角度[0, 2*pi]
hold on;
fill(x(i)+Rs*cos(sita), y(i)+Rs*sin(sita), 'g');
end
plot(x, y, 'ks');
title 'ALO优化覆盖';
img =gcf; %获取当前画图的句柄
print(img, '-dpng', '-r600', './img1.png') %即可得到对应格式和期望dpi的图像
3 仿真结果
4 参考文献
[1]徐钦帅, 何庆, and 魏康园. "改进蚁狮算法的无线传感器网络覆盖优化." 传感技术学报 32.02(2019):266-275.
本文摘自 :https://blog.51cto.com/u