1.背景
2021年,H Peraza-Vázquez等人受到跳蛛狩猎行为启发,提出了跳蛛优化算法(Jumping Spider Optimization Algorithm,JSOA)。
2.算法原理
2.1算法思想
JSOA模拟了跳蛛的捕猎行为,主要包括跳蛛捕猎时的迫害、跳向猎物、搜索行为,并通过信息素来优化位置不佳的跳蛛。
2.2算法过程
迫害:
当跳蛛跳跃距离不够捕捉猎物时,它会通过一些隐蔽的移动靠近猎物:
x
⃗
i
(
g
+
1
)
=
1
2
(
x
⃗
i
(
g
)
−
x
⃗
r
(
g
)
)
(1)
\vec{x}_{i}(g+1)=\frac{1}{2}(\vec{x}_{i}(g)-\vec{x}_{r}(g))\tag{1}
xi(g+1)=21(xi(g)−xr(g))(1)
其中,xr为不等于xi的随机跳蛛。
跳向猎物:
跳蛛扑向猎物的行为可以表示为初速度为V0,与水平夹角为φ 的 抛 物 线 运 动。该抛物线运动水平方向速度与竖直方向速度为:
x
⃗
i
=
V
0
cos
(
α
)
t
i
⃗
y
⃗
i
=
(
V
0
sin
(
α
)
t
−
1
2
g
t
2
)
j
⃗
(2)
\begin{aligned}&\vec{x}_{i}=V_{0}\cos(\alpha)t\vec{i}\\&\vec{y}_{i}=\left(V_{0}\sin(\alpha)t-\frac{1}{2}gt^{2}\right)\vec{j}\end{aligned}\tag{2}
xi=V0cos(α)tiyi=(V0sin(α)t−21gt2)j(2)
当时间间隔为1时,可以得到:
y
=
x
tan
(
α
)
−
g
x
2
2
V
0
2
cos
2
(
α
)
(3)
y=x\tan(\alpha)-\frac{gx^2}{2V_0^2\cos^2(\alpha)}\tag{3}
y=xtan(α)−2V02cos2(α)gx2(3)
跳向猎物过程可以表述为:
x
⃗
i
(
g
+
1
)
=
x
⃗
i
(
g
)
tan
(
α
)
−
g
x
⃗
i
2
(
g
)
2
V
0
2
cos
2
(
α
)
α
=
ϕ
π
180
(4)
\begin{aligned}&\vec{x}_{i}(g+1)=\vec{x}_{i}(g)\tan(\alpha)-\frac{g\vec{x}_{i}^{2}(g)}{2V_{0}^{2}\cos^{2}(\alpha)}\\&\alpha=\frac{\phi\pi}{180}\end{aligned}\tag{4}
xi(g+1)=xi(g)tan(α)−2V02cos2(α)gxi2(g)α=180ϕπ(4)
搜索猎物:
跳蛛在周围环境进行随机搜索以找到猎物,算法提供了局部搜索和全局搜索。局部搜索表述为:
x
⃗
i
(
g
+
1
)
=
x
⃗
b
e
s
t
(
g
)
+
W
A
L
K
(
1
2
−
ε
)
(5)
\vec{x}_i(g+1)=\vec{x}_{\mathrm{best}}(g)+WALK\left(\frac{1}{2}-\varepsilon\right)\tag{5}
xi(g+1)=xbest(g)+WALK(21−ε)(5)
全局搜索表述为:
x
⃗
i
(
g
+
1
)
=
x
⃗
b
e
s
t
(
g
)
+
(
x
⃗
b
e
s
t
(
g
)
−
x
⃗
w
o
r
s
t
(
g
)
)
λ
(6)
\vec{x}_i(g+1)=\vec{x}_{\mathrm{best}}(g)+(\vec{x}_{\mathrm{best}}(g)-\vec{x}_{\mathrm{worst}}(g))\lambda \tag{6}
xi(g+1)=xbest(g)+(xbest(g)−xworst(g))λ(6)
信息素:
第i只跳蛛信息素为:
p
h
e
r
o
m
o
n
e
(
i
)
=
F
i
t
n
e
s
s
max
−
F
i
t
n
e
s
s
(
i
)
F
i
t
n
e
s
s
max
−
F
i
t
n
e
s
s
min
(7)
pheromone\left(i\right)=\frac{Fitness_{\max}-Fitness\left(i\right)}{Fitness_{\max}-Fitness_{\min}}\tag{7}
pheromone(i)=Fitnessmax−FitnessminFitnessmax−Fitness(i)(7)
当信息素小于或等于0.3时:
x
⃗
i
(
g
)
=
x
⃗
best
(
g
)
+
1
2
(
x
⃗
r
1
(
g
)
−
(
−
1
)
σ
x
⃗
r
2
(
g
)
)
\vec{x}_i(g)=\vec{x}_{\text{best}}(g)+\frac{1}{2}(\vec{x}_{r1}(g)-(-1)^{\sigma}\vec{x}_{r2}(g))
xi(g)=xbest(g)+21(xr1(g)−(−1)σxr2(g))
伪代码:
3.结果展示
4.参考文献
[1] Peraza-Vázquez H, Peña-Delgado A, Ranjan P, et al. A bio-inspired method for mathematical optimization inspired by arachnida salticidade[J]. Mathematics, 2021, 10(1): 102.