【非洲秃鹫优化算法】基于circle混沌初始化和LEVY非洲秃鹫优化算法求解单目标优化问题(IAVOA2021)含Matlab源码

简介: 【非洲秃鹫优化算法】基于circle混沌初始化和LEVY非洲秃鹫优化算法求解单目标优化问题(IAVOA2021)含Matlab源码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

洲秃鹫觅食和导航行为启发而提出的一种新型元启发式优化算法,具有寻优能力强、收敛速度快等优点。AVOA是受非洲秃鹫觅食和导航行为启发提出的一种元启发式优化算法。AVOA数学描述如下。


a avoa通过通过所有适应度适应度适应度适应度炙鹤移动。

式中Ri(t) 除最优、次优蒸鹇外的其他蒸鹱位置; BestV1 BestV2 —最优蒸鹛和次优蒸鹛位置; L1 L2 01之间待测量1 pi 选择最佳蒸鹇的概率; fi 其他蒸鹛合适度; t 当前代次数;其他参数含义相同。

b)秃鹫秃鹫觅食,若经常觅食状态状态状态状态状态状态状态状态状态状态能量能量能量能量能量能量能量能量能量能量能量能量能量能量能量能量能量更强壮的猎鹰附近察觉食物。食物率数据描述为:

式中F兔饲料食用率; T 最大延迟次数; z 11之间的随机数; h 22之间的随机数; rand1 01之间的随机数; w 控制探索过程序参数,随着w值增加,计算进入研究阶段的概率增加大,反知概率减少。

c)探索阶段。炙鹤工具具有很高的视觉能力和很好的嗅觉能力。在AVOA中,炙鹤通式(5)随机搜索不同域。

式中Pi(t1)—t1次迭代秃鹫位置;Pi(t)t次迭代秃鹫位置;X秃鹫随机移动的地方,以保护食物免受其他秃鹫夺取,X2×randrand表示01之间的随机数;P1探索阶段选择参数;rand2rand3randP101之间的随机数;ublb搜索空间上、下限值;其他参数意义同上。

d)开发阶段。AVOA中,开发阶段分为开发一阶段和开发二阶段2种策略,并通过开发阶段选择参数P2P3决定采用何种策略进行位置更新。开发第一阶段秃鹫位置更新描述如下:

式中rand4rand5rand6randP201之间的随机数;P2开发第一阶段更新策略选择参数;其他参数意义同上。

开发第二阶段秃鹫位置更新描述如下:

式中BestV1(t)BestV2(t)t次迭代最优、次优秃鹫位置;randP301之间的随机数;P3开发第二阶段更新策略选择参数;Levy(d)随即游走,其每一步方向完全随机而各向同性,步长为重尾分布;其他参数意义同上。


⛄ 部分代码

function [fMin , bestX, Convergence_curve ] = DBO(XC,N, Max_iteration,lb,ub,dim,fobj  )

% [DBO_Best_score(cnt), DBO_Best_pos(cnt, :), DBO_Curve]=DBO(XC,N,Max_iteration,lb,ub,dim,fobj);

       

  P_percent = 0.2;    % The population size of producers accounts for "P_percent" percent of the total population size      

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

pNum = round( N *  P_percent );    % The population size of the producers  



lb= lb.*ones( 1,dim );    % Lower limit/bounds/     a vector

ub= ub.*ones( 1,dim );    % Upper limit/bounds/     a vector

%Initialization

for i = 1 : N

   

   x( i, : ) = lb + (ub - lb) .* rand( 1, dim );  

   fit( i ) = fobj( x( i, : ) ) ;                      

end


pFit = fit;                      

pX = x;

XX=pX;    

[ fMin, bestI ] = min( fit );      % fMin denotes the global optimum fitness value

bestX = x( bestI, : );             % bestX denotes the global optimum position corresponding to fMin


% Start updating the solutions.

for t = 1 : Max_iteration    

     

       [fmax,B]=max(fit);

       worse= x(B,:);  

      r2=rand(1);

 

 

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   for i = 1 : pNum    

       if(r2<0.9)

           r1=rand(1);

         a=rand(1,1);

         if (a>0.1)

          a=1;

         else

          a=-1;

         end

         b = rand();

   x( i , : ) =  pX(  i , :)+b*abs(pX(i , : )-worse)+a*0.1*(XX( i , :)); % Equation (1)

      else

           

          aaa= randperm(180,1);

          if ( aaa==0 ||aaa==90 ||aaa==180 )

           x(  i , : ) = pX(  i , :);  

          end

        theta= aaa*pi/180;  

     

      x(  i , : ) = pX(  i , :)+tan(theta).*abs(pX(i , : )-XX( i , :));    % Equation (2)      


       end

     

       x(  i , : ) = Bounds( x(i , : ), lb, ub );    

       fit(  i  ) = fobj( x(i , : ) );

   end

[ fMMin, bestII ] = min( fit );      % fMin denotes the current optimum fitness value

 bestXX = x( bestII, : );             % bestXX denotes the current optimum position


R=1-t/Max_iteration;                           %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Xnew1 = bestXX.*(1-R);

    Xnew2 =bestXX.*(1+R);                    %%% Equation (3)

  Xnew1= Bounds( Xnew1, lb, ub );

  Xnew2 = Bounds( Xnew2, lb, ub );

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Xnew11 = bestX.*(1-R);

    Xnew22 =bestX.*(1+R);                     %%% Equation (5)

  Xnew11= Bounds( Xnew11, lb, ub );

   Xnew22 = Bounds( Xnew22, lb, ub );

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  

   for i = ( pNum + 1 ) :12                  % Equation (4)

    x( i, : )=bestXX+((rand(1,dim)).*(pX( i , : )-Xnew1)+(rand(1,dim)).*(pX( i , : )-Xnew2));

  x(i, : ) = Bounds( x(i, : ), Xnew1, Xnew2 );

 fit(i ) = fobj(  x(i,:) ) ;

  end

 

 for i = 13: 19                  % Equation (6)


 

       x( i, : )=pX( i , : )+((randn(1)).*(pX( i , : )-Xnew11)+((rand(1,dim)).*(pX( i , : )-Xnew22)));

      x(i, : ) = Bounds( x(i, : ),lb, ub);

      fit(i ) = fobj(  x(i,:) ) ;

 

 end

 

 for j = 20 : N                 % Equation (7)

      x( j,: )=bestX+randn(1,dim).*((abs(( pX(j,:  )-bestXX)))+(abs(( pX(j,:  )-bestX))))./2;

     x(j, : ) = Bounds( x(j, : ), lb, ub );

     fit(j ) = fobj(  x(j,:) ) ;

 end

  % Update the individual's best fitness vlaue and the global best fitness value

    XX=pX;

   for i = 1 : N

       if ( fit( i ) < pFit( i ) )

           pFit( i ) = fit( i );

           pX( i, : ) = x( i, : );

       end

       

       if( pFit( i ) < fMin )

          % fMin= pFit( i );

          fMin= pFit( i );

           bestX = pX( i, : );

         %  a(i)=fMin;

           

       end

   end

 

    Convergence_curve(t)=fMin;

 

   

 

end


% Application of simple limits/bounds

function s = Bounds( s, Lb, Ub)

 % Apply the lower bound vector

 temp = s;

 I = temp < Lb;

 temp(I) = Lb(I);

 

 % Apply the upper bound vector

 J = temp > Ub;

 temp(J) = Ub(J);

 % Update this new move

 s = temp;

function S = Boundss( SS, LLb, UUb)

 % Apply the lower bound vector

 temp = SS;

 I = temp < LLb;

 temp(I) = LLb(I);

 

 % Apply the upper bound vector

 J = temp > UUb;

 temp(J) = UUb(J);

 % Update this new move

 S = temp;

%---------------------------------------------------------------------------------------------------------------------------

⛄ 运行结果

⛄ 参考文献

[1]李旭东, 杨威嘉, 赵志高,等. 基于多目标混合非洲秃鹫优化算法的多能系统调度方法:.

[2]王忠义, 崔东文. 基于小波包分解-非洲秃鹫优化算法-深度极限学习机的水文预报模型及其应用[J]. 水电能源科学, 2022(008):040.

⛳️ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
3天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于DCT变换和位平面分解的数字水印嵌入提取算法matlab仿真
这是一个关于数字水印算法的摘要:使用MATLAB2022a实现,结合DCT和位平面分解技术。算法先通过DCT变换将图像转至频域,随后利用位平面分解嵌入水印,确保在图像处理后仍能提取。核心程序包括水印嵌入和提取,以及性能分析部分,通过PSNR和NC指标评估水印在不同噪声条件下的鲁棒性。
|
4天前
|
算法 数据安全/隐私保护 C++
基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真
该内容是关于一个图像水印算法的描述。在MATLAB2022a中运行,算法包括水印的嵌入和提取。首先,RGB图像转换为YUV格式,然后水印通过特定规则嵌入到Y分量中,并经过Arnold置乱增强安全性。水印提取时,经过逆过程恢复,使用了二维CS-SCHT变换和噪声对比度(NC)计算来评估水印的鲁棒性。代码中展示了从RGB到YUV的转换、水印嵌入、JPEG压缩攻击模拟以及水印提取的步骤。
|
5天前
|
机器学习/深度学习 算法 数据可视化
基于BP神经网络的32QAM解调算法matlab性能仿真
```markdown - 32QAM解调算法运用BP神经网络在matlab2022a中实现,适应复杂通信环境。 - 网络结构含输入、隐藏和输出层,利用梯度下降法优化,以交叉熵损失最小化为目标训练。 - 训练后,解调通过前向传播完成,提高在噪声和干扰中的数据恢复能力。 ``` 请注意,由于字符限制,部分详细信息(如具体图示和详细步骤)未能在摘要中包含。
|
6天前
|
机器学习/深度学习 算法 网络架构
基于yolov2深度学习网络的单人口罩佩戴检测和人脸定位算法matlab仿真
摘要:该内容展示了一个基于YOLOv2的单人口罩佩戴检测和人脸定位算法的应用。使用MATLAB2022A,YOLOv2通过Darknet-19网络和锚框技术检测图像中的口罩佩戴情况。核心代码段展示了如何处理图像,检测人脸并标注口罩区域。程序会实时显示检测结果,等待一段时间以优化显示流畅性。
|
6天前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
摘要: 该文介绍了使用 MATLAB 2022a 进行时间序列预测的算法优化。优化前后对比显示效果改善明显。算法基于CNN、GRU和注意力机制的深度学习模型,其中GWO(灰狼优化)用于优化超参数。CNN提取时间序列的局部特征,GRU处理序列数据的长期依赖,注意力机制聚焦关键信息。GWO算法模拟灰狼行为以实现全局优化。提供的代码片段展示了网络训练和预测过程,以及预测值与真实值的比较。
|
9天前
|
机器学习/深度学习 算法
m基于GA-GRU遗传优化门控循环单元网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,一个基于遗传算法优化的GRU网络展示显著优化效果。优化前后的电力负荷预测图表显示了改进的预测准确性和效率。GRU,作为RNN的一种形式,解决了长期依赖问题,而遗传算法用于优化其超参数,如学习率和隐藏层单元数。核心MATLAB程序执行超过30分钟,通过迭代和适应度评估寻找最佳超参数,最终构建优化的GRU模型进行负荷预测,结果显示预测误差和模型性能的提升。
26 4
|
9天前
|
机器学习/深度学习 算法 数据可视化
基于BP神经网络的16QAM解调算法matlab性能仿真
这是一个关于使用MATLAB2022a实现的16QAM解调算法的摘要。该算法基于BP神经网络,利用其非线性映射和学习能力从复数信号中估计16QAM符号,具有良好的抗噪性能。算法包括训练和测试两个阶段,通过反向传播调整网络参数以减小输出误差。核心程序涉及数据加载、可视化以及神经网络训练,评估指标为误码率(BER)和符号错误率(SER)。代码中还包含了星座图的绘制和训练曲线的展示。
|
18天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
11天前
|
机器学习/深度学习 算法
基于BP神经网络的QPSK解调算法matlab性能仿真
该文介绍了使用MATLAB2022a实现的QPSK信号BP神经网络解调算法。QPSK调制信号在复杂信道环境下受到干扰,BP网络能适应性地补偿失真,降低误码率。核心程序涉及数据分割、网络训练及性能评估,最终通过星座图和误码率曲线展示结果。
|
11天前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络模型的鱼眼镜头中人员检测算法matlab仿真
该内容是一个关于基于YOLOv2的鱼眼镜头人员检测算法的介绍。展示了算法运行的三张效果图,使用的是matlab2022a软件。YOLOv2模型结合鱼眼镜头畸变校正技术,对鱼眼图像中的人员进行准确检测。算法流程包括图像预处理、网络前向传播、边界框预测与分类及后处理。核心程序段加载预训练的YOLOv2检测器,遍历并处理图像,检测到的目标用矩形标注显示。

热门文章

最新文章