目录
0 引言
改进的灰狼算法(improved grey wolf optimizer,IGWO)是Mohammad H. Nadimi-Shahraki等人在2021年基于GWO算法多样性差而提出改进智能算法。IGWO算法受益于一种新的运动策略,即基于维度学习的狩猎(DLH)搜索策略,它继承了自然界中狼的个体狩猎行为。DLH使用一种不同的方法为每只狼构建一个邻域,其中相邻的信息可以在狼之间共享,增强了局部搜索和全局搜索之间的平衡,并保持了多样性。
1 数学模型
IGWO是在GWO基础上引入维度学习的狩猎(DLH)搜索策略来提高算法多样性,同时与邻居狼群进行信息共享,提高局部开发性能,其数学模型如下:
1)初始化种群:重新定义灰狼种群位置。
式中i为种群数目,j为问题维度,uj,lj为问题维度边界。
2)定义DLH距离半径:通过欧氏距离半径来计算随机种群和GWO候选解距离,其数学模型如下:
3)定义DLH邻居位置:通过DLH距离差距定义灰狼邻居位置,其数学模型如下:
4)DLH灰狼位置更新:在DLH运动策略搜索下,灰狼位置更新如下:
5)选择和更新阶段:比较DLH运动策略灰狼适应度和α狼适应度,选出最佳参与下一迭代算法搜索。其数学模型如下:
式中f为适应度函数。
2 模型性能
IGWO-BP和GWO-BP的回归模型预测:数据来源UCI数据集
精度指标:
寻优指标:
3 Matlab代码
3.1 伪代码
3.2 IGWO主函数
% 主循环
while l<Max_iteration %white(t<最大迭代次数)
% 跟新ω狼寻找猎物
for i=1:size(Positions,1)
%% IGWO部分
%约束条件(边界)
X_GWO(i,:) = boundConstraint(X_GWO(i,:),Positions(i,:),lu);
Fit_GWO(i) = SYD(X_GWO(i,:),net);
net.trainParam.showWindow = 0; % 关闭训练窗口
end
%
radius = pdist2(Positions,X_GWO,'euclidean'); %Eq(10)
dist_Position = squareform(pdist(Positions));
r1 = randperm(SearchAgents_no,SearchAgents_no);
l=l+1;
Convergence_curve(l)=Alpha_score;
% 维度学习(DLH)的策略
for t = 1:SearchAgents_no
neighbor(t,:) = (dist_Position(t,:)<=radius(t,t));%Eq(11)
[~,idx] = find(neighbor(t,:)==1);
random_idx_neighbor = randi(size(idx,2),1,dim);
%Eq(12)
for d = 1:dim
X_DLH(t,d) = Positions(t,d) + rand.*Positions(idx(random_idx_neighbor(d)),d)- Positions(r1(t),d);
end
X_DLH(t,:) = boundConstraint (X_DLH(t,:),Positions(t,:),lu);
Fit_DLH(t) = SYD(X_DLH(t,:),net);
net.trainParam.showWindow = 0; % 关闭训练窗口
end
% 选择更新阶段Eq(13)
tmp = Fit_GWO < Fit_DLH;
tmp_rep = repmat(tmp',1,dim);
tmpFit = tmp .* Fit_GWO + (1-tmp).*Fit_DLH;
tmpPositions = tmp_rep .* X_GWO + (1-tmp_rep) .*X_DLH;
tmp = pBestScore <= tmpFit;
tmp_rep = repmat (tmp',1,dim);
pBestScore = tmp .*pBestScore + (1-tmp) .* tmpFit;
pBest = tmp_rep .* pBest + (1-tmp_rep) .* tmpPositions;
Fit = pBestScore;
Positions = pBest;
end
3.3 IGWO-BP
单输出回归、多输出回归模型、分类模型、时间序列模型代码复现:改进的灰狼算法(IGWO)Matlab代码复现-CSDN博客