目录
- 1.摘要
- 2.算法原理
- 3.结果展示
- 4.参考文献
- 5.代码获取
1.摘要
本文提出了一种新的进化算法——莲花效应算法(LEA),该算法结合了蜻蜓算法中的高效操作算子,例如蜻蜓在花朵授粉中的运动方式用于探索,以及水在花叶上的自清洁特性——即莲花效应,用于提取和局部搜索操作。
2.算法原理
探索阶段
在LEA算法中,蜻蜓模拟了授粉过程,其基于昆虫群体的三个基本行为原则——分离、对齐和凝聚,以及食物和敌人两个概念,来模拟蜻蜓的智能行为。分离原则旨在避免个体与邻近个体发生碰撞;对齐原则则要求个体与邻域内其他个体的速度相匹配;凝聚原则则促使个体向邻域的质量中心聚集。每个群体的最终目标是生存,因此个体必须朝向食物源并远离敌人。分离行为:
S
i
t
=
−
∑
j
=
1
N
X
i
t
−
X
j
t
S_i^t=-\sum_{j=1}^NX_i^t-X_j^t
Sit=−j=1∑NXit−Xjt
对齐行为:
A
i
t
=
∑
j
=
1
N
X
j
t
N
A_i^t=\frac{\sum_{j=1}^NX_j^t}{N}
Ait=N∑j=1NXjt
凝聚行为:
C
i
t
=
∑
j
=
1
N
X
j
t
N
−
X
i
t
C_i^t=\frac{\sum_{j=1}^NX_j^t}{N}-X_i^t
Cit=N∑j=1NXjt−Xit
对食物来源的吸引力计算如下:
F
i
t
=
X
+
t
−
X
i
t
F_i^t=X_+^t-X_i^t
Fit=X+t−Xit
天敌干扰力计算如下:
E
i
t
=
X
−
t
+
X
i
t
E_{i}^{t}=X_{-}^{t}+X_{i}^{t}
Eit=X−t+Xit
其中,
X
+
t
X_+^t
X+t食物来源的位置,
X
−
t
X_{-}^{t}
X−t天敌位置。
蜻蜓的行为是由五种假设模式的组合而成。为了更新蜻蜓在搜索空间中的位置并模拟它们的运动,算法考虑了步长和位置:
Δ
X
i
t
+
1
=
(
s
S
i
t
+
a
A
i
t
+
c
C
i
t
+
f
F
i
t
+
e
E
i
t
)
+
w
Δ
X
i
t
\Delta X_i^{t+1}= \begin{pmatrix} sS_i^t+aA_i^t+cC_i^t+fF_i^t+eE_i^t \end{pmatrix}+w\Delta X_i^t
ΔXit+1=(sSit+aAit+cCit+fFit+eEit)+wΔXit
位置更新:
X
i
t
+
1
=
X
i
t
+
w
Δ
X
i
t
+
1
X_i^{t+1}=X_i^t+w\Delta X_i^{t+1}
Xit+1=Xit+wΔXit+1
为了提高蜻蜓在搜索空间中的随机探索行为,当周围没有解时,蜻蜓会随机飞行并调整其步长:
X
i
t
+
1
=
X
i
t
+
L
e
v
y
(
d
)
×
X
i
t
X_i^{t+1}=X_i^t+\mathrm{Levy}(d)\times X_i^t
Xit+1=Xit+Levy(d)×Xit
开发阶段
局部授粉阶段是该算法中的提取过程,在这一过程中使用一个系数来确定每朵花周围的生长区域大小,最佳解成为其他解的吸引源,其他解则朝着最佳解移动。在算法的初始阶段,步长较长,以便快速探索解空间;随着优化的进行,步长逐渐缩短,从而精细化搜索并增强局部优化能力:
X
i
t
+
1
=
X
i
t
+
R
(
X
i
t
−
g
∗
)
X_{i}^{t+1}=X_{i}^{t}+R\left(X_{i}^{t}-g^{*}\right)
Xit+1=Xit+R(Xit−g∗)
其中,
R
R
R表示增长区域:
R
=
2
e
−
(
4
t
L
)
2
R=2e^{-\left(\frac{4t}{L}\right)^2}
R=2e−(L4t)2
伪代码
3.结果展示
4.参考文献
[1] Dalirinia E, Jalali M, Yaghoobi M, et al. Lotus effect optimization algorithm (LEA): a lotus nature-inspired algorithm for engineering design optimization[J]. The Journal of Supercomputing, 2024, 80(1): 761-799.