【獲取資源請(qǐng)見(jiàn)文章第5節(jié):資源獲取】
1. 原始BWO算法
白鯨優(yōu)化算法 (BWO,beluga whale optimization) 是2022 年在白鯨游泳、捕鯨及跌倒等行為中得到啟發(fā)而提出的一種新型基于種群的元啟發(fā)式算法。BWO 主要對(duì)白鯨游泳、捕食及跌倒 (墜落) 等行為進(jìn)行模擬,其對(duì)應(yīng)探索、開(kāi)發(fā)及鯨魚(yú)墜落三個(gè)階段。BWO 當(dāng)中鯨落概率與平衡因子均為自適應(yīng)的,對(duì)開(kāi)發(fā)能力與控制搜索起到?jīng)Q定性作用。除此之外,在開(kāi)發(fā)階段引入 Levy 飛行策略來(lái)進(jìn)一步提升該階段的全局收斂性。
2. 改進(jìn)后的EBWO算法
2.1 準(zhǔn)反向?qū)W習(xí)QOBL策略
準(zhǔn)反向?qū)W習(xí)QOBL策略是一種強(qiáng)大的策略,被廣泛運(yùn)用于多種群智能算法中,以提高算法的迭代速度。QOBL策略主要涉及以下兩個(gè)公式:
X
i
,
j
t
+
1
=
C
i
,
j
+
(
X
i
,
j
o
?
C
i
,
j
)
×
r
a
n
d
(1)
X_{i,j}^{t+1}=C_{i,j}+(X_{i,j}^{o}-C_{i,j})\times rand\tag1
Xi,jt+1?=Ci,j?+(Xi,jo??Ci,j?)×rand(1)
X
i
,
j
t
+
1
=
C
i
,
j
+
(
C
i
,
j
?
X
i
,
j
o
)
×
r
a
n
d
(2)
X_{i,j}^{t+1}=C_{i,j}+(C_{i,j}-X_{i,j}^{o})\times rand\tag2
Xi,jt+1?=Ci,j?+(Ci,j??Xi,jo?)×rand(2)
其中,
X
i
,
j
o
X_{i,j}^{o}
Xi,jo?是
X
i
,
j
X_{i,j}
Xi,j?的鏡像反向解,
C
i
,
j
C_{i,j}
Ci,j?是第
j
j
j維變量的上下限的中心值,
X
i
,
j
t
+
1
X_{i,j}^{t+1}
Xi,jt+1?即為根據(jù)QOBL策略生成的新的反向解,根據(jù)一定規(guī)則采用公式(1)還是公式(2)來(lái)生成該解。
對(duì)于生成的新解,只保留優(yōu)于原先解的新解,否則,丟棄。
2.2 旋風(fēng)覓食策略
旋風(fēng)覓食策略(CFS)是從種群圍繞最優(yōu)解的螺旋運(yùn)動(dòng)中概念化出來(lái)的策略,在蝠鲼優(yōu)化算法中也被用到。CFS策略可以加強(qiáng)BWO算法的開(kāi)發(fā)階段,即種群可以圍繞最佳解決方案以螺旋方向移動(dòng),使得后面的白鯨個(gè)體可以游向前面的白鯨個(gè)體。圖1展示了種群螺旋移動(dòng)的軌跡。
白鯨種群CFS移動(dòng)的公式可以表示如下:
其中,
β
\beta
β表示一個(gè)權(quán)重系數(shù),和迭代次數(shù)有關(guān)。
r
8
r_{8}
r8?是[0,1]之間的隨機(jī)值。
X
b
e
s
t
t
X_{best}^{t}
Xbestt?為上一次迭代的最優(yōu)個(gè)體,
X
i
t
X_{i}^{t}
Xit?為原先的第
i
i
i個(gè)白鯨個(gè)體,
X
i
t
+
1
X_{i}^{t+1}
Xit+1?為更新后的新個(gè)體。
與第一個(gè)策略一樣,更新的個(gè)體同樣要進(jìn)行貪婪選擇。
3. 部分代碼展示
Function_name = 'F1'; % 測(cè)試函數(shù)名
Npop = 30; % 種群個(gè)數(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ú)優(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); % 改進(jìn)白鯨優(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ú)優(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
% 改進(jìn)白鯨優(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')
4. 仿真結(jié)果展示
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-651791.html
5. 資源獲取
可以獲取完整代碼資源。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-651791.html
到了這里,關(guān)于【群智能算法改進(jìn)】一種改進(jìn)的白鯨優(yōu)化算法 改進(jìn)白鯨優(yōu)化算法 改進(jìn)后的EBWO[2]算法【Matlab代碼#42】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!