天天看點

多目标螞蟻獅子優化算法(MOALO)(Matlab代碼實作)

💥💥💥💞💞💞歡迎來到本部落格❤️❤️❤️💥💥💥

🏆部落客優勢:🌞🌞🌞部落格内容盡量做到思維缜密,邏輯清晰,為了友善讀者。

⛳️座右銘:行百裡者,半于九十。

目錄

​​💥1 概述​​

​​📚2 運作結果​​

​​🎉3 參考文獻​​

​​🌈4 Matlab代碼實作​​

💥1 概述

多目标螞蟻獅子優化算法(MOALO)。首先使用存儲庫來存儲到目前為止獲得的非主導帕累托最優解。然後使用輪盤機制從該存儲庫中選擇解決方案,該機制基于解決方案作為蟻獅的覆寫範圍,以引導螞蟻進入多目标搜尋空間的有前途的區域。

多目标螞蟻獅子優化算法(MOALO)(Matlab代碼實作)

📚2 運作結果

多目标螞蟻獅子優化算法(MOALO)(Matlab代碼實作)

🎉3 參考文獻

[1]Mirjalili, Seyedali, Pradeep Jangir, and Shahrzad Saremi.  Multi-objective ant lion optimizer: a multi-objective optimization   algorithm for solving engineering problems." Applied Intelligence      

(2016): 1-17, DOI: http://dx.doi.org/10.1007/s10489-016-0825-8         

部分代碼:

function [RWs]=Random_walk_around_antlion(Dim,max_iter,lb, ub,antlion,current_iter)

if size(lb,1) ==1 && size(lb,2)==1 %Check if the bounds are scalar

    lb=ones(1,Dim)*lb;

    ub=ones(1,Dim)*ub;

end

if size(lb,1) > size(lb,2) %Check if boundary vectors are horizontal or vertical

    lb=lb';

    ub=ub';

end

I=1; % I is the ratio in Equations (2.10) and (2.11)

if current_iter>max_iter/10

    I=1+100*(current_iter/max_iter);

end

if current_iter>max_iter/2

    I=1+1000*(current_iter/max_iter);

end

if current_iter>max_iter*(3/4)

    I=1+10000*(current_iter/max_iter);

end

if current_iter>max_iter*(0.9)

    I=1+100000*(current_iter/max_iter);

end

if current_iter>max_iter*(0.95)

    I=1+1000000*(current_iter/max_iter);

end

% Dicrease boundaries to converge towards antlion

lb=lb/(I); % Equation (2.10) in the paper

ub=ub/(I); % Equation (2.11) in the paper

% Move the interval of [lb ub] around the antlion [lb+anlion ub+antlion]

if rand<0.5

    lb=lb+antlion; % Equation (2.8) in the paper

else

    lb=-lb+antlion;

end

​​🌈​​4 Matlab代碼實作

繼續閱讀