<>一、斑马优化算法
斑马优化算法(Zebra Optimization Algorithm,ZOA)Eva
Trojovská等人于2022年提出,其模拟斑马的觅食和对捕食者攻击的防御行为。
斑马因身上有起保护作用的斑纹而得名。没有任何动物比斑马的皮毛更与众不同。斑马周身的条纹和人类的指纹一样——没有任何两头完全相同。斑马为非洲特产。非洲东部、中部和南部产平原斑马,由腿至蹄具条纹或腿部无条纹。东非还产一种格式斑马,体格最大,耳长(约20厘米)而宽,全身条纹窄而密,因而又名细纹斑马。南非洲产山斑马,与其它两种斑马不同的是,它有一对象驴似的大长耳朵。除腹部外,全身密布较宽的黑条纹,雄体喉部有垂肉。斑马是草食性动物。除了草之外,灌木、树枝、树叶甚至树皮也是它们的食物。适应能力较强的消化系统,令斑马可以在低营养条件下生存,比其他草食性动物优胜。斑马对非洲疾病的抗病力比马强,但斑马始终未能被驯化成家畜,也没有能和马进行杂交。
斑马优化算法包含两个阶段:
阶段一:觅食行为
在第一阶段,根据斑马在寻找饲料时的行为模拟来更新种群成员。斑马的主要食物主要是草和莎草,但如果它们喜欢的食物稀缺,它们也可能吃芽、水果、树皮、根和叶子。根据植被的质量和可用性,斑马可能会花费60-80%的时间进食。在斑马中,有一种斑马叫做平原斑马,它是一种先驱食草动物,通过吞噬上层和营养较少的草的树冠,为其他需要更短、更有营养的草的物种提供了条件。在
ZOA 中,种群中最好的成员被认为是先锋斑马,并引导其他种群成员走向其在搜索空间中的位置。因此,更新斑马在觅食阶段的位置可以使用下式进行数学建模:
x i , j n e w , P 1 = x i , j + r ⋅ ( P Z j − I ⋅ x i , j ) , X i = { X i n e
w , P 1 , F i n e w , P 1 < F i X i , 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⋅(PZ
j−I⋅xi,j),Xi={Xinew,P1,Xi,Finew,P1<Fi else
阶段二:针对掠食者的防御行为
在第二阶段,模拟斑马对捕食者攻击的防御策略,以更新ZOA种群成员在搜索空间中的位置。斑马的主要捕食者是狮子;然而,它们受到猎豹、豹子、野狗、褐鬣狗和斑鬣狗的威胁。鳄鱼是斑马接近水时的另一种捕食者。斑马的防御策略因捕食者而异。斑马对狮子攻击的防御策略是以锯齿形模式和随机侧身转弯运动逃跑。斑马对鬣狗和狗等小型捕食者的攻击更具攻击性,这些捕食者通过聚集来迷惑和吓唬猎人。在
ZOA 设计中,假设以下两个条件之一以相同的概率发生:
(1)狮子攻击斑马,因此斑马选择了逃跑策略;
(2)其他捕食者攻击斑马,斑马会选择进攻策略。
在策略(1)中,当斑马受到狮子的攻击时,斑马在它们所在的情况附近逃离狮子的攻击。因此,在数学上,可以使用模式对这种策略进行建模S1
在下式第一项中。在第策略(2)中,当其他捕食者攻击其中一匹斑马时,群中的其他斑马会向被攻击的斑马移动,并试图通过创建防御结构来吓唬和迷惑捕食者。斑马的这种策略是使用模式进行数学建模的S2
在下式第一项中。在更新斑马的位置时,如果斑马的新位置对目标函数具有更好的值,则该斑马的新位置将被接受。此更新条件使用 下式第一二项建模。
x i , j n e w , P 2 = { S 1 : x i , j + R ⋅ ( 2 r − 1 ) ⋅ ( 1 − t T ) ⋅ x i ,
j , P s ≤ 0.5 ; S 2 : x i , j + r ⋅ ( A Z j − I ⋅ x i , j ) , else , X i = {
X i new , P 2 , F i n e w , P 2 X i , 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}x
i,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 ,
斑马优化算法的算法描述如下:
斑马优化算法的算法流程如下:
参考文献:
E Trojovská, M Dehghani, P Trojovský. Zebra Optimization Algorithm: A New
Bio-Inspired Optimization Algorithm for Solving Optimization Algorithm[J]. IEEE
Access, 2022,10:49445-49473.
<>二、CEC2017简介
CEC2017共有30个无约束测试函数分别是:单峰函数(F1-F3)、简单多峰函数(F4-F10)、混合函数(F11-F20)和组合函数(F21-F30)。测试维度包含:10D、30D、50D、100D。CEC2017无约束测试问题随着维度的增加求解极其困难。
<>三、求解结果
将斑马优化算法ZOA运用于求解CEC2017中30个无约束函数,其中每个测试函数可以选择的维度分别有:10D、30D、50D、100D。增大迭代次数,ZOA的求解效果更佳。本例测试函数维度均为为10D(可根据自己需求调整),最大迭代次数为50次。
close all clear clc Function_name=15; %测试函数1-30 lb=-100;%变量下界 ub=100;%变量上界 dim=
10;%维度 10/30/50/100 SearchAgents_no=100; % Number of search agents Max_iteration
=50;%最大迭代次数 [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('迭代次数'); ylabel('适应度值'); 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:
<>四、完整MATLAB代码