目录
- 1.背景
- 2.算法原理
- 2.1算法思想
- 2.2算法过程
- 3.结果展示
- 4.参考文献
1.背景
2020年,K Zervoudakis等人受到自然界蜉蝣交配繁殖行为启发,提出了蜉蝣算法(Mayfly Algorithm, MA)。
2.算法原理
2.1算法思想
MA灵感来自蜉蝣交配过程, 每只蜉蝣在空间位置上代表了问题的可行解。MA 先产生两组蜉蝣, 分别代表雄性和雌性种群,蜉蝣的飞行方向是个体和社会经验的交互作用, 而每只蜉蝣会调整自己的轨迹, 朝着个体最优以及全局最优位置移动。
2.2算法过程
雄性蜉蝣运动更新
雄性蜉蝣成群地聚集, 每只雄性蜉蝣的位置是根据临近经验调整自身位置:
x
i
ι
+
1
=
x
i
t
+
v
i
ι
+
1
(1)
x_i^{\iota+1} = x_i^t + v_i^{\iota+1}\tag{1}
xiι+1=xit+viι+1(1)
雄性蜉蝣在水面上表演舞蹈,蜉蝣不断的移动,速度更新为:
v
i
t
+
1
=
v
i
t
+
a
1
e
−
β
r
p
2
(
p
b
e
s
t
i
−
x
i
t
)
+
a
2
e
−
β
r
g
2
(
g
b
e
s
t
−
x
i
t
)
(2)
\boldsymbol{v}_{i}^{t+1} =\boldsymbol{v}_{i}^{t} + a_{1} \mathrm{e}^{-\beta r_{\mathrm{p}}^{2}}\left(\boldsymbol{p}_{\mathrm{best}_{i}}-\boldsymbol{x}_{i}^{t}\right) + a_{2} \mathrm{e}^{-\beta r_{\mathrm{g}}^{2}}\left(\boldsymbol{g}_{\mathrm{best}}-\boldsymbol{x}_{i}^{t}\right)\tag{2}
vit+1=vit+a1e−βrp2(pbesti−xit)+a2e−βrg2(gbest−xit)(2)
PS:和PSO速度更新类似,权重系数为自适应参数
其中,
β
\beta
β为蜉蝣定能见度系数; rp 为当前位置和 pbesti 之间的笛卡尔距离; rg 为当前位置和gbest之间的笛卡尔距离:
∥
x
i
−
X
i
∥
=
∑
j
=
1
n
(
x
i
−
X
i
)
2
(3)
\parallel\boldsymbol{x}_i -\boldsymbol{X}_i\parallel = \sqrt{\sum_{j=1}^n (\boldsymbol{x}_i -\boldsymbol{X}_i)^2}\tag{3}
∥xi−Xi∥=j=1∑n(xi−Xi)2(3)
为了得到更好的位置, 团队中最好的蜉蝣继续表演舞蹈, 更新速度:
v
i
t
+
1
=
v
i
t
+
d
r
(4)
v_i^{t+1} = v_i^t + dr\tag{4}
vit+1=vit+dr(4)
其中,d为舞蹈系数。
雌性蜉蝣运动更新
雄性蜉蝣容易聚集而雌性蜉蝣不会群体聚集,但是雌性蜉蝣会飞来与雄性蜉蝣交配繁殖。雌性蜉蝣的位置通过增加速度来更新, 位置更新:
y
i
t
+
1
=
y
i
t
+
v
i
t
+
1
(5)
y_i^{t+1}=y_i^t+v_i^{t+1}\tag{5}
yit+1=yit+vit+1(5)
最好的雌性吸引最优秀的雄性, 次优的雌性吸引次优的雄性,速 度更新:
ν
i
t
+
1
=
ν
i
t
+
α
2
e
−
β
r
m
f
2
(
x
i
j
t
−
y
i
j
t
)
,
f
(
y
i
)
>
f
(
x
i
)
ν
i
t
+
1
=
ν
i
t
+
f
1
r
,
f
(
y
i
)
≤
f
(
x
i
)
(6)
\begin{aligned}&\boldsymbol{\nu}_i^{t+1}=\boldsymbol{\nu}_i^t+\alpha_2\mathrm{e}^{-\beta r_{mf}^2}(\boldsymbol{x}_{ij}^t-\boldsymbol{y}_{ij}^t)\text{,}f(\boldsymbol{y}_i)>f(\boldsymbol{x}_i)\\&\boldsymbol{\nu}_i^{t+1}=\boldsymbol{\nu}_i^t+f_1\boldsymbol{r},f(\boldsymbol{y}_i)\leq f(\boldsymbol{x}_i)\end{aligned}\tag{6}
νit+1=νit+α2e−βrmf2(xijt−yijt),f(yi)>f(xi)νit+1=νit+f1r,f(yi)≤f(xi)(6)
其中,a2为吸引力常数,rmf为雌性蜉蝣距离。
蜉蝣交配
雄性蜉蝣根据适应度函数选择雌性蜉蝣进行交配:
o
f
f
1
=
L
m
a
l
e
+
(
1
−
L
)
f
e
m
a
l
e
o
f
f
2
=
L
f
e
m
a
l
e
+
(
1
−
L
)
m
a
l
e
(7)
\mathrm{off}_1 = Lm_{\mathrm{ale}} + (1 - L)f_{\mathrm{emale}}\\\mathrm{off}_2 = Lf_{\mathrm{emale}} + (1 - L) m_{\mathrm{ale}}\tag{7}
off1=Lmale+(1−L)femaleoff2=Lfemale+(1−L)male(7)
伪代码
3.结果展示
使用测试框架,测试MA性能 一键run.m
- 【智能算法】省时方便,智能算法统计指标——一键运行~
CEC2017-F1
4.参考文献
[1] Zervoudakis K, Tsafarakis S. A mayfly optimization algorithm[J]. Computers & Industrial Engineering, 2020, 145: 106559.