天天看點

阿基米德優化算法AOA附Matlab代碼

✅作者簡介:熱愛科研的Matlab仿真開發者,修心和技術同步精進。

🍎個人首頁:Matlab科研工作室

🍊個人信條:格物緻知。

更多Matlab仿真内容點選👇

​​智能優化算法​​​  ​​神經網絡預測​​​ ​​雷達通信 ​​​ ​​無線傳感器​​

​​信号處理​​​ ​​圖像處理​​​ ​​路徑規劃​​​ ​​元胞自動機​​​ ​​無人機 ​​​ ​​電力系統​​

⛄ 内容介紹

受到阿基米德定理的啟發,Hashim等[17]于2020年提出了阿基米德優化算法(ArchimedesOptimizationAlgorithm,AOA)。與其他基于種群的優化算法類似,AOA将流體中的物體視為種群,其中個體通過不斷調節自身的密度和體積,進而使得整個種群達到平衡狀态,此過程被視為AOA的尋優過程。相對于其他算法,阿基米德優化算法局部搜尋能力極強,尋優精度高。

阿基米德優化算法(AOA)是一種基于種群的優化算法,其設計靈感來自于阿基米德定理。該原理指出,當物體完全或部分浸入流體中時,液體給物體施加的浮力大小與排出

液體的品質(體積)大小成正比。若物體受到的浮力等于排出液體品質時,則視該物體處于平衡狀态。在AOA中,種群是浸透在液體中的物體,個體通過調整自身的密度(p)、體積(v)和加速度(a),使得自身達到平衡狀态。根據浸透在液體中的物體是否發生碰撞,AOA将其分為全局探索和局部搜尋階段。若未發生碰撞,則算法進入全局

探索階段;否則進入局部開發階段。設定遷移算子(TF),用于兩個階段的切換,其定義如下:其中,t和tmax分别表示目前疊代次數和最大疊代次數。若TF≤0.5,AOA則進入全局探索階段;否則進入局部開發階段。

在初始化階段,AOA會随機初始化每個對象的體積(vol)、密度(den)、加速度(acc)。在此過程中,AOA将評估初始種群,選取目前最優個體(xbest)、最優個體的密度(denbest)、體積(volbest)、加速度(accbest),用于其他個體密度、體積和加速度的更新。

阿基米德優化算法AOA附Matlab代碼
阿基米德優化算法AOA附Matlab代碼
阿基米德優化算法AOA附Matlab代碼

⛄ 部分代碼

clear all 

clc

Solution_no=20; %Number of search solutions

F_name='F2';    %Name of the test function F1-f23

M_Iter=500;    %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)]);

⛄ 運作結果

阿基米德優化算法AOA附Matlab代碼
阿基米德優化算法AOA附Matlab代碼

⛄ 參考文獻

❤️ 關注我領取海量matlab電子書和數學模組化資料
❤️部分理論引用網絡文獻,若有侵權聯系部落客删除