【获取资源
请见文章第5节:资源获取】
1. 基础北方苍鹰优化算法
1.1 猎物识别阶段(勘探阶段)
1.2 追击和逃逸阶段(开发阶段)
2. 改进的北方苍鹰优化算法
2.1 立方混沌Cubic映射
2.2 透镜成像反向学习
基于透镜成像的反向学习策略根据缩放因子动态调节反向解的数量,从而优化种群数量并使算法避免局部最优。
透镜成像反向学习得到的反向解为:
其中,m为缩放因子,ad和bd分别为上下限,Xi为正向解或者叫原始解,Xi*为反向解。特殊地,当m=1时为一般的反向学习策略。
2.3 最优最差反向学习策略
(1)对于最优个体,对其进行反向学习,避免算法早熟,从而提高算法的局部寻优能力。反向解如下:
(2)对于最差个体,对其进行随机反向学习,提高其全局搜索能力。随机反向解如下:
3. 部分代码展示
%%立方混沌初始化加反向折射机制的的种群初始化
X=initializationNew(SearchAgents,dimension,upperbound,lowerbound, fitness);
for i =1:SearchAgents
Flag4ub=X(i,:)>upperbound;
Flag4lb=X(i,:)<lowerbound;
X(i,:)=(X(i,:).*(~(Flag4ub+Flag4lb)))+upperbound.*Flag4ub+lowerbound.*Flag4lb;
L=X(i,:);
fit(i)=fitness(L);
end
%%
%% 改进点:混合反向学习策略
% 对最优位置,透镜成像反向学习策略
n=1;
Temp = (upperbound + lowerbound)./2 + (upperbound + lowerbound)./(2*n) - Xbest./n;
% 边界越界处理
Flag4ub=Temp>upperbound;
Flag4lb=Temp<lowerbound;
Temp=(Temp.*(~(Flag4ub+Flag4lb)))+upperbound.*Flag4ub+lowerbound.*Flag4lb;
fitTemp = fitness(Temp);%计算适应度值
if(fitTemp<fbest)
fbest = fitTemp;
Xbest = Temp;
end
% 对最差位置,随机反向学习策略
[fitWorst,indexWorst] = max(fit(i));
WorstPosition = X(indexWorst);
Temp = lowerbound + rand(1,dimension).*(upperbound - WorstPosition);
Temp=(Temp.*(~(Flag4ub+Flag4lb)))+upperbound.*Flag4ub+lowerbound.*Flag4lb;
fitTemp = fitness(Temp);%计算适应度值
if(fitTemp<fitWorst)
fit(indexWorst) = fitTemp;
X(indexWorst,:) = Temp;
end
4. 结果展示
5. 资源获取
在F1、F2、F3上表现优异,可以获取完整代码资源。
6. 参考文献
付雪,朱良宽,黄建平,王璟瑀,Arystan Ryspayev.基于改进的北方苍鹰算法的多阈值图像分割[J/OL].计算机工程.