基于Sinusoidal混沌映射的麻雀搜索算法求解单目标优化问题附matlab代码
基于Sinusoidal混沌映射的麻雀搜索算法求解单目标优化问题附matlab代码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
个人主页: Matlab科研工作室
个人信条:格物致知。
更多Matlab仿真内容点击
智能优化算法 神经网络预测 雷达通信 无线传感器
信号处理 图像处理 路径规划 元胞自动机 无人机
⛄ 内容介绍
麻 雀搜索算法是一种新型的群智能优化算法 , 在 2020 年由 Xue 等 [15] 提出 , 主要是受麻雀的觅食 和 反哺食行为启发 , 具有寻优能力强 、 收敛速度快 的特点 。 麻 雀搜索算法将整个麻雀种群分为三类 , 即寻 找 食物的生产者 , 抢夺食物的加入者和发现危险的 警 戒者 。 生产者和加入者可以相互转化 , 但各自在 种 群中的占比不会发生变化 。 在模拟实验中 , 需要使用虚拟麻雀进行食物的 寻 找 , 与其他寻优算法相同 , 麻雀搜索算法首先需 要 对麻雀种群与适应度值进行初始化 , 麻雀种群可 初始化为如下形式 , 表达式为 式 (3)
中 : n 为麻雀的数量 ; d 为要优化的变量的维 度即独立参数的数目; xnd 为第 n 只麻雀第 d 维度的值。 由此,总体麻雀适应度值表征形式为
式 (4) 中: f(x) 为个体适应度值。适应度值较好的麻雀 ( 即生产者 ) 在搜索中会优先获得食物并指引群体的觅食方向与范围,与此同时,生产者会具有更大的觅食搜索范围。生产者在觅食过程中,位置不断发生移动,而在遇到捕食者时,移动规则又会发生改变,即
式 (5) 中: t 为当前迭代次数; j∈{1 , 2 , … , d} ; x i , j 为迭代第 t 次时,第 i 个麻雀的第 j 个维度的值; α∈(0 , 1] ,为随机数; iter _ max 为迭代次数最多的常数; R2∈[0 , 1] ,为报警值; ST∈[0 , 1] ,为安全阈值; Q 为服从正态分布的随机数; L 为 1×d 阶矩阵 ( 元素全为 1) 。 R2 < ST 时,代表该区域安全,无捕食者出没,生产者会出现大范围觅食行为; R2≥ST 时,表示一些麻雀发现了捕食者并发出警告,所有麻雀迅速飞入安全区域。而对加入者而言,在觅食过程中,一旦生产者找到了好的食物源,加入者必会知晓,并飞向它的附近抢食,同时,也有加入者会时刻监视生产者,随时准备争抢食物。由此加入者的位置更新规则为
式 (6) 中: xp 为生产者占据的最佳位置; xworst 为全局最差位置; A 为 1×d 阶矩阵,每个元素随机为 1 或- 1 ; A† = AT(AAT) - 1 。当 i > 时,表示适应性较差的第 i 个加入者抢夺食物失败,为了更好地获得食物避免挨饿只能飞往其他地区进行觅食。 总体而言,假设意识到危险的麻雀 ( 即警戒者 ) 占 10 % ~20 %。初始位置则随机产生,规则为
式 (7) 中: λ 为步长控制函数,是一个均值为 0 ,方差为 1 的正态分布随机数; fi 为当前麻雀适应值; fg 为全局最好适应值; fw 为全局最差适应值; k 为麻雀移动方向; xbest 为全局最优位置; ε 为最小常数,避免除数为零。当 fi > fg 时,警戒者位于种群边缘,意识到危险后向中央安全区靠近;当 fi = fg 时,则是处于种群中央的麻雀意识到了危险,为躲避危险,则向其他麻雀身边靠拢。
⛄ 部分代码
%_________________________________________________________________________________
% Salp Swarm Algorithm (SSA) source codes version 1.0
%
% Main paper:
% S. Mirjalili, A.H. Gandomi, S.Z. Mirjalili, S. Saremi, H. Faris, S.M. Mirjalili,
% Salp Swarm Algorithm: A bio-inspired optimizer for engineering design problems
% Advances in Engineering Software
% DOI: http://dx.doi.org/10.1016/j.advengsoft.2017.07.002
%____________________________________________________________________________________
function [FoodFitness,FoodPosition,Convergence_curve]=SSA(N,Max_iter,lb,ub,dim,fobj)
if size(ub,1)==1
ub=ones(dim,1)*ub;
lb=ones(dim,1)*lb;
end
Convergence_curve = zeros(1,Max_iter);
%Initialize the positions of salps
SalpPositions=initialization(N,dim,ub,lb);
FoodPosition=zeros(1,dim);
FoodFitness=inf;
%calculate the fitness of initial salps
for i=1:size(SalpPositions,1)
SalpFitness(1,i)=fobj(SalpPositions(i,:));
end
[sorted_salps_fitness,sorted_indexes]=sort(SalpFitness);
for newindex=1:N
Sorted_salps(newindex,:)=SalpPositions(sorted_indexes(newindex),:);
end
FoodPosition=Sorted_salps(1,:);
FoodFitness=sorted_salps_fitness(1);
%Main loop
l=2; % start from the second iteration since the first iteration was dedicated to calculating the fitness of salps
while l<Max_iter+1
c1 = 2*exp(-(4*l/Max_iter)^2); % Eq. (3.2) in the paper
for i=1:size(SalpPositions,1)
SalpPositions= SalpPositions’;
if i<=N/2
for j=1:1:dim
c2=rand();
c3=rand();
%%%%%%%%%%%%% % Eq. (3.1) in the paper %%%%%%%%%%%%%%
if c3<0.5
SalpPositions(j,i)=FoodPosition(j)+c1*((ub(j)-lb(j))*c2+lb(j));
else
SalpPositions(j,i)=FoodPosition(j)-c1*((ub(j)-lb(j))*c2+lb(j));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
elseif i>N/2 && i<N+1
point1=SalpPositions(:,i-1);
point2=SalpPositions(:,i);
SalpPositions(:,i)=(point2+point1)/2; % % Eq. (3.4) in the paper
end
SalpPositions= SalpPositions’;
end
for i=1:size(SalpPositions,1)
Tp=SalpPositions(i,:)>ub’;Tm=SalpPositions(i,:)<lb’;SalpPositions(i,:)=(SalpPositions(i,:).*(~(Tp+Tm)))+ub’.*Tp+lb’.*Tm;
SalpFitness(1,i)=fobj(SalpPositions(i,:));
if SalpFitness(1,i)<FoodFitness
FoodPosition=SalpPositions(i,:);
FoodFitness=SalpFitness(1,i);
end
end
Convergence_curve(l)=FoodFitness;
l = l + 1;
end
⛄ 运行结果
⛄ 参考文献
[1]黄敬宇. 融合t分布和Tent混沌映射的麻雀搜索算法研究[D]. 兰州大学.
❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
