目录
- 1.背景
- 2.算法原理
- 2.1算法思想
- 2.2算法过程
- 3.结果展示
- 4.参考文献
- 5.代码获取
1.背景
2024年,W Wang受到北极海鹦的生存和捕食行为启发,提出了北极海鹦优化算法(Arctic Puffin Optimization, APO)。
2.算法原理
2.1算法思想
APO由空中飞行(探索阶段)和水下觅食(开发阶段)两部分构成。在探索阶段,引入了Levy飞行和速度因子机制,以增强算法跳出局部最优的能力并提高收敛速度。在开发阶段,采用了协同和自适应变化因子策略,确保算法能有效利用当前最佳解并指导搜索方向。
2.2算法过程
空中飞行阶段(探索)
北极海鹦通常以编队或群体的方式进行协调飞行,这种协作行为提高了飞行效率,并为合作狩猎创造了机会。它们保持相对较低的飞行高度,以方便捕获潜在的水下食物资源:
Y
i
t
+
1
→
=
X
i
t
→
+
(
X
i
t
→
−
X
r
t
→
)
∗
L
(
D
)
+
R
R
=
r
o
u
n
d
(
0.5
∗
(
0.05
+
r
a
n
d
)
)
∗
α
(1)
\overrightarrow{Y_{i}^{t+1}}=\overrightarrow{X_{i}^{t}}+\left(\overrightarrow{X_{i}^{t}}-\overrightarrow{X_{r}^{t}}\right)*L(D)+R\\R=round(0.5*(0.05+rand))*\alpha \tag{1}
Yit+1=Xit+(Xit−Xrt)∗L(D)+RR=round(0.5∗(0.05+rand))∗α(1)
参数
α
\alpha
α表述为:
α
∼
N
o
r
m
a
l
(
0
,
1
)
(2)
\alpha\sim Normal(0,1)\tag{2}
α∼Normal(0,1)(2)
俯冲是北极海鹦捕食时的关键策略,因为它们会迅速改变飞行方向以加快食物捕获:
Z
i
t
+
1
→
=
Y
i
t
+
1
→
∗
S
S
=
tan
(
(
r
a
n
d
−
0.5
)
∗
π
)
(3)
\overrightarrow{Z_i^{t+1}}=\overrightarrow{Y_i^{t+1}}*S\\ S=\tan((rand-0.5)*\pi)\tag{3}
Zit+1=Yit+1∗SS=tan((rand−0.5)∗π)(3)
在这种飞行策略中,北极海鹦在第一阶段通过引入速度系数S来调整其位移。S是一个速度系数,它允许北极海鹦通过调整其飞行速度的大小和方向,灵活地适应不同的摄食需求。随着参数S的增加,算法更加贴近北极海鹦的空中行为,使其在面对竞争和不确定性时更加灵活,从而适应更复杂的空中环境。
为了在各种场景下获得最优结果,算法选择合并两个阶段生成的候选位置,根据适应度对这些解决方案进行排序,并选择前N个个体形成新的种群:
P
i
t
+
1
→
=
Y
i
t
+
1
→
∪
Z
i
t
+
1
→
new
=
s
o
r
t
(
P
i
t
+
1
→
)
X
i
t
+
1
→
=
n
e
w
(
1
:
N
)
(4)
\begin{gathered} \overrightarrow{P_{i}^{t+1}} =\overrightarrow{Y_{i}^{t+1}}\cup\overrightarrow{Z_{i}^{t+1}} \\ \text{new} =sort\left(\overrightarrow{P_i^{t+1}}\right) \\ \overrightarrow{X_{i}^{t+1}} =new(1:N) \end{gathered}\tag{4}
Pit+1=Yit+1∪Zit+1new=sort(Pit+1)Xit+1=new(1:N)(4)
水下觅食阶段(开发)
在北极海鹦的觅食行为中,它们经常采取集体策略,聚集在水面附近的鱼群周围,这种合作捕食行为提高了捕猎效率和成功率:
W
i
t
+
1
→
=
{
X
r
1
t
→
+
F
∗
L
(
D
)
∗
(
X
r
2
t
→
−
X
r
3
t
→
)
r
a
n
d
≥
0.5
X
r
1
t
→
+
F
∗
(
X
r
2
t
→
−
X
r
3
t
→
)
r
a
n
d
<
0.5
(5)
\left.\overrightarrow{W_{i}^{t+1}}=\begin{cases}\overrightarrow{X_{r1}^{t}}+F*L(D)*\left(\overrightarrow{X_{r2}^{t}}-\overrightarrow{X_{r3}^{t}}\right)rand\geq0.5\\\overrightarrow{X_{r1}^{t}}+F*\left(\overrightarrow{X_{r2}^{t}}-\overrightarrow{X_{r3}^{t}}\right)rand<0.5\end{cases}\right.\tag{5}
Wit+1=⎩
⎨
⎧Xr1t+F∗L(D)∗(Xr2t−Xr3t)rand≥0.5Xr1t+F∗(Xr2t−Xr3t)rand<0.5(5)
随着捕食的进行,北极海鹦可能会在一段时间后感觉到当前觅食区域的食物资源枯竭或耗尽。为了继续满足它们的营养需求,它们必须改变它们在水下的位置,寻找更多的鱼或其他水下食物来源:
Y
i
t
+
1
→
=
W
i
t
+
1
→
∗
(
1
+
f
)
f
=
0.1
∗
(
r
a
n
d
−
1
)
∗
(
T
−
t
)
T
(6)
\begin{aligned} &\overrightarrow{Y_{i}^{t+1}}=\overrightarrow{W_{i}^{t+1}}*(1+f) \\ &f=0.1*(rand-1)*\frac{(T-t)}{T} \end{aligned}\tag{6}
Yit+1=Wit+1∗(1+f)f=0.1∗(rand−1)∗T(T−t)(6)
躲避捕食者策略被用来描述北极海鹦在发现附近的捕食者时的行为。它们用一种特殊的声音或叫声来警告其他北极海鹦,表明危险的存在:
Z
i
t
+
1
→
=
{
X
i
t
→
+
F
∗
L
(
D
)
∗
(
X
r
1
t
→
−
X
r
2
t
→
)
r
a
n
d
≥
0.5
X
i
t
→
+
β
∗
(
X
r
1
t
→
−
X
r
2
t
→
)
r
a
n
d
<
0.5
(7)
\overrightarrow{Z_i^{t+1}}=\begin{cases}\overrightarrow{X_i^t}+F*L(D)*\left(\overrightarrow{X_{r1}^t}-\overrightarrow{X_{r2}^t}\right)rand\geq0.5\\\overrightarrow{X_i^t}+\beta*\left(\overrightarrow{X_{r1}^t}-\overrightarrow{X_{r2}^t}\right)rand<0.5\end{cases}\tag{7}
Zit+1=⎩
⎨
⎧Xit+F∗L(D)∗(Xr1t−Xr2t)rand≥0.5Xit+β∗(Xr1t−Xr2t)rand<0.5(7)
北极海鹦在水下觅食时采用不同的策略,包括收集饲料、密集搜寻和躲避捕食者。在不同的条件下,这些策略可能导致不同的觅食结果。该算法选择将三个不同位置方程中的候选位置合并为一个新的解,以在各种情况下获得最优结果。根据适应度对解进行排序,并选出前N个个体:
P
i
t
+
1
→
=
W
i
t
+
1
→
∪
Y
i
t
+
1
→
∪
Z
i
t
+
1
→
n
e
w
=
s
o
r
t
(
P
i
t
+
1
→
)
X
i
t
+
1
→
=
n
e
w
(
1
:
N
)
(8)
\overrightarrow{P_i^{t+1}}=\overrightarrow{W_i^{t+1}}\cup\overrightarrow{Y_i^{t+1}}\cup\overrightarrow{Z_i^{t+1}}\\ new=sort\left(\overrightarrow{P_{i}^{t+1}}\right)\\\overrightarrow{X_{i}^{t+1}}=new(1:N)\tag{8}
Pit+1=Wit+1∪Yit+1∪Zit+1new=sort(Pit+1)Xit+1=new(1:N)(8)
流程图
伪代码
3.结果展示
4.参考文献
[1] Wang W, Tian W, Xu D, et al. Arctic puffin optimization: A bio-inspired metaheuristic algorithm for solving engineering design optimization[J]. Advances in Engineering Software, 2024, 195: 103694.