【獲取資源請見文章第5節(jié):資源獲取】
1. 原始BWO算法
白鯨優(yōu)化算法 (BWO,beluga whale optimization) 是2022 年在白鯨游泳、捕鯨及跌倒等行為中得到啟發(fā)而提出的一種新型基于種群的元啟發(fā)式算法。BWO 主要對白鯨游泳、捕食及跌倒 (墜落) 等行為進行模擬,其對應探索、開發(fā)及鯨魚墜落三個階段。BWO 當中鯨落概率與平衡因子均為自適應的,對開發(fā)能力與控制搜索起到?jīng)Q定性作用。除此之外,在開發(fā)階段引入 Levy 飛行策略來進一步提升該階段的全局收斂性。
2. 基于二次插值策略的EBWO算法
所謂二次插值法,是通過二次函數(shù)去模擬我們所得到的的單峰函數(shù),用這個二次函數(shù)的極小點作為原來函數(shù)的極小點,如果這個極小點的橫坐標已經(jīng)滿足了精度的要求,就停止運算。二次插值策略運用到群智能算法中時,對于單峰函數(shù)有較好的效果,對于多峰函數(shù)則效果一般。
二次插值法運用到白鯨優(yōu)化算法中的公式如下:
其中,
X
b
e
s
t
t
X_{best}^{t}
Xbestt?是第
t
t
t次迭代的最優(yōu)解,
X
r
r
t
X_{rr}^{t}
Xrrt?和
X
r
l
t
X_{rl}^{t}
Xrlt?是第
t
t
t次迭代的隨機選擇的兩個解,
e
p
s
eps
eps是一個極小值。
3. 部分代碼展示
clear;
close all;
clc;
Function_name = 'F3'; % 測試函數(shù)名
Npop = 30; % 種群個數(shù)
Max_it = 500; % 最大迭代次數(shù)
[lb,ub,nD,fobj]=Get_Functions_details(Function_name);
[xposbest_BWO,fvalbest_BWO,Curve_BWO]=BWO(Npop,Max_it,lb,ub,nD,fobj); % 白鯨優(yōu)化算法
[fvalbest_GWO,xposbest_GWO,Curve_GWO]=GWO(Npop,Max_it,lb,ub,nD,fobj); % 灰狼優(yōu)化算法
[fvalbest_WOA,xposbest_WOA,Curve_WOA]=WOA(Npop,Max_it,lb,ub,nD,fobj); % 鯨魚優(yōu)化算法
[fvalbest_SSA,xposbest_SSA,Curve_SSA]=SSA(Npop,Max_it,lb,ub,nD,fobj); % 麻雀搜索算法
[xposbest_EBWO,fvalbest_EBWO,Curve_EBWO]=EBWO(Npop,Max_it,lb,ub,nD,fobj); % 改進白鯨優(yōu)化算法
figure('Position',[454 445 694 297]);
subplot(1,2,1);
func_plot(Function_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])
subplot(1,2,2);
% 灰狼優(yōu)化算法
semilogy(Curve_GWO,'Color','b','LineWidth',2)
hold on
% 鯨魚優(yōu)化算法
semilogy(Curve_WOA,'Color','g','LineWidth',2)
hold on
% 麻雀搜索算法
semilogy(Curve_SSA,'Color','m','LineWidth',2)
hold on
% 白鯨優(yōu)化算法
semilogy(Curve_BWO,'Color','k','LineWidth',2)
hold on
% 改進白鯨優(yōu)化算法
semilogy(Curve_EBWO,'Color','r','LineWidth',2)
title(Function_name)
xlabel('Iteration');
ylabel('Best fitness function');
axis tight
legend('GWO','WOA','SSA','BWO','EBWO')
display(['The best optimal values of the objective funciton found by GWO is : ', num2str(fvalbest_GWO)]);
display(['The best optimal values of the objective funciton found by WOA is : ', num2str(fvalbest_WOA)]);
display(['The best optimal values of the objective funciton found by SSA is : ', num2str(fvalbest_WOA)]);
display(['The best optimal values of the objective funciton found by BWO is : ', num2str(fvalbest_BWO)]);
display(['The best optimal values of the objective funciton found by EBWO is : ', num2str(fvalbest_EBWO)]);
4. 仿真結(jié)果展示
文章來源:http://www.zghlxwxcb.cn/news/detail-502346.html
5. 資源獲取
可以獲取完整代碼資源。文章來源地址http://www.zghlxwxcb.cn/news/detail-502346.html
到了這里,關(guān)于【群智能算法改進】基于二次插值策略的改進白鯨優(yōu)化算法 改進后的EBWO[3]算法【Matlab代碼#44】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!