1.摘要
本文介绍一种新颖的方法来增强花朵授粉算法(FPA)的多样化和强化倾向,其采用分数阶(Fractional-Order, FO)微积分特征来增强基本FPA的局部搜索能力,并自适应修改FPA探索和开发之间的协调系数。
2.算法原理与背景
2.1 花朵授粉算法(FPA)
2.2 分数阶微积分定义
3.分数阶花朵授粉算法(FO-FPA)
FPA表现出良好的全局搜索能力,但由于局部搜索效率低下,导致收敛速度急剧下降。为了解决这一限制,FO-FPA将分数阶(FO)微积分嵌入到基本的FPA中,以利用FO微积分对前期解决方案的记忆特性,保证在开发阶段解决方案之间的信息共享。当α = 1时更新公式为:
D
1
[
Z
(
t
+
1
)
]
=
Z
i
t
+
1
−
Z
i
t
=
ϵ
(
Z
j
t
−
Z
k
t
)
D^1[Z(t+1)]=Z_i^{t+1}-Z_i^t=\epsilon\left(Z_j^t-Z_k^t\right)
D1[Z(t+1)]=Zit+1−Zit=ϵ(Zjt−Zkt)
基于分数阶GL定义:
D
α
[
Z
i
t
+
1
−
Z
i
t
]
=
ϵ
(
Z
j
t
−
Z
k
t
)
D^{\alpha}\left[Z_{i}^{t+1}-Z_i^t\right]=\epsilon\left(Z_{j}^{t}-Z_{k}^{t}\right)
Dα[Zit+1−Zit]=ϵ(Zjt−Zkt)
因此,FO-FPA位置更新为:
Z
i
t
+
1
=
−
∑
n
=
1
r
(
−
1
)
n
Γ
(
α
+
1
)
Z
i
t
+
1
−
n
Γ
(
n
+
1
)
Γ
(
α
−
n
+
1
)
+
ϵ
(
Z
j
t
−
Z
k
t
)
Z_i^{t+1}=-\sum_{n=1}^r\frac{(-1)^n\Gamma(\alpha+1)Z_i^{t+1-n}}{\Gamma(n+1)\Gamma(\alpha-n+1)}+\epsilon\left(Z_j^t-Z_k^t\right)
Zit+1=−n=1∑rΓ(n+1)Γ(α−n+1)(−1)nΓ(α+1)Zit+1−n+ϵ(Zjt−Zkt)
考虑历史数据中导数阶为α的前四项(r = 4),FO-FPA更新:
Z
i
t
+
1
=
1
1
!
α
Z
i
t
+
1
2
!
α
(
1
−
α
)
Z
i
t
−
1
+
1
3
!
α
(
1
−
α
)
(
2
−
α
)
Z
i
t
−
2
+
1
4
!
α
(
1
−
α
)
(
2
−
α
)
(
3
−
α
)
Z
i
t
−
3
+
ϵ
(
Z
j
t
−
Z
k
t
)
\begin{aligned} &Z_{i}^{t+1}=\frac{1}{1!}\alpha Z_{i}^{t}+\frac{1}{2!}\alpha(1-\alpha)Z_{i}^{t-1}+\frac{1}{3!}\alpha(1-\alpha)(2-\alpha)Z_{i}^{t-2} \\ &+ \frac{1}{4!}\alpha(1-\alpha)(2-\alpha)(3-\alpha)Z_{i}^{t-3}+\epsilon \left(Z_{j}^{t}-Z_{k}^{t}\right) \end{aligned}
Zit+1=1!1αZit+2!1α(1−α)Zit−1+3!1α(1−α)(2−α)Zit−2+4!1α(1−α)(2−α)(3−α)Zit−3+ϵ(Zjt−Zkt)
对于历史数据的前8项,FO-FPA更新:
Z
i
t
+
1
=
1
1
!
α
Z
i
t
+
1
2
!
α
(
1
−
α
)
Z
i
t
−
1
+
1
3
!
α
(
1
−
α
)
(
2
−
α
)
Z
i
t
−
2
+
1
4
!
α
(
1
−
α
)
(
2
−
α
)
(
3
−
α
)
Z
i
t
−
3
+
1
5
!
α
(
1
−
α
)
(
2
−
α
)
(
3
−
α
)
(
4
−
α
)
Z
i
t
−
4
+
1
6
!
α
(
1
−
α
)
(
2
−
α
)
(
3
−
α
)
(
4
−
α
)
(
5
−
α
)
Z
i
t
−
5
+
1
7
!
α
(
1
−
α
)
(
2
−
α
)
(
3
−
α
)
(
4
−
α
)
(
5
−
α
)
(
6
−
α
)
Z
i
t
−
6
+
1
8
!
α
(
1
−
α
)
(
2
−
α
)
(
3
−
α
)
(
4
−
α
)
(
5
−
α
)
(
6
−
α
)
(
7
−
α
)
Z
i
t
−
7
+
ϵ
(
Z
j
t
−
Z
k
t
)
\begin{aligned} &Z_{i}^{t+1}=\frac{1}{1!}\alpha Z_{i}^{t}+\frac{1}{2!}\alpha(1-\alpha)Z_{i}^{t-1}+\frac{1}{3!}\alpha(1-\alpha)(2-\alpha)Z_{i}^{t-2}+ \\ &\frac1{4!}\alpha(1-\alpha)(2-\alpha)(3-\alpha)Z_{i}^{t-3} \\ &+\frac{1}{5!}\alpha(1-\alpha)(2-\alpha)(3-\alpha)(4-\alpha)Z_{i}^{t-4}+ \\ &\frac1{6!}\alpha(1-\alpha)(2-\alpha)(3-\alpha)(4-\alpha)(5-\alpha)Z_{i}^{t-5}+ \\ &\frac{1}{7!}\alpha(1-\alpha)(2-\alpha)(3-\alpha)(4-\alpha)(5-\alpha)(6-\alpha)Z_{i}^{t-6}+ \\ &\frac{1}{8!}\alpha(1-\alpha)(2-\alpha)(3-\alpha)(4-\alpha)(5-\alpha)(6-\alpha)(7-\alpha)Z_{i}^{t-7} \\ &+\epsilon\left(Z_{j}^{t}-Z_{k}^{t}\right) \end{aligned}
Zit+1=1!1αZit+2!1α(1−α)Zit−1+3!1α(1−α)(2−α)Zit−2+4!1α(1−α)(2−α)(3−α)Zit−3+5!1α(1−α)(2−α)(3−α)(4−α)Zit−4+6!1α(1−α)(2−α)(3−α)(4−α)(5−α)Zit−5+7!1α(1−α)(2−α)(3−α)(4−α)(5−α)(6−α)Zit−6+8!1α(1−α)(2−α)(3−α)(4−α)(5−α)(6−α)(7−α)Zit−7+ϵ(Zjt−Zkt)
分数阶微积分的开关概率因子S的自适应调整:
y
=
B
(
(
α
v
e
c
)
,
r
)
S
(
j
)
=
(
y
−
m
i
n
(
y
)
)
∗
(
b
−
a
)
(
m
a
x
(
y
)
−
m
i
n
(
y
)
)
+
a
\begin{aligned} &y=B((\alpha_{vec}),r) \\ &S(j)={\frac{(y-min(y))*(b-a)}{(max(y)-min(y))}}+a \end{aligned}
y=B((αvec),r)S(j)=(max(y)−min(y))(y−min(y))∗(b−a)+a
其中 B 是 β 函数,输入为导数阶次(α)的向量,从 0.1 到 1,步长为 0.1,项数 r 为 4、8 或 12。
流程图
伪代码
4.结果展示
CEC2005
PS:PC-FPA在多峰问题上表现较好🤣
5.参考文献
[1] Yousri D, Abd Elaziz M, Mirjalili S. Fractional-order calculus-based flower pollination algorithm with local search for global optimization and image segmentation[J]. Knowledge-Based Systems, 2020, 197: 105889.