【獲取資源請見文章第5節(jié):資源獲取】
1. 原始BWO算法
白鯨優(yōu)化算法 (BWO,beluga whale optimization) 是2022 年在白鯨游泳、捕鯨及跌倒等行為中得到啟發(fā)而提出的一種新型基于種群的元啟發(fā)式算法。BWO 主要對白鯨游泳、捕食及跌倒 (墜落) 等行為進行模擬,其對應(yīng)探索、開發(fā)及鯨魚墜落三個階段。BWO 當中鯨落概率與平衡因子均為自適應(yīng)的,對開發(fā)能力與控制搜索起到?jīng)Q定性作用。除此之外,在開發(fā)階段引入 Levy 飛行策略來進一步提升該階段的全局收斂性。
2. 改進的白鯨優(yōu)化算法EBWO
2.1 Logistic映射
混沌是確定性系統(tǒng)自發(fā)產(chǎn)生的不穩(wěn)定現(xiàn)象,它普遍存在于非線性系統(tǒng)當中。由于混沌的遍歷性,它能夠不重復(fù)地歷經(jīng)一定范圍的所有狀態(tài),利用混沌變量進行優(yōu)化搜索比盲目無序的隨機搜索更具優(yōu)越性基于此思想,本文將混沌理論引入BWO算法,使算法避免陷入局部最優(yōu)。
混沌搜索的主要思想是通過某種迭代方式產(chǎn)生混沌序列,一般多采用 Logistic 方程產(chǎn)生混沌序列:
y
(
k
+
1
)
=
μ
y
(
k
)
(
1
?
y
(
k
)
)
,
k
=
1
,
2
,
.
.
.
,
n
(1)
y(k+1)=\mu y(k)(1-y(k)), k=1,2,...,n\tag1
y(k+1)=μy(k)(1?y(k)),k=1,2,...,n(1)
Logistic映射在分叉參數(shù)
3.57
<
μ
≤
4
3.57<\mu \le 4
3.57<μ≤4時處于完全混沌狀態(tài),在此區(qū)間內(nèi)方程運動軌跡呈現(xiàn)混沌特征當從取4時可獲得較好的效果,本文取
μ
=
4
\mu =4
μ=4。
2.2 透鏡成像折射方向?qū)W習(xí)
透鏡成像折射反向?qū)W習(xí)策略的思想來自于凸透鏡成像的原理。通過基于當前坐標生成一個反向位置來擴展搜索范圍,如圖1所示。
在二維坐標中,x軸的搜索范圍為(a, b), y軸表示一個凸透鏡。假設(shè)物體A在x軸上的投影為x,高度為h,通過透鏡成像,另一側(cè)的圖像為A*, A在x軸上的投影為x,高度為h*。通過以上分析,我們可以得到如下公式:
(
a
+
b
)
/
2
?
x
x
?
?
(
a
+
b
)
/
2
=
h
h
?
(2)
\frac{(a+b)/2-x}{x^{*}-(a+b)/2 }=\frac{h}{h^{*}} \tag2
x??(a+b)/2(a+b)/2?x?=h?h?(2)
對公式(2)進行轉(zhuǎn)換,即可得到反向解x*的表達式為:
x
?
=
a
+
b
2
+
a
+
b
2
k
?
x
k
(3)
x^{*} =\frac{a+b}{2}+\frac{a+b}{2k}-\frac{x}{k} \tag3
x?=2a+b?+2ka+b??kx?(3)
其中,
k
=
h
/
h
?
k=h/h^{*}
k=h/h?,
a
a
a和
b
b
b可以視為某維度的上下限。本文中的
k
k
k是一個與迭代次數(shù)相關(guān)的動態(tài)自適應(yīng)值。
3. 部分代碼展示
Function_name = 'F1'; % 測試函數(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);
semilogy(Curve_GWO,'Color','b','LineWidth',2)
hold on
semilogy(Curve_WOA,'Color','g','LineWidth',2)
hold on
semilogy(Curve_SSA,'Color','m','LineWidth',2)
hold on
semilogy(Curve_BWO,'Color','k','LineWidth',2)
hold on
semilogy(Curve_EBWO,'Color','r','LineWidth',2)
title(Function_name)
xlabel('Iteration');
ylabel('Best fitness function');
axis tight
legend('GWO','WOA','SSA','BWO','EBWO')
4. 仿真結(jié)果展示
文章來源:http://www.zghlxwxcb.cn/news/detail-491191.html
5. 資源獲取
可以獲取完整代碼資源。文章來源地址http://www.zghlxwxcb.cn/news/detail-491191.html
到了這里,關(guān)于【群智能算法改進】一種改進的白鯨優(yōu)化算法 改進白鯨優(yōu)化算法 改進后的EBWO[1]算法【Matlab代碼#40】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!