您现在的位置:首页 >> 智能优化 >> 内容

基于ACGWO混沌灰狼优化算法的MATLAB对比仿真,对比标准的GWO

时间:2023/3/27 21:39:18 点击:

  核心提示:A528,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJeTk5dv

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览


3.算法概述

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

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

4.部分源码

......................................................................

    %a=2-2*((i)/Max_iter); % 对每一次迭代,计算相应的a值,a decreases linearly fron 2 to 0

    a=2-2*((1/(exp(1)-1))*(exp(i/Max_iter)-1));

    % 包围猎物,位置更新

    for i=1:size(Positions,1)

        for j=1:size(Positions,2)              

            r1=rand(); % r1 is a random number in [0,1]

            r2=rand(); % r2 is a random number in [0,1]

            A1=2*a*r1-a; % 计算系数A,Equation (3.3)

            C1=2*r2;     % 计算系数C,Equation (3.4)

            % Alpha狼位置更新

            D_alpha=abs(C1*Alpha_pos(j)-Positions(i,j)); % Equation (3.5)-part 1

            X1=Alpha_pos(j)-A1*D_alpha; % Equation (3.6)-part 1 

            r1=rand();

            r2=rand();

            A2=2*a*r1-a; % Equation (3.3)

            C2=2*r2;     % Equation (3.4)

            % Beta狼位置更新

            D_beta=abs(C2*Beta_pos(j)-Positions(i,j)); % Equation (3.5)-part 2

            X2=Beta_pos(j)-A2*D_beta;                  % Equation (3.6)-part 2       

            r1=rand();

            r2=rand(); 

            A3=2*a*r1-a; % 计算系数A,Equation (3.3)

            C3=2*r2;     %计算系数C, Equation (3.4)

            % Delta狼位置更新

            D_delta=abs(C3*Delta_pos(j)-Positions(i,j)); % Equation (3.5)-part 3

            X3=Delta_pos(j)-A3*D_delta; % Equation (3.5)-part 3             

            

            % 位置更新

            Positions(i,j)=(X1+X2+X3)/3;% Equation (3.7)

        end

        for t=1:20 %次数

      %1生成

      cxl=rand(SearchAgents_no,dim);

      

end

      for j=1:dim

          cxl(j)=4*cxl(j)*(1-cxl(j));        %logic混沌方程

      end

    end

    l=l+1;    

    Convergence_curve(l)=Alpha_score;

end

end

function Positions=initialization1(SearchAgents_no,dim,ub,lb)

Boundary_no= size(ub,2); % numnber of boundaries

for t=1:20 %次数

      %1生成

      cxl=rand(SearchAgents_no,dim);

      for j=1:dim

          if cxl(j)==0

            cxl(j)=0.1;

          end

          if cxl(j)==0.25

             cxl(j)=0.26;

          end

          if cxl(j)==0.5

             cxl(j)=0.51;

          end

          if cxl(j)==0.75

             cxl(j)=0.76;

          end

          if cxl(j)==1

             cxl(j)=0.9;

          end

      end

end

if Boundary_no==1

    Positions=cxl.*(ub-lb)+lb;

end

if Boundary_no>1

    for i=1:dim

        ub_i=ub(i);

        lb_i=lb(i);

        Positions(:,i)=cxl.*(ub_i-lb_i)+lb_i;

    end

end

end

A528

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168