VAGWO速度辅助灰狼优化算法的MATLAB实现与仿真

1.算法仿真效果

matlab2022a仿真结果如下:

基于VAGWO速度辅助灰狼优化算法的matlab仿真_解决方案基于VAGWO速度辅助灰狼优化算法的matlab仿真_解决方案_02基于VAGWO速度辅助灰狼优化算法的matlab仿真_迭代_03



2.算法涉及理论知识概要

灰狼优化算法(GWO),灵感来自于灰狼.GWO算法模拟了自然界灰狼的领导层级和狩猎机制.四种类型的灰狼,如 α,β,δ,w 被用来模拟领导阶层。此外,还实现了狩猎的三个主要步骤:寻找猎物、包围猎物和攻击猎物。

登录后复制

为了在设计GWO算法时对灰狼的社会等级进行数学建模,我们将最适解作为α .因此,第二和第三个最佳解决方案分别被命名为 β 和 δ .剩下的候选解被假定为 w .在GWO算法中,狩猎过程由 ,α,β 和 δ 引导. w 狼跟随这三只狼。




在狩猎过程中,将灰狼围捕猎物的行为定义如下:

D=|C⋅Xp(t)−X(t)| (1)

X(t+1)=Xp(t)−A⋅D (2)

式(1)表示个体与猎物间的距离,式(2)是灰狼的位置更新公式.其中, t 是目前的迭代代数, A 和 C 是系数向量, Xp 和 X 分别是猎物的位置向量和灰狼的位置向量. A 和 C 的公式如下:

A=2a⋅r1−a (3)

C=2⋅r2 (4)

其中, a 是收敛因子,随着迭代次数从2线性减小到0, r1 和 r2 的模取[0,1]之间的随机数.



2.2 狩猎

灰狼能够识别猎物的位置并包围它们.当灰狼识别出猎物的位置后, β 和 δ 在 α 的带领下指导狼群包围猎物.灰狼个体跟踪猎物位置的数学模型描述如下:

Dα=|C1⋅Xα−X|

Dβ=|C2⋅Xβ−X| (5)

Dδ=|C3⋅Xδ−X|

其中, Dα , Dβ和 Dδ 分别表示 α,β 和 δ 与其他个体间的距离; Xα,Xβ 和 Xδ 分别代表 α,β 和 δ 当前位置; C1,C2,C3 是随机向量, X 是当前灰狼的位置。

X1=Xα−A1⋅(Dα)

X2=Xβ−A2⋅(Dβ) (6)

X3=Xδ−A3⋅(Dδ)

X(t+1)=X1+X2+X33 (7)

式(6)分别定义了狼群中 w 个体朝向 α,β 和 δ 前进的步长和方向,式(7)定义了ω的最终位置。



2.3 攻击猎物

登录后复制

当猎物停止移动时,灰狼通过攻击来完成狩猎过程.为了模拟逼近猎物, a 的值被逐渐减小,因此 A 的波动范围也随之减小.换句话说,在迭代过程中,当 a 的值从2线性下降到0时,其对应的 A 的值也在区间 [−a,a] 内变化.如图3所 示,当 A 的值位于区间内时,灰狼的下一位置可以位于其当前位置和猎物位置之间的任意位置.当 |A|<1 时,狼群向猎物发起攻击(陷入局部最优).当 |A|>1 时,灰狼与猎物分离,希望找到更合适的猎物(全局最优).


GWO算法还有另一个组件 C 来帮助发现新的解决方案.由式(4)可知, C 是[0,2]之 间 的随机值. C 表示狼所在的位置对猎物影响的随机权重, C>1 表示影响权重大,反之,表示影响权重小.这有助于GWO算法更随机地表现并支持探索,同时可在优化过程中避免陷入局部最优.另外,与 A 不同, C 是非线性减小的.这样,从最初的迭代到最终的迭代中,它都提供了决策空间中的全局搜索.在算法陷入了局部最优并且不易跳出时, C 的随机性在避免局部最优方面发挥了非常重要的作用,尤其是在最后需要获得全局最优解的迭代中.





3.MATLAB核心程序


登录后复制

run=1; %执行的最大算法运行次数
np=30; % 搜索代理数
%F1 to F13 
Function_name='F6'; 
 
maxit=5000; % 最大迭代次数
elitism=1; 
a_max=sqrt(2); %加速度系数上限 
a_min=0; % 加速度系数的下限
c_max=1; % 领先狼群乘数的上限
c_min=0; % 领先狼群乘数的下限
k_max=0.9; % 惯性重量上限
k_min=0.4; % 惯性重量下限
[lb,ub,nx,fobj]=Objective_Function(Function_name); % 加载所选基准函数的详细信息
varmax=ub*ones(1,nx); % 为通常可以是所需向量的位置定义的上界
varmin=lb*ones(1,nx); % 为通常可以是所需向量的位置定义的下限
limvel=0.1; % 搜索空间中最大距离与最大速度之比
velmax=limvel*(varmax(1,1:nx)-varmin(1,1:nx)); % 速度上限定义
velmin=-velmax; % 速度的下限
.................................................................
for nrun=1:run
[z_iter,z_final,pos_final]=VAGWO(np,nx,maxit,varmax,varmin,velmax,velmin,k_max,
k_min,a_max,a_min,c_max,c_min,fobj,elitism);
z_iter_main(nrun,1:maxit)=z_iter(1:maxit);
z_final_main(nrun)=z_final;
pos_final_main(nrun,1:nx)=pos_final(1:nx);
end
 
 
for i=1:maxit
    x1(i)=i;sum1=0;
    for j=1:run
        sum1=sum1+z_iter_main(j,i);
    end
    y1(i)=sum1/run;
end
semilogy(x1,y1,'b')
xlabel('Iteration');
ylabel('Average');
title('VAGWO');






免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空