目录
- 1.背景
- 2.算法原理
- 2.1算法思想
- 2.2算法过程
- 3.结果展示
- 4.参考文献
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.