1.背景
2021年,M Braik等人受到自然界卷尾猴觅食行为启发,提出了卷尾猴搜索算法(Capuchin Search Algorithm,CapSA)。
2.算法原理
2.1算法思想
CapSA种模拟卷尾猴在森林中游荡觅食行为,是领导者和跟随者类型。领导者负责发现食物区域,跟随者在该区域寻找食物的具体位置; 卷尾猴在觅食过程中,依据自身位置与角色、历史最好位置、种群的全局最好位置及位置更新策略不断更新自身位置,直到最终获取食物后,停止食物的搜索。
2.2算法过程
初始化种群后,计算种群适应度,依据适应度降幂排列卷尾猴种群中的卷尾猴,前 1 /2 只卷尾猴构成领导者种群 A,后1 /2 只卷尾猴构成跟随者种群 B。
卷尾猴速度更新
卷尾猴i更新速度:
ν
i
(
t
+
1
)
=
ρ
ν
i
(
t
)
+
τ
a
1
(
x
b
e
s
t
i
−
x
i
(
t
)
)
r
1
+
τ
a
2
(
F
−
x
i
(
t
)
)
r
2
(1)
\begin{aligned}\nu_{i}( t + 1) &=\rho \nu_{i}( t) + \tau a_{1}( x_{best}^{i} - x_{i}( t) ) r_{1} +\tau a_{2}( F - x_{i}( t) ) r_{2}\end{aligned}\tag{1}
νi(t+1)=ρνi(t)+τa1(xbesti−xi(t))r1+τa2(F−xi(t))r2(1)
其中,xibest 为卷尾猴 i 的历史最优位置; F 为所有卷尾猴的全局最好位置。(PS:跟粒子群PSO一致🤣)
惯性系数 ρ平衡卷尾猴的全局和局部搜索能力:
τ
=
β
0
e
−
β
1
(
t
T
)
β
2
(2)
\tau=\beta_0 e^{-\beta_1( \frac tT) \beta_2}\tag{2}
τ=β0e−β1(Tt)β2(2)
领导者种群位置更新
更新策略:
x
i
j
(
t
+
1
)
=
{
τ
[
[
b
j
+
ε
(
u
b
j
−
l
b
j
)
]
0.1
<
ε
⩽
0.2
F
+
P
e
f
P
b
f
v
i
j
(
t
)
2
sin
(
3
r
)
g
0.2
<
ε
⩽
0.3
x
i
j
(
t
)
+
v
i
j
(
t
)
0.3
<
ε
⩽
0.5
F
+
τ
P
b
j
sin
(
3
r
)
0.5
<
ε
⩽
0.75
F
+
τ
P
b
j
(
v
i
j
(
t
)
−
v
i
,
j
−
1
(
t
)
)
0.75
<
ε
⩽
1.0
(3)
\begin{aligned}&x_{ij}( t + 1) =&\begin{cases}\tau [ [ b_j + \varepsilon( u b_j - l b_j) ]&0.1 < \varepsilon \leqslant 0.2\\F + \frac{P_{ef} P_{bf} v_{ij}( t )^2\sin( 3r)}{g}&0.2 < \varepsilon \leqslant 0.3\\x_{ij}( t ) + v_{ij}( t )&0.3 < \varepsilon \leqslant 0.5\\F + \tau P_{bj}\sin( 3r)&0.5 < \varepsilon \leqslant 0.75\\F + \tau P_{bj}( v_{ij}( t ) - v_{i,j-1}( t ) )&0.75 < \varepsilon \leqslant 1.0\end{cases}\end{aligned}\tag{3}
xij(t+1)=⎩
⎨
⎧τ[[bj+ε(ubj−lbj)]F+gPefPbfvij(t)2sin(3r)xij(t)+vij(t)F+τPbjsin(3r)F+τPbj(vij(t)−vi,j−1(t))0.1<ε⩽0.20.2<ε⩽0.30.3<ε⩽0.50.5<ε⩽0.750.75<ε⩽1.0(3)
其中,Pbf 是领导者卷尾猴在跳跃运动中提供平衡的概率,Pef 为弹性系数。
跟随者种群位置更新
种群 B 中位置为xi( t) 的跟随者 i 更新后的位置是介于自身位置和上一时刻位置的中间位置:
x
i
(
t
+
1
)
=
1
2
(
x
i
(
t
)
+
x
i
−
1
(
t
)
)
(4)
x_i( t + 1) =\frac{1}{2}( x_i( t) + x_{i-1}( t) )\tag{4}
xi(t+1)=21(xi(t)+xi−1(t))(4)
PS:有点像灰狼GWO🤣
伪代码
3.结果展示
4.参考文献
[1] Braik M, Sheta A, Al-Hiary H. A novel meta-heuristic search algorithm for solving optimization problems: capuchin search algorithm[J]. Neural computing and applications, 2021, 33(7): 2515-2547.