天天看點

【優化求解-單目标求解】基于阿基米德算法求解單目标問題matlab源碼

 一、算法簡介

【優化求解-單目标求解】基于阿基米德算法求解單目标問題matlab源碼
【優化求解-單目标求解】基于阿基米德算法求解單目标問題matlab源碼

阿基米德優化算法:一種解決優化問題的新元啟發式算法

現實世界中的數值優化問題的難度和複雜性日益增加,這需要有效的優化方法。迄今為止,已經引入了各種元啟發式方法,但隻有少數在研究界得到認可。本文提出了一種新的元啟發式算法,稱為阿基米德優化算法(AOA)來解決優化問題。AOA的設計靈感來自有趣的阿基米德實體學定律。它模仿了部分或完全浸入流體的向上作用在物體上的浮力的原理,該力與被驅替流體的重量成比例。為了評估性能,在CEC'17測試套件和四個工程設計問題上對提出的AOA算法進行了測試。使用AOA獲得的解決方案的性能優于衆所周知的最新技術,并且最近引入了元啟發式算法,例如遺傳算法(GA),粒子群優化(PSO),差分演化變體L-SHADE和LSHADE-EpSin,鲸魚優化算法(WOA),正弦餘弦算法(SCA),哈裡斯霍克優化(HHO)和平衡優化器(EO)。實驗結果表明,AOA在收斂速度和勘探開發平衡方面是一種高性能的優化工具,因為它可以有效地解決複雜問題。該源代碼目前可從以下位置向公衆公開:鲸優化算法(WOA),正弦餘弦算法(SCA),哈裡斯鷹優化(HHO)和平衡優化器(EO)。實驗結果表明,AOA在收斂速度和勘探開發平衡方面是一種高性能的優化工具,因為它可以有效地解決複雜問題。該源代碼目前可從以下位置向公衆公開:鲸優化算法(WOA),正弦餘弦算法(SCA),哈裡斯鷹優化(HHO)和平衡優化器(EO)。實驗結果表明,AOA在收斂速度和勘探開發平衡方面是一種高性能的優化工具,因為它可以有效地解決複雜問題。

二、部分代碼

%_______________________________________________________________________________________
%  The Arithmetic Optimization Algorithm (AOA) source codes demo version 1.0                  
%                                                                                       
%  Developed in MATLAB R2015a (7.13)                                                    
                  
%                                                                                      
% Main paper:   The Arithmetic Optimization Algorithm
% Reference: Abualigah, L., Diabat, A., Mirjalili, S., Abd Elaziz, M., and Gandomi, A. H. (2021). The Arithmetic Optimization Algorithm. Computer Methods in Applied Mechanics and Engineering.
%
%_______________________________________________________________________________________

clear all 
clc


Solution_no=20; %Number of search solutions
F_name='F1';    %Name of the test function F1-f23
M_Iter=1000;    %Maximum number of iterations
 
[LB,UB,Dim,F_obj]=Get_F(F_name); %Give details of the underlying benchmark function

[Best_FF,Best_P,Conv_curve]=AOA(Solution_no,M_Iter,LB,UB,Dim,F_obj); % Call the AOA 

 

figure('Position',[454   445   694   297]);
subplot(1,2,1);
func_plot(F_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([F_name,'( x_1 , x_2 )'])


subplot(1,2,2);
semilogy(Conv_curve,'Color','r','LineWidth',2)
title('Convergence curve')
xlabel('Iteration#');
ylabel('Best fitness function');
axis tight
legend('AOA')



display(['The best-obtained solution by Math Optimizer is : ', num2str(Best_P)]);
display(['The best optimal value of the objective funciton found by Math Optimizer is : ', num2str(Best_FF)]);

        



      
【優化求解-單目标求解】基于阿基米德算法求解單目标問題matlab源碼

三、仿真結果

【優化求解-單目标求解】基于阿基米德算法求解單目标問題matlab源碼
【優化求解-單目标求解】基于阿基米德算法求解單目标問題matlab源碼

四、參考文獻

 Abualigah, L., Diabat, A., Mirjalili, S., Abd Elaziz, M., and Gandomi, A. H. (2021). The Arithmetic Optimization Algorithm. Computer Methods in Applied Mechanics and Engineering.

【優化求解-單目标求解】基于阿基米德算法求解單目标問題matlab源碼

繼續閱讀