一、理论基础
1、绯鲵鲣优化算法
绯鲵鲣优化算法(Yellow saddle goatfish algorithm, YSGA)是受绯鲵鲣鱼群合作狩猎行为的引导,而提出的一种新颖的群体仿生智能优化算法。
YSGA算法是锁定狩猎区域后,通过K-means方法将绯鲵鲣种群划分为
k
k
k个相互独立的簇以实现空间邻域内的并行搜索,并使绯鲵鲣在探索空间内扮演两种搜索代理角色,即追击鱼和拦截鱼以执行不同的搜索路径操作。在狩猎过程中,因鱼群随机游走可发生角色互换机制,若狩猎区域被过度开采,绯鲵鲣鱼群将执行区域更新策略以寻找新的捕食区域继续狩猎。根据绯鲵鲣群体协作狩猎行为的特点,YSGA算法通过初始化、追击鱼、拦截鱼、角色互换与更改区域5种不同行为模式的数学化描述以实现问题的优化求解。
(1)初始化阶段
种群
P
=
{
p
1
,
p
2
,
⋯
,
p
m
}
P=\{\boldsymbol{p}_1,\boldsymbol{p}_2,\cdots,\boldsymbol{p}_m\}
P={p1,p2,⋯,pm}在
n
n
n维搜索空间
[
b
high
,
b
low
]
[b^{\text{high}},b^{\text{low}}]
[bhigh,blow]内随机生成且均匀分布,并按式(1)进行初始化。
p
i
j
=
r
a
n
d
⋅
(
b
j
high
−
b
j
low
)
+
b
j
low
,
i
=
1
,
2
,
⋯
,
m
;
j
=
1
,
2
,
⋯
,
n
.
(1)
p_i^j=rand\cdot(b_j^{\text{high}}-b_j^{\text{low}})+b_j^{\text{low}},\,\,i=1,2,\cdots,m;\,\,j=1,2,\cdots,n.\tag{1}
pij=rand⋅(bjhigh−bjlow)+bjlow,i=1,2,⋯,m;j=1,2,⋯,n.(1)其中,
m
m
m为种群规模的大小,
p
i
∈
P
\boldsymbol{p}_i\in P
pi∈P为决策变量的向量,
p
i
=
{
p
i
1
,
p
i
2
,
⋯
,
p
i
n
}
\boldsymbol{p}_i=\{p_i^1,p_i^2,\cdots,p_i^n\}
pi={pi1,pi2,⋯,pin},
r
a
n
d
rand
rand是
[
0
,
1
]
[0,1]
[0,1]中的随机数。
YSGA模型运用K-means算法进行聚类分析,将种群
P
P
P划分为
k
k
k个相互独立的簇
{
c
1
,
c
2
,
⋯
,
c
k
}
\{c_1,c_2,\cdots,c_k\}
{c1,c2,⋯,ck},通过计算
k
k
k个簇中的每个决策变量与该簇中心的欧氏距离之和来定义该算法的适应度值,以表示捕获猎物的成功率,具体记为:
E
(
C
)
=
∑
l
=
1
k
e
(
c
l
)
(2)
E(C)=\sum_{l=1}^ke(c_l)\tag{2}
E(C)=l=1∑ke(cl)(2)
e
(
c
l
)
=
∑
p
g
∈
c
l
∣
∣
p
g
−
μ
l
∣
∣
2
(3)
e(c_l)=\sum_{p_g\in c_l}||p_g-\mu_l||^2\tag{3}
e(cl)=pg∈cl∑∣∣pg−μl∣∣2(3)其中,
e
(
c
l
)
e(c_l)
e(cl)表示每个簇
c
l
c_l
cl的均值
μ
l
\mu_l
μl与簇中每个决策变量之间的欧氏距离,
g
=
1
,
2
,
⋯
,
h
,
l
=
1
,
2
,
⋯
,
k
g=1,2,\cdots,h,\,\,l=1,2,\cdots,k
g=1,2,⋯,h,l=1,2,⋯,k。
(2)追击鱼路径
每个簇中适应度值较高的绯鲵鲣被暂定为该区域的追击鱼以引领捕猎,在搜索区域内利用莱维飞行模型产生随机移动以寻找猎物的藏身之处,其位置更新表达式为:
Φ
l
t
+
1
=
Φ
l
t
+
S
(4)
\varPhi_l^{t+1}=\varPhi_l^t+S\tag{4}
Φlt+1=Φlt+S(4)
S
=
α
⊕
L
e
v
y
(
β
)
∼
α
u
∣
v
∣
1
/
β
(
Φ
l
t
−
Φ
best
t
)
(5)
S=\alpha\oplus Levy(\beta)\sim\alpha\frac{u}{|v|^{1/\beta}}(\varPhi_l^t-\varPhi_{\text{best}}^t)\tag{5}
S=α⊕Levy(β)∼α∣v∣1/βu(Φlt−Φbestt)(5)其中,
Φ
l
t
\varPhi_l^t
Φlt表示追击鱼当前的位置,
S
S
S为莱维飞行模型通过莱维分布生成的随机步距;参数
α
\alpha
α为步长控制因子且
α
=
1
\alpha=1
α=1,参数
β
\beta
β称为Lévy指数且
0
<
β
≤
2
0<\beta\leq2
0<β≤2,其计算如式(8)所示,参数
u
u
u和
v
v
v服从正态分布;
Φ
best
t
\varPhi_{\text{best}}^t
Φbestt是当前所有集群中最佳追击鱼,其位置更新表达式为:
Φ
best
t
+
1
=
Φ
best
t
+
S
′
(6)
\varPhi_{\text{best}}^{t+1}=\varPhi_{\text{best}}^t+S'\tag{6}
Φbestt+1=Φbestt+S′(6)
S
′
=
α
u
∣
v
∣
1
/
β
(7)
S'=\alpha\frac{u}{|v|^{1/\beta}}\tag{7}
S′=α∣v∣1/βu(7)其中,
S
′
S'
S′为新定义的随机步距。
β
=
1.99
+
0.001
t
t
max
/
10
(8)
\beta=1.99+\frac{0.001t}{t_{\max}/10}\tag{8}
β=1.99+tmax/100.001t(8)其中,
t
t
t为当前迭代次数,
t
max
t_{\max}
tmax为最大迭代次数。图1显示了步长
β
\beta
β是如何随着迭代过程的增加而减小的,还可以观察到偶尔会出现更长的步长。
(3)拦截鱼路径
每个簇中确定追击鱼后,剩余的绯鲵鲣就成为拦截鱼对猎物实行包围策略以阻止其逃跑,并沿着螺旋路径围绕在此时试图捕食猎物的追击鱼周围,其位置更新表达式为:
φ
g
t
+
1
=
D
g
⋅
e
b
ρ
⋅
cos
(
2
π
ρ
)
+
Φ
l
(9)
\varphi_g^{t+1}=D_g\cdot e^{b\rho}\cdot\cos(2\pi\rho)+\varPhi_l\tag{9}
φgt+1=Dg⋅ebρ⋅cos(2πρ)+Φl(9)其中,
D
g
D_g
Dg是干扰距离,即拦截鱼
φ
g
t
\varphi_g^t
φgt和追击鱼
Φ
l
\varPhi_l
Φl在簇
c
l
c_l
cl中当前位置的距离;
ρ
\rho
ρ是
[
−
2
,
1
]
[-2,1]
[−2,1]中的随机数,其计算如式(10)所示;
b
b
b是一个常数且
b
=
1
b=1
b=1。
ρ
=
1
−
r
a
n
d
⋅
(
2
+
t
t
max
)
(10)
\rho=1-rand\cdot\left(2+\frac t{t_{\max}}\right)\tag{10}
ρ=1−rand⋅(2+tmaxt)(10)其中,
t
t
t为当前迭代次数,
t
max
t_{\max}
tmax为最大迭代次数,
r
a
n
d
rand
rand为
[
0
,
1
]
[0,1]
[0,1]的随机数。图2展示了迭代过程中
ρ
\rho
ρ的不同值的变化。
(4)角色互换
在追捕猎物过程中,若簇中的拦截鱼比追击鱼距离猎物更近,即具有更高的适应度值,则意味着寻找到了更优的解决方案,在迭代 t + 1 t+1 t+1中执行角色互换机制以更新最佳追击鱼的位置。
(5)更改区域
YSGA模型所选狩猎区域一旦被完全开发,即通过猎杀锁定的狩猎区域内所有猎物,对簇中所有的绯鲵鲣将执行区域更新策略,具体数学描述如下: p g t + 1 = Φ best + p g t 2 (11) p_g^{t+1}=\frac{\varPhi_{\text{best}}+p_g^t}{2}\tag{11} pgt+1=2Φbest+pgt(11)其中, p g t + 1 p_g^{t+1} pgt+1是绯鲵鲣的新狩猎区域, p g t p_g^t pgt是当前簇中绯鲵鲣(追击鱼或拦截鱼)成员的位置, Φ best \varPhi_{\text{best}} Φbest是目前为止所有簇中适应度值最高的最佳追击鱼,即问题的最优解。
2、YSGA算法伪代码
YSGA算法伪代码如图3所示。
二、仿真实验与结果分析
将YSGA与CSA、MFO、WOA和GWO进行对比,实验设置种群规模为50,最大迭代次数为1000,每个算法独立运行30次,以常用23个测试函数中的F1、F2(单峰函数/30维)、F10、F11(多峰函数/30维)、F18、F19(固定维度多峰函数/2维、3维)为例,结果显示如下:
函数:F1
CSA:最差值: 0.039602, 最优值: 0.0041786, 平均值: 0.014151, 标准差: 0.0077652, 秩和检验: 3.0199e-11
MFO:最差值: 10000, 最优值: 3.9103e-06, 平均值: 1000.0001, 标准差: 3051.2857, 秩和检验: 3.0199e-11
WOA:最差值: 1.7022e-170, 最优值: 1.252e-188, 平均值: 5.6889e-172, 标准差: 0, 秩和检验: 3.0939e-06
GWO:最差值: 5.1427e-70, 最优值: 1.8406e-72, 平均值: 8.1056e-71, 标准差: 1.0606e-70, 秩和检验: 3.0199e-11
YSGA:最差值: 1.2726e-169, 最优值: 8.1531e-203, 平均值: 4.3298e-171, 标准差: 0, 秩和检验: 1
函数:F2
CSA:最差值: 3.3065, 最优值: 0.26867, 平均值: 1.3492, 标准差: 0.70734, 秩和检验: 3.0199e-11
MFO:最差值: 100, 最优值: 4.5604e-05, 平均值: 34.6667, 标准差: 26.8756, 秩和检验: 3.0199e-11
WOA:最差值: 2.2871e-106, 最优值: 2.1506e-118, 平均值: 8.7678e-108, 标准差: 4.1975e-107, 秩和检验: 8.891e-10
GWO:最差值: 2.0806e-40, 最优值: 2.814e-42, 平均值: 4.9471e-41, 标准差: 4.8279e-41, 秩和检验: 3.0199e-11
YSGA:最差值: 2.4829e-99, 最优值: 5.069e-111, 平均值: 9.5073e-101, 标准差: 4.5361e-100, 秩和检验: 1
函数:F10
CSA:最差值: 4.4659, 最优值: 1.1559, 平均值: 3.1185, 标准差: 0.70509, 秩和检验: 1.2926e-11
MFO:最差值: 19.9605, 最优值: 0.00070223, 平均值: 14.3042, 标准差: 7.9524, 秩和检验: 8.8675e-12
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.4409e-15, 标准差: 2.0862e-15, 秩和检验: 0.067303
GWO:最差值: 1.5099e-14, 最优值: 7.9936e-15, 平均值: 1.2849e-14, 标准差: 2.8731e-15, 秩和检验: 4.6364e-12
YSGA:最差值: 4.4409e-15, 最优值: 8.8818e-16, 平均值: 3.4935e-15, 标准差: 1.5979e-15, 秩和检验: 1
函数:F11
CSA:最差值: 0.19473, 最优值: 0.043715, 平均值: 0.096467, 标准差: 0.036893, 秩和检验: 1.2118e-12
MFO:最差值: 90.3362, 最优值: 1.2458e-05, 平均值: 9.0282, 标准差: 27.4969, 秩和检验: 1.2118e-12
WOA:最差值: 0.11215, 最优值: 0, 平均值: 0.006333, 标准差: 0.022309, 秩和检验: 0.081523
GWO:最差值: 0.020746, 最优值: 0, 平均值: 0.0014352, 标准差: 0.004667, 秩和检验: 0.081523
YSGA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F18
CSA:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 2.4491e-15, 秩和检验: 2.6978e-11
MFO:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 1.1778e-15, 秩和检验: 1.7226e-11
WOA:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 7.1073e-06, 秩和检验: 2.6015e-08
GWO:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 3.2389e-06, 秩和检验: 1.1737e-09
YSGA:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 1.295e-08, 秩和检验: 1
函数:F19
CSA:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.6543e-15, 秩和检验: 4.0806e-12
MFO:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.7101e-15, 秩和检验: 1.2118e-12
WOA:最差值: -3.8549, 最优值: -3.8628, 平均值: -3.8615, 标准差: 0.0023223, 秩和检验: 3.3384e-11
GWO:最差值: -3.8549, 最优值: -3.8628, 平均值: -3.862, 标准差: 0.0022845, 秩和检验: 3.0199e-11
YSGA:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 5.7109e-09, 秩和检验: 1
实验结果表明了YSGA算法的有效性、准确性和鲁棒性。
三、参考文献
[1] Daniel Zaldívar, Bernardo Morales, Alma Rodríguez, et al. A novel bio-inspired optimization model based on Yellow Saddle Goatfish behavior[J]. BioSystems, 2018, 174: 1-21.
[2] 高雷阜, 荣雪娇. 融合递减策略与Fuch混沌机制的改进YSGA算法[J]. 计算机科学与探索, 2021, 15(3): 564-576.