【獲取資源請(qǐng)見文章第5節(jié):資源獲取】
1. 原始COA算法
長鼻浣熊優(yōu)化算法(Cоati Optimization Algorithm,COA)是一種啟發(fā)式優(yōu)化算法,靈感來源于長鼻浣熊(Coati)的行為策略。長鼻浣熊優(yōu)化算法基于長鼻浣熊在覓食過程中的特性和行為模式。長鼻浣熊是一種樹棲動(dòng)物,具有長而靈活的鼻子,用于覓食和捕食。它們通過嗅覺感知周圍環(huán)境,利用敏銳的視覺和協(xié)調(diào)的運(yùn)動(dòng)能力來尋找食物。
1.1 開發(fā)階段
這個(gè)階段模擬的是浣熊對(duì)鬣蜥的攻擊策略,對(duì)搜索空間中的種群更新的第一個(gè)階段進(jìn)行建模。在這個(gè)策略中,一群浣熊會(huì)爬上樹,對(duì)著一只鬣蜥,并嚇唬它,其他幾個(gè)浣熊會(huì)在樹下等待鬣蜥掉下來。當(dāng)鬣蜥掉下來之后,浣熊就會(huì)攻擊并獵殺它。這個(gè)策略使得COA在搜索空間中移動(dòng)到不同的位置,說明COA在問題解決空間中的全局搜索能力。
在COA的設(shè)計(jì)中,種群中的最佳位置被假定為鬣蜥的位置。此外,還假設(shè)有一般的浣熊能爬上樹,另一半在地上等待鬣蜥掉下來。因此,浣熊在樹上的位置可以用以下公式描述:
鬣蜥落地后,將其放置在搜索空間中的任意位置。基于這種隨機(jī)位置,地面上的浣熊可以在搜索空間中移動(dòng),用下列公式來描述:
對(duì)于每個(gè)浣熊計(jì)算的新位置,如果它改善了目標(biāo)函數(shù)的值,那么就會(huì)被接受,否則,浣熊將保持原先的位置,此過程用以下公式來表示。這個(gè)可以被視為貪婪法則。
這里
x
i
P
1
x_{i}^{P1}
xiP1?是計(jì)算第
i
i
i個(gè)浣熊的新位置,
x
i
,
j
P
1
x_{i,j}^{P1}
xi,jP1?是它的第
j
j
j維,
F
i
P
1
F_{i}^{P1}
FiP1?是它的目標(biāo)函數(shù)值,
r
r
r是
[
0
,
1
]
[0,1]
[0,1]區(qū)間內(nèi)的隨機(jī)實(shí)數(shù)。
I
g
u
a
n
a
Iguana
Iguana代表鬣蜥在搜索空間中的位置,這實(shí)際上是指種群中最佳個(gè)體的位置;
I
g
u
a
n
a
j
Iguana_{j}
Iguanaj?是它的第
j
j
j維,
j
j
j是一個(gè)整數(shù),從集合{1,2}中隨機(jī)選擇,
I
g
u
a
n
a
G
Iguana^{G}
IguanaG是在地面上的位置,它是隨機(jī)生成的。
I
g
u
a
n
a
j
G
Iguana_{j}^{G}
IguanajG?蠢晰是它的第
j
j
j維,
F
I
g
u
a
n
a
G
F_{Iguana}^{G}
FIguanaG?是它的目標(biāo)函數(shù)值。
1.2 探索階段
在第二階段即探索階段的過程中,位置更新模擬的是浣熊在遇到捕食者和逃避捕食者的行為。當(dāng)食肉動(dòng)物攻擊浣熊時(shí),浣熊就會(huì)從它的位置上逃走。浣熊在該策略中的移動(dòng)使其處于接近其當(dāng)前位置的安全位置,這代表這COA的局部開發(fā)能力。為了模擬這種行為,COA在每個(gè)長鼻浣熊個(gè)體附近生成一個(gè)隨機(jī)位置,公式如下所示:
與開發(fā)階段中類似,同樣使用貪婪選擇來決定是替換還是保留原先的位置。
2. 改進(jìn)后的ICOA算法
2.1 Circle映射種群初始化
Circle混沌映射在混沌理論研究、密碼學(xué)、隨機(jī)數(shù)生成和通信系統(tǒng)中具有一定的應(yīng)用。它展示了非線性系統(tǒng)中的復(fù)雜動(dòng)力學(xué)行為,并且可以用來生成具有高度隨機(jī)性的序列。
Circle的公式如下:
2.2 Levy飛行策略
在COA浣熊開發(fā)階段的位置更新公式中,會(huì)根據(jù)目前的個(gè)體最優(yōu)值來更新自己的位置,也容易陷入局部最優(yōu),此時(shí)可以使用萊維飛行策略進(jìn)行位置更新使得這部分個(gè)體去到更廣的搜索空間:
2.3 透鏡成像折射反向?qū)W習(xí)策略
透鏡成像折射反向?qū)W習(xí)策略的思想來自于凸透鏡成像的原理。通過基于當(dāng)前坐標(biāo)生成一個(gè)反向位置來擴(kuò)展搜索范圍,如圖1所示。
在二維坐標(biāo)中,x軸的搜索范圍為(a, b), y軸表示一個(gè)凸透鏡。假設(shè)物體A在x軸上的投影為x,高度為h,通過透鏡成像,另一側(cè)的圖像為A*, A在x軸上的投影為x,高度為h*。通過以上分析,我們可以得到如下公式:
(
a
+
b
)
/
2
?
x
x
?
?
(
a
+
b
)
/
2
=
h
h
?
(1)
\frac{(a+b)/2-x}{x^{*}-(a+b)/2 }=\frac{h}{h^{*}} \tag1
x??(a+b)/2(a+b)/2?x?=h?h?(1)
對(duì)公式(1)進(jìn)行轉(zhuǎn)換,即可得到反向解x*的表達(dá)式為:
x
?
=
a
+
b
2
+
a
+
b
2
k
?
x
k
(2)
x^{*} =\frac{a+b}{2}+\frac{a+b}{2k}-\frac{x}{k} \tag2
x?=2a+b?+2ka+b??kx?(2)
其中,
k
=
h
/
h
?
k=h/h^{*}
k=h/h?,
a
a
a和
b
b
b可以視為某維度的上下限。本文中的
k
k
k是一個(gè)與迭代次數(shù)相關(guān)的動(dòng)態(tài)自適應(yīng)值。
3. 部分代碼展示
Fun_name='F1'; % number of test functions: 'F1' to 'F23'
SearchAgents=30; % number of Coati (population members)
Max_iterations=500; % maximum number of iteration
[lowerbound,upperbound,dimension,fitness]=fun_info(Fun_name); % Object function information
[Best_score_COA,Best_pos_COA,COA_curve]=COA(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness); % Calculating the solution of the given problem using COA
[Best_score_GWO,Best_pos_GWO,GWO_curve]=GWO(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness); % 灰狼優(yōu)化算法
[Best_score_WOA,Best_pos_WOA,WOA_curve]=WOA(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness); % 鯨魚優(yōu)化算法
[Best_score_SSA,Best_pos_SSA,SSA_curve]=SSA(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness); % 麻雀搜索算法
[Best_score_ICOA,Best_pos_ICOA,ICOA_curve]=ICOA(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);
%%
figure('Position',[454 445 694 297]);
subplot(1,2,1);
func_plot(Fun_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Fun_name,'( x_1 , x_2 )'])
subplot(1,2,2);
% 灰狼優(yōu)化算法
semilogy(GWO_curve,'Color','b','LineWidth',2)
hold on
% 鯨魚優(yōu)化算法
semilogy(WOA_curve,'Color','g','LineWidth',2)
hold on
% 麻雀搜索算法
semilogy(SSA_curve,'Color','m','LineWidth',2)
hold on
semilogy(COA_curve,'Color','k','LineWidth',2)
hold on
semilogy(ICOA_curve,'Color','r','LineWidth',2)
title(Fun_name)
xlabel('Iteration');
ylabel('Best fitness function');
axis tight
legend('GWO','WOA','SSA','COA','ICOA')
4. 仿真結(jié)果展示
文章來源:http://www.zghlxwxcb.cn/news/detail-485942.html
5. 資源獲取
可以獲取完整代碼資源。文章來源地址http://www.zghlxwxcb.cn/news/detail-485942.html
到了這里,關(guān)于【群智能算法改進(jìn)】一種改進(jìn)的浣熊優(yōu)化算法 改進(jìn)長鼻浣熊優(yōu)化算法 改進(jìn)后的ICOA[1]算法【Matlab代碼#41】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!