资讯详情

【布局优化】基于鲸鱼算法实现3D无线传感器网(WSN)覆盖优化 Matlab源码

一、WSN模型

45c880f712c2449a057cdb04f1092321.png

二、鲸鱼算法

图1 座头鲸泡泡捕食示意图

据研究,鲸鱼大脑的某些区域有类似于人类的梭形细胞,负责人类的判断、情感和社会行为。鲸鱼的细胞数量是成年人的两倍,这是它们聪明的主要原因。事实证明,鲸鱼可以像人类一样思考、学习、判断、交流,甚至情绪化,但显然它的智力水平要低得多。

鲸鱼(主要是虎鲸)也可以发展自己的方言。座头鲸最有趣的是它们特殊的捕猎方法。这种觅食被称为泡泡网觅食。座头鲸喜欢在海边捕食磷虾或小鱼。据观察,这种觅食是通过沿着圆形或9形路径创造独特的气泡来完成的,如图1所示。在2011年之前,这种行为仅基于地表观察。后来利用传感器展开了更深入的研究,他们捕获了9头座头鲸的300个标签衍生的泡泡网进食事件。他们发现了两个与气泡有关的动作,并将其命名为向上螺旋和双环。在之前的策略中,座头鲸会潜水12米,然后开始在猎物周围产生螺旋气泡,然后游向水面。值得一提的是,泡泡网捕食是座头鲸只能观察到的独特行为。本文介绍了如何利用螺旋泡沫网捕食机制进行数学建模,以达到优化的目的。

座头鲸可以识别猎物的位置并包围它们。由于优化设计在搜索空间中的位置不是先验已知的,WOA算法假设目前的最佳候选人是目标猎物或接近最佳解决方案。在定义最佳搜索个体后,其他搜索个体将尝试更新其位置到最佳搜索个体。该行为由以下方程表示:

(1)

(2)

t表示当前迭代,

是系数向量,X*是目前获得的最佳位置向量,

位置向量,| |为绝对值,为逐元素乘法。值得一提的是,如果有更好的解决方案,则应在每次迭代中更新X。

向量

计算方法如下:

(3)

(4)

这里

在迭代过程中(勘探和开发阶段)从2到0是线性递减的,

是[0,1]中的随机向量。

图2 二维和三维位置向量及其可能的下一个位置 (其中X*是目前获得的最佳解决方案)

图2(a)结合一个二维问题说明了公式(2)背后的原理。搜索个体的位置(X,Y)根据当前最佳记录的位置(X*,Y*)更新。可以调整最佳个体的不同位置

得到向量。图2(b)还描述了搜索在三维空间中可能更新的位置。需要注意的是,图2所示关键点之间的搜索空间中的任何位置都可以通过定义随机向量来实现。因此,公式2允许任何搜索个体更新其在当前最佳解决方案附近的位置,并模拟包围猎物。同样的概念可以扩展到n维搜索空间,搜索个体将在超立方体中移动,以获得迄今为止最好的解决方案。

设计了以下两种方法:

:这种行为是通过减少这种行为

来实现,

也因此变成(-a, a)随机量之间,a在迭代过程中,从2减到0。设置随机值

在[- 在1,1]中,搜索个体的新位置可以定义为介于原个体位置和当前最佳个体位置之间的任何位置。(a)二维空间0≤a≤1可以实现从(X,Y)变到(X*,Y*)可能的位置。

:如图3(b)这种方法首先计算在位(X,Y)鲸鱼和位置(X,Y,Y)猎物之间的距离。然后在鲸鱼和猎物之间建立螺旋方程,模拟座头鲸的螺旋运动,如(5):

(5)

这里

表示第i条鲸与猎物的距离(目前最好的解决方案),b对数螺旋形状的常数,l为[- 1、1]随机数,是元素对元素的乘法。

图3 bubbly -net搜索机制在WOA中实现(X是目前获得的最佳解决方案)

(a)收缩环绕机制 (b)螺旋更新位置

座头鲸在一个逐渐缩小的圆圈着猎物游动,沿着螺旋路径游动。为了模拟这种同时发生的行为,我们假设在缩小的包围机制和螺旋模型之间做出选择的概率为50%,以更新鲸鱼的位置。模型如下:

(6)

其中

是随机数。

座头鲸是根据彼此的位置随机搜索的。随机计算的

当比-1小或比1大时,强迫搜索个人远离参考鲸鱼。与开发阶段相比,我们根据随机选择的搜索个人更新搜索代理在探索阶段的位置,而不是根据发现的最佳搜索个人,这将使WOA可进行全局搜索。此时的数学模型是:

(7)

(8)

这里

图4显示了随机一头鲸对应的随机位置

一些特殊解决方案的可能位置。

图4WOA算法中的勘探机制(X*是随机值)

WOA算法从一组随机解开始。在每次迭代中,搜索个体根据随机选择的搜索个体或获得的最佳解更新其位置,将a参数从2逐渐减少到0,以支持勘探和开发。

选择随机搜索个体;

选择最优解作为搜索个体。

根据p的值,WOA当满足终止标准时,可以在螺旋运动和圆形运动之间切换WOA算法

三、代码

%% 清除环境变量 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
% 初始化领导者的位置和适应度值
[bestfitness, bestindex] = max(fitness);
gbest= X(bestindex, :);
fitnessgbest = bestfitness;
num2str(fitnessgbest)]);
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('WOA覆盖率进化曲线', '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优化覆盖';

6.参考文献

[1] 史朝亚. 基于PSO算法无线传感器网络覆盖优化的研究[D]. 南京理工大学.

标签: tsp100传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台