智能优化算法之算术优化算法,附matlab代码

        算术优化算法(arithmetic optimization algorithm, AOA)是由学者Laith Abualigah等于2021年提出的一 种新型元启发式优化算法 ,其灵感来源于算术中的四则混合运算。该算法利用乘除运算进行全局探索,利 用加减运算进行局部开发。目前算术优化算法被应用于求解多类优化问题中,并逐步得到了发展.算术优化算法能够迅速的寻找到全局最优解 .该算法具备较快的收敛速度 及较高的收敛精度。

参考文献:[1]贾鹤鸣,孟彬,魏元昊,力尚龙,文昌盛,陈俊玲.改进算术优化算法的无线传感器网络覆盖[J].闽南师范大学学报(自然科学版),2022,35(03):54-61.

本文依旧采用CEC2005测试函数,CEC2005测试集是应用最多、最经典的一个测试集,包含23个Benchmark函数。具体信息如下图:

7ad127fddd434c7bba8f3d678aeab713.jpeg

 代码:

%%
clear
clc
close all
addpath(genpath(pwd))
number='F15'; %选定优化函数,自行替换:F1~F23
[lb,ub,D,y]=CEC2005(number);  % [lb,ub,D,y]:下界、上界、维度、目标函数表达式
MaxIteration=1000;  %最大迭代次数
Solution_no=50;  %种群规模
%调用AOA算法

[BestF,BestX,HisBestF]=AOA(Solution_no,MaxIteration,lb,ub,D,y); % Call the AOA 
subplot(1,2,1)
func_plot(number)
title(number)
xlabel('x')
ylabel('y')
zlabel('z')
subplot(1,2,2)
CNT=50;
k=round(linspace(1,MaxIteration,CNT)); %随机选50个点
% 注意:如果收敛曲线画出来的点很少,随机点很稀疏,说明点取少了,这时应增加取点的数量,100、200、300等,逐渐增加
% 相反,如果收敛曲线上的随机点非常密集,说明点取多了,此时要减少取点数量
iter=1:1:MaxIteration;
semilogy(iter(k),HisBestF(k),'m-x','linewidth',1);
grid on;
title(['函数收敛曲线',number])
xlabel('Iterations');
ylabel('Objective function value');
box on
legend('AOA')
set (gcf,'position', [200,300,700,300])

随机挑选几个函数,算法迭代500次,结果代码如图所示:

代码获取方式:下方卡片回复关键词:TGDM1209

欢迎大家评论区留言,需要什么类型的代码,欢迎告诉博主!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天吃饺子

不想刀我的可以选择爱我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值