宣漢網(wǎng)站建設(shè)滕州百度推廣
一、斑馬優(yōu)化算法
斑馬優(yōu)化算法(Zebra Optimization Algorithm,ZOA)Eva Trojovská等人于2022年提出,其模擬斑馬的覓食和對捕食者攻擊的防御行為。
斑馬因身上有起保護作用的斑紋而得名。沒有任何動物比斑馬的皮毛更與眾不同。斑馬周身的條紋和人類的指紋一樣——沒有任何兩頭完全相同。斑馬為非洲特產(chǎn)。非洲東部、中部和南部產(chǎn)平原斑馬,由腿至蹄具條紋或腿部無條紋。東非還產(chǎn)一種格式斑馬,體格最大,耳長(約20厘米)而寬,全身條紋窄而密,因而又名細紋斑馬。南非洲產(chǎn)山斑馬,與其它兩種斑馬不同的是,它有一對象驢似的大長耳朵。除腹部外,全身密布較寬的黑條紋,雄體喉部有垂肉。斑馬是草食性動物。除了草之外,灌木、樹枝、樹葉甚至樹皮也是它們的食物。適應(yīng)能力較強的消化系統(tǒng),令斑馬可以在低營養(yǎng)條件下生存,比其他草食性動物優(yōu)勝。斑馬對非洲疾病的抗病力比馬強,但斑馬始終未能被馴化成家畜,也沒有能和馬進行雜交。
斑馬優(yōu)化算法包含兩個階段:
階段一:覓食行為
在第一階段,根據(jù)斑馬在尋找飼料時的行為模擬來更新種群成員。斑馬的主要食物主要是草和莎草,但如果它們喜歡的食物稀缺,它們也可能吃芽、水果、樹皮、根和葉子。根據(jù)植被的質(zhì)量和可用性,斑馬可能會花費60-80%的時間進食。在斑馬中,有一種斑馬叫做平原斑馬,它是一種先驅(qū)食草動物,通過吞噬上層和營養(yǎng)較少的草的樹冠,為其他需要更短、更有營養(yǎng)的草的物種提供了條件。在 ZOA 中,種群中最好的成員被認為是先鋒斑馬,并引導(dǎo)其他種群成員走向其在搜索空間中的位置。因此,更新斑馬在覓食階段的位置可以使用下式進行數(shù)學(xué)建模:
xi,jnew,P1=xi,j+r?(PZj?I?xi,j),Xi={Xinew,P1,Finew,P1<FiXi,else?\begin{array}{l} x_{i, j}^{n e w, P 1}=x_{i, j}+r \cdot\left(P Z_{j}-I \cdot x_{i, j}\right), \\ X_{i}=\left\{\begin{array}{cl} X_{i}^{n e w, P 1}, & F_{i}^{n e w, P 1}<F_{i} \\ X_{i}, & \text { else } \end{array}\right. \end{array}xi,jnew,P1?=xi,j?+r?(PZj??I?xi,j?),Xi?={Xinew,P1?,Xi?,?Finew,P1?<Fi??else???
階段二:針對掠食者的防御行為
在第二階段,模擬斑馬對捕食者攻擊的防御策略,以更新ZOA種群成員在搜索空間中的位置。斑馬的主要捕食者是獅子;然而,它們受到獵豹、豹子、野狗、褐鬣狗和斑鬣狗的威脅。鱷魚是斑馬接近水時的另一種捕食者。斑馬的防御策略因捕食者而異。斑馬對獅子攻擊的防御策略是以鋸齒形模式和隨機側(cè)身轉(zhuǎn)彎運動逃跑。斑馬對鬣狗和狗等小型捕食者的攻擊更具攻擊性,這些捕食者通過聚集來迷惑和嚇唬獵人。在 ZOA 設(shè)計中,假設(shè)以下兩個條件之一以相同的概率發(fā)生:
(1)獅子攻擊斑馬,因此斑馬選擇了逃跑策略;
(2)其他捕食者攻擊斑馬,斑馬會選擇進攻策略。
在策略(1)中,當(dāng)斑馬受到獅子的攻擊時,斑馬在它們所在的情況附近逃離獅子的攻擊。因此,在數(shù)學(xué)上,可以使用模式對這種策略進行建模S1 在下式第一項中。在第策略(2)中,當(dāng)其他捕食者攻擊其中一匹斑馬時,群中的其他斑馬會向被攻擊的斑馬移動,并試圖通過創(chuàng)建防御結(jié)構(gòu)來嚇唬和迷惑捕食者。斑馬的這種策略是使用模式進行數(shù)學(xué)建模的S2 在下式第一項中。在更新斑馬的位置時,如果斑馬的新位置對目標函數(shù)具有更好的值,則該斑馬的新位置將被接受。此更新條件使用 下式第一二項建模。
xi,jnew,P2={S1:xi,j+R?(2r?1)?(1?tT)?xi,j,Ps≤0.5;S2:xi,j+r?(AZj?I?xi,j),else?,Xi={Xinew?,P2,Finew,P2Xi,else?,\begin{array}{l} x_{i, j}^{n e w, P 2} =\left\{\begin{array}{cc} S_{1}: x_{i, j}+R \cdot(2 r-1) \cdot\left(1-\frac{t}{T}\right) \cdot x_{i, j}, & P_{s} \leq 0.5 ; \\ S_{2}: x_{i, j}+r \cdot\left(A Z_{j}-I \cdot x_{i, j}\right), & \text { else }, \end{array}\right. \\ X_{i}=\left\{\begin{array}{cc} X_{i}^{\text {new }, P 2}, & F_{i}^{n e w}, P 2 \\ X_{i}, & \text { else }, \end{array}\right. \end{array}xi,jnew,P2?={S1?:xi,j?+R?(2r?1)?(1?Tt?)?xi,j?,S2?:xi,j?+r?(AZj??I?xi,j?),?Ps?≤0.5;?else?,?Xi?={Xinew?,P2?,Xi?,?Finew?,P2?else?,??
斑馬優(yōu)化算法的算法描述如下:
斑馬優(yōu)化算法的算法流程如下:
參考文獻:
E Trojovská, M Dehghani, P Trojovsky. Zebra Optimization Algorithm: A New Bio-Inspired Optimization Algorithm for Solving Optimization Algorithm[J]. IEEE Access, 2022,10:49445-49473.
二、CEC2017簡介
CEC2017共有30個無約束測試函數(shù)分別是:單峰函數(shù)(F1-F3)、簡單多峰函數(shù)(F4-F10)、混合函數(shù)(F11-F20)和組合函數(shù)(F21-F30)。測試維度包含:10D、30D、50D、100D。CEC2017無約束測試問題隨著維度的增加求解極其困難。
三、求解結(jié)果
完整代碼添加博客下方博主微信:djpcNLP123
將斑馬優(yōu)化算法ZOA運用于求解CEC2017中30個無約束函數(shù),其中每個測試函數(shù)可以選擇的維度分別有:10D、30D、50D、100D。增大迭代次數(shù),ZOA的求解效果更佳。本例測試函數(shù)維度均為為10D(可根據(jù)自己需求調(diào)整),最大迭代次數(shù)為50次。
close all
clear
clc
Function_name=15; %測試函數(shù)1-30
lb=-100;%變量下界
ub=100;%變量上界
dim=10;%維度 10/30/50/100
SearchAgents_no=100; % Number of search agents
Max_iteration=50;%最大迭代次數(shù)
[Best_score,Best_pos,Curve]=ZOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
figure
% Best convergence curve
semilogy(Curve,'LineWidth',2,'Color','g');
title(strcat('CEC2017-F',num2str(Function_name)))
xlabel('迭代次數(shù)');
ylabel('適應(yīng)度值');
axis tight
box on
legend('ZOA')
display(['The best solution is : ', num2str(Best_pos)]);
display(['The best optimal value of the objective funciton is : ', num2str(Best_score)]);
F11:
F12:
F13:
F14:
F15:
四、參考代碼
完整代碼添加博客下方博主微信:djpcNLP123