0
点赞
收藏
分享

微信扫一扫

【WSN定位】基于matlab磷虾群算法求解WSN定位优化问题【含Matlab源码 448期】

一、 磷虾群算法简介

通过研究南极磷虾觅食和生活习性的仿真模拟实验, 2012年Gandomi和Alavi提出了一种处理复杂优化问题的磷虾群算法。KH算法仍然属于粒子智能算法, 它采用实数编码随机产生初始种群。KH算法总是重复完成3种运动, 通过迭代搜索直至最佳位置。每一只磷虾的进化受3个运动分量的协同影响:邻居诱导、觅食活动和随机扩散。

KH算法采用拉格朗日模型:
【WSN定位】基于matlab磷虾群算法求解WSN定位优化问题【含Matlab源码 448期】_matlab
其中Ni是邻居诱导, Fi是觅食活动, Di是随机扩散, i=1, 2, …NP, NP是种群数。
运动分量1:受周围磷虾“邻居”诱导的运动速度Ni
【WSN定位】基于matlab磷虾群算法求解WSN定位优化问题【含Matlab源码 448期】_参考文献_02
其中, Nmax为最大诱导速度, αi为诱导方向, ωn为诱导惯性权重。
运动分量2:磷虾个体的觅食运动速度Fi
【WSN定位】基于matlab磷虾群算法求解WSN定位优化问题【含Matlab源码 448期】_线性代数_03
其中, Vf是最大觅食速度, βi为觅食方向, ωf为觅食惯性权重, βifood和βibest分别为受“食物”和粒子本身历史最优个体诱导的方向。

运动分量3:磷虾个体的随机扩散运动速度Di
【WSN定位】基于matlab磷虾群算法求解WSN定位优化问题【含Matlab源码 448期】_信号处理_04
其中, Dmax为最大随机扩散速度, σ为随机扩散方向。
基于上述3种运动分量, 每一磷虾从时间t到t+Δt的更新后位置应该表示为
【WSN定位】基于matlab磷虾群算法求解WSN定位优化问题【含Matlab源码 448期】_matlab_05

二、部分源代码

clc
clear
close all
global N M %%N是未知节点数目,M是已知节点数目
ll=10;
dd=10;
N=1;M=4;

Vmax=1;
Vmin=-1;

number=N+M;
rand('state',sum(100*clock)*rand(1))

nodecoor0 =[0 0
0 dd
dd 0
dd dd ];
nodecoor =[dd*rand(N,2)
nodecoor0];
% nodecoor =[dd*rand(N+M,2)];
actualunknownnodecoor=nodecoor(1:N,:) ; %取50个点为未知的,未知节点实际坐标随机分布在dd*dd的区域内
actualunknownnodecoor1=actualunknownnodecoor' ;

undis=L2_distance(nodecoor',nodecoor') ; %%计算节点两两之间的欧拉距离

noise=zeros((N+M),(N+M));
noise_value=1;
for i=1:N
for j=1:(N+M)
if i<j
noise(i,j)=noise_value;
noise(j,i)=noise(i,j);
end
end
end

三、运行结果

【WSN定位】基于matlab磷虾群算法求解WSN定位优化问题【含Matlab源码 448期】_matlab_06
【WSN定位】基于matlab磷虾群算法求解WSN定位优化问题【含Matlab源码 448期】_matlab_07

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
[4]李玲纯,高来鑫.改进磷虾群算法在变电站选址中的应用[J].重庆工商大学学报(自然科学版). 2018,35(03)


举报

相关推荐

0 条评论