當前位置:首頁 > IT技術 > 編程語言 > 正文

【優(yōu)化布局】基本蟻獅算法在WSN節(jié)點部署中的應用matlab源碼
2021-10-21 23:08:44

1 簡介

為了有效提高無線傳感器網絡的節(jié)點覆蓋率,提出一種基于蟻獅算法的網絡覆蓋優(yōu)化方法.

【優(yōu)化布局】基本蟻獅算法在WSN節(jié)點部署中的應用matlab源碼_WSN優(yōu)化布局

【優(yōu)化布局】基本蟻獅算法在WSN節(jié)點部署中的應用matlab源碼_WSN優(yōu)化布局_02

【優(yōu)化布局】基本蟻獅算法在WSN節(jié)點部署中的應用matlab源碼_WSN優(yōu)化布局_03

【優(yōu)化布局】基本蟻獅算法在WSN節(jié)點部署中的應用matlab源碼_WSN優(yōu)化布局_04

【優(yōu)化布局】基本蟻獅算法在WSN節(jié)點部署中的應用matlab源碼_WSN優(yōu)化布局_05

2 部分代碼

%% 清除環(huán)境變量
clear;
clc;
%% 網絡參數
L = 100;                         % 區(qū)域邊長
V = 80;                         % 節(jié)點個數
Rs = 7;                           % 感知半徑
Rc = 14;                        % 通信半徑
Re = 1;                    % 感知誤差
data = 1;                      % 離散粒度
%% 初始化參數
N = 30;                   % 種群規(guī)模
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優(yōu)化覆蓋';
img =gcf;  %獲取當前畫圖的句柄
print(img, '-dpng', '-r600', './img1.png')         %即可得到對應格式和期望dpi的圖像


3 仿真結果

【優(yōu)化布局】基本蟻獅算法在WSN節(jié)點部署中的應用matlab源碼_WSN優(yōu)化布局_06

【優(yōu)化布局】基本蟻獅算法在WSN節(jié)點部署中的應用matlab源碼_WSN優(yōu)化布局_07

4 參考文獻

[1]徐欽帥, 何慶, and 魏康園. "改進蟻獅算法的無線傳感器網絡覆蓋優(yōu)化." 傳感技術學報 32.02(2019):266-275.

【優(yōu)化布局】基本蟻獅算法在WSN節(jié)點部署中的應用matlab源碼_WSN優(yōu)化布局_08

本文摘自 :https://blog.51cto.com/u

開通會員,享受整站包年服務立即開通 >