Matlab コードを使用したインテリジェントな最適化アルゴリズムの算術最適化アルゴリズム

        算術最適化アルゴリズム (AOA) は、2021 年に学者の Laith Abualigah 氏らによって提案された新しいメタヒューリスティック最適化アルゴリズムです。このアルゴリズムは、グローバルな探索には乗算と除算の演算を使用し、ローカルな利用には加算と減算の演算を使用します。現在、算術最適化アルゴリズムは多くの種類の最適化問題を解くために適用され、徐々に開発されており、算術最適化アルゴリズムは大域的な最適解を迅速に見つけることができ、より速い収束速度とより高い収束精度を備えています。

参考文献: [1] Jia Heming、Meng Bin、Wei Yuanhao、Li Shanglong、Wen Changsheng、Chen Junling. 改良された算術最適化アルゴリズムによるワイヤレス センサー ネットワーク カバレッジ [J]. 閩南師範大学ジャーナル (自然科学版)、2022 年、35 (03):54-61。

この記事では、引き続き CEC2005 テスト関数を使用します。CEC2005 テスト セットは、23 のベンチマーク関数を含む、最も広く使用されている古典的なテスト セットです。具体的な情報は次のとおりです。

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

皆さんもコメント欄にメッセージを残してください。必要なコードの種類をブロガーに伝えてください。

おすすめ

転載: blog.csdn.net/woaipythonmeme/article/details/131242256