智能优化算法:孔雀优化算法
摘要:孔雀优化算法( Peafowl Optimization Algorithm, POA), 是由 Jingbo Wang 等于2022 年提出的一种群体智能优化算法。其灵感来源于孔雀的群体行为。
1.孔雀优化算法
POA 通过雄孔雀求偶、雌孔雀自适应接近雄孔雀、幼孔雀自适应搜索食物源和雄孔雀交互 4 种寻优机制完成迭代更新,以逐渐逼近问题最优解 . 过程中,所有孔雀根据其适应度值的排序进行角色分配,具有最高适合度值的前 5 只为雄孔雀,剩下的前30% 为雌孔雀,其余为幼孔雀 。
1.1 雄孔雀求偶
雄孔雀求偶. 雄孔雀的位置更新机制可描述为
x
c
,
1
=
x
c
,
1
(
t
)
+
R
s
x
r
,
1
∥
x
r
,
1
∥
x
c
,
n
=
{
x
c
,
N
(
t
)
+
σ
R
s
x
r
,
N
∥
x
r
,
N
∥
,
若
r
N
<
ε
x
c
,
N
(
t
)
,
否则
}
\begin{aligned} \boldsymbol{x}_{\mathrm{c}, 1} &=\boldsymbol{x}_{\mathrm{c}, 1}(t)+R_{\mathrm{s}} \frac{\boldsymbol{x}_{\mathrm{r}, 1}}{\left\|\boldsymbol{x}_{\mathrm{r}, 1}\right\|} \\ \boldsymbol{x}_{\mathrm{c}, n} &=\left\{\begin{array}{ll} \boldsymbol{x}_{\mathrm{c}, \mathrm{N}}(t)+\sigma R_{\mathrm{s}} \frac{\boldsymbol{x}_{\mathrm{r}, \mathrm{N}}}{\left\|\boldsymbol{x}_{\mathrm{r}, \mathrm{N}}\right\|}, & \text { 若 } r_{\mathrm{N}}<\varepsilon \\ \boldsymbol{x}_{\mathrm{c}, \mathrm{N}}(t), & \text { 否则 } \end{array}\right\} \end{aligned}
xc,1xc,n=xc,1(t)+Rs∥xr,1∥xr,1={xc,N(t)+σRs∥xr,N∥xr,N,xc,N(t), 若 rN<ε 否则 }
式中:
x
c
,
1
\boldsymbol{x}_{\mathrm{c}, 1}
xc,1 和
x
c
,
N
\boldsymbol{x}_{\mathrm{c}, \mathrm{N}}
xc,N 分别为第 1 只和第
N
N
N 只雄孔雀的 位置,
N
=
2
,
3
,
4
,
5
;
σ
N=2,3,4,5 ; \sigma
N=2,3,4,5;σ 和
ε
\varepsilon
ε 为决定雄孔雀位置更新 的算子, 当
N
=
2
,
3
,
4
,
5
N=2,3,4,5
N=2,3,4,5 时,
σ
=
1.5
,
2
,
3
,
5
\sigma=1.5,2,3,5
σ=1.5,2,3,5 且
ε
=
0.9
,
0.8
,
0.6
,
0.3
;
r
N
\varepsilon=0.9,0.8,0.6,0.3 ; r_{\mathrm{N}}
ε=0.9,0.8,0.6,0.3;rN 为随机生成的实数;
x
r
,
1
\boldsymbol{x}_{\mathrm{r}, 1}
xr,1 和
x
r
,
N
\boldsymbol{x}_{\mathrm{r}, \mathrm{N}}
xr,N 为一组随机向量;
R
s
R_{\mathrm{s}}
Rs 为雄孔雀围绕食物源旋转 的半径, 有
x
r
=
2
rand
(
1
,
Dim
)
−
1
R
s
(
t
)
=
R
s
0
−
(
R
s
0
−
0
)
(
k
/
k
max
)
0.01
R
s
0
=
C
v
(
x
u
b
−
x
l
b
)
}
\left.\begin{array}{l} \boldsymbol{x}_{\mathrm{r}}=2 \operatorname{rand}(1, \operatorname{Dim})-1 \\ R_{\mathrm{s}}(t)=R_{\mathrm{s} 0}-\left(R_{\mathrm{s} 0}-0\right)\left(k / k_{\max }\right)^{0.01} \\ R_{\mathrm{s} 0}=C_{\mathrm{v}}\left(x_{\mathrm{ub}}-x_{\mathrm{lb}}\right) \end{array}\right\}
xr=2rand(1,Dim)−1Rs(t)=Rs0−(Rs0−0)(k/kmax)0.01Rs0=Cv(xub−xlb)⎭
⎬
⎫
式中: Dim 为决策变量的数量; 0 表示孔雀绕圈旋转 的圆心;
k
k
k 和
k
max
k_{\text {max }}
kmax 分别为当前迭代次数和最大迭代 次数;
R
s
0
R_{\mathrm{s} 0}
Rs0 为初始旋转半径;
C
v
C_{\mathrm{v}}
Cv 为雄孔雀旋转因子,设为
0.2
;
x
u
b
0.2 ; x_{\mathrm{ub}}
0.2;xub 和
x
l
b
x_{\mathrm{lb}}
xlb 为决策变量的上下限。
在该机制下, 适应度值越高的雄孔雀围绕食物 源旋转的概率越大, 且绕圈半径越小, 因此更趋近于 局部最优解. 可见, 雄孔雀位置代表的决策变量解趋 近最优解的能力与其适应度值成正相关, 与绕圈半 径成负相关。
1.2 雌孔雀自适应接近雄孔雀
雌孔雀自适应接近雄孔雀. 其位置更新机制为
x h = x h ( t ) + 3 θ ( x c , N − x h ( t ) ) , \boldsymbol{x}_{\mathrm{h}}=\boldsymbol{x}_{\mathrm{h}}(t)+3 \theta\left(\boldsymbol{x}_{\mathrm{c}, \mathrm{N}}-\boldsymbol{x}_{\mathrm{h}}(t)\right), \quad xh=xh(t)+3θ(xc,N−xh(t)),
若
r
5
∈
A
r_5 \in A \quad
r5∈A (28) 式中:
x
h
\boldsymbol{x}_{\mathrm{h}}
xh 为雌孔雀的位置;
r
5
r_5
r5 为
[
0
,
1
]
[0,1]
[0,1] 范围内的随 机数;
A
A
A 为决定雌孔雀位置更新的算子, 当
N
=
1
N=1
N=1,
2
,
3
,
4
,
5
2,3,4,5
2,3,4,5 时,
A
A
A 分别为
[
0.6
,
1
)
、
[
0.4
,
0.6
)
、
[
0.2
[0.6,1) 、[0.4,0.6) 、[0.2
[0.6,1)、[0.4,0.6)、[0.2,
0.4
)
、
[
0.1
,
0.2
)
、
[
0
,
0.1
)
0.4) 、[0.1,0.2) 、[0,0.1)
0.4)、[0.1,0.2)、[0,0.1);
θ
\theta
θ 为平衡雌孔雀局部探 索和全局搜索的算子, 有
θ
=
θ
0
+
(
θ
1
−
θ
0
)
k
/
k
max
\theta=\theta_0+\left(\theta_1-\theta_0\right) k / k_{\max }
θ=θ0+(θ1−θ0)k/kmax
式中:
θ
0
=
0.1
、
θ
1
=
1
\theta_0=0.1 、 \theta_1=1
θ0=0.1、θ1=1.
在该机制下, 当
θ
<
1
/
3
\theta<1 / 3
θ<1/3 时 (迭代初期), 雌孔雀 趋向于所选择的雄孔雀, 进行局部勘测; 当
θ
>
1
/
3
\theta>1 / 3
θ>1/3 时 (迭代中后期), 雌孔雀倾于向所选雄孔雀相对的 位置移动, 进行全局搜索. 因此, 较小的
θ
\theta
θ 值有利于 雌孔雀在局部勘测过程中寻找高质量的决策变量 解; 较大的
θ
\theta
θ 值有利于增强算法的随机性和全局搜 索能力, 避免陷人局部最优.
1.3 幼孔雀自适应搜索食物源
幼孔雀自适应搜索食物源. 幼孔雀向雄孔雀移 动的同时借助 Levy 飞行机制在搜索空间进行随机搜索:
x
c
u
=
x
c
u
(
t
)
+
α
Levy
(
x
c
,
1
(
t
)
−
x
c
u
(
t
)
)
+
β
(
x
p
u
(
t
)
−
x
c
u
(
t
)
)
x
p
u
=
x
c
,
N
(
t
)
,
r
6
∈
B
}
\left.\begin{array}{rl} \boldsymbol{x}_{\mathrm{cu}}= & \boldsymbol{x}_{\mathrm{cu}}(t)+\alpha \operatorname{Levy}\left(\boldsymbol{x}_{\mathrm{c}, 1}(t)-\boldsymbol{x}_{\mathrm{cu}}(t)\right)+ \\ & \beta\left(\boldsymbol{x}_{\mathrm{pu}}(t)-\boldsymbol{x}_{\mathrm{cu}}(t)\right) \\ \boldsymbol{x}_{\mathrm{pu}}= & \boldsymbol{x}_{\mathrm{c}, N}(t), \quad r_6 \in B \end{array}\right\}
xcu=xpu=xcu(t)+αLevy(xc,1(t)−xcu(t))+β(xpu(t)−xcu(t))xc,N(t),r6∈B⎭
⎬
⎫
式中:
x
c
u
x_{\mathrm{cu}}
xcu 和
x
p
u
x_{\mathrm{pu}}
xpu 分别为幼孔雀位置和幼孔雀跟随的 雄孔雀位置;
r
6
r_6
r6 为
[
0
,
1
]
[0,1]
[0,1] 范围内的随机数;
B
B
B 为决定 幼孔雀位置更新的算子, 当
N
=
1
,
2
,
3
,
4
,
5
N=1,2,3,4,5
N=1,2,3,4,5 时,
B
B
B
分别为
[
0.8
,
1
)
、
[
0.6
,
0.8
)
、
[
0.4
,
0.6
)
、
[
0.2
[0.8,1) 、[0.6,0.8) 、[0.4,0.6) 、[0.2
[0.8,1)、[0.6,0.8)、[0.4,0.6)、[0.2,
0.4
)
、
[
0
,
0.2
)
;
α
0.4) 、[0,0.2) ; \alpha
0.4)、[0,0.2);α 和
β
\beta
β 为随迭代次数动态变化的算 子, 有
α
=
α
0
(
α
0
−
α
1
)
(
k
/
k
max
)
2
β
=
β
0
+
(
β
1
−
β
0
)
(
k
/
k
max
)
0.5
}
\left.\begin{array}{l} \alpha=\alpha_0\left(\alpha_0-\alpha_1\right)\left(k / k_{\max }\right)^2 \\ \beta=\beta_0+\left(\beta_1-\beta_0\right)\left(k / k_{\max }\right)^{0.5} \end{array}\right\}
α=α0(α0−α1)(k/kmax)2β=β0+(β1−β0)(k/kmax)0.5}
式中 :
α
0
=
0.9
、
α
1
=
0.4
、
β
0
=
0.1
、
β
1
=
1
\alpha_0=0.9 、 \alpha_1=0.4 、 \beta_0=0.1 、 \beta_1=1
α0=0.9、α1=0.4、β0=0.1、β1=1.
在该机制下,当
α
>
β
\alpha>\beta
α>β 时 (迭代初期), 幼孔雀主 要进行随机搜索; 当
β
>
α
\beta>\alpha
β>α 时 (迭代中后期), 幼孔雀 逐渐向 5 只雄孔雀收玫. 可见,
α
\alpha
α 和
β
\beta
β 共同指导幼孔 雀的位置更新, 引导劣势解向最优解移动, 并加快收敛速度.
1.4 雄孔雀交互行为
雄孔雀交互行为. 拥有最佳食物源的第 1 只雄孔雀被视为领导者, 第
2
∼
4
2 \sim 4
2∼4 只雄孔雀逐渐向第 1 只雄孔雀移动:
x
c
,
N
=
x
c
,
N
(
t
)
+
θ
d
N
+
r
N
′
D
N
∥
D
N
∥
\boldsymbol{x}_{\mathrm{c}, \mathrm{N}}=\boldsymbol{x}_{\mathrm{c}, \mathrm{N}}(t)+\theta \boldsymbol{d}_{\mathrm{N}}+r_N^{\prime} \frac{\boldsymbol{D}_{\mathrm{N}}}{\left\|\boldsymbol{D}_{\mathrm{N}}\right\|}
xc,N=xc,N(t)+θdN+rN′∥DN∥DN
式中:
d
N
=
x
c
,
1
−
x
c
,
N
D
N
=
x
r
,
N
′
−
x
r
,
N
′
d
N
d
N
d
N
d
N
\begin{aligned} &\boldsymbol{d}_{\mathrm{N}}=\boldsymbol{x}_{\mathrm{c}, 1}-\boldsymbol{x}_{\mathrm{c}, \mathrm{N}} \\ &\boldsymbol{D}_{\mathrm{N}}=\boldsymbol{x}_{\mathrm{r}, \mathrm{N}}^{\prime}-\frac{\boldsymbol{x}_{\mathrm{r}, \mathrm{N}}^{\prime} \boldsymbol{d}_{\mathrm{N}}}{\boldsymbol{d}_{\mathrm{N}} \boldsymbol{d}_{\mathrm{N}}} \boldsymbol{d}_{\mathrm{N}} \end{aligned}
dN=xc,1−xc,NDN=xr,N′−dNdNxr,N′dNdN
r
n
′
r_n^{\prime}
rn′ 为
[
0
,
1
]
[0,1]
[0,1] 范围内的随机数;
x
r
,
N
′
\boldsymbol{x}_{\mathrm{r}, \mathrm{N}}^{\prime}
xr,N′ 为随机向量。
3.实验结果
4.参考文献
[1] Jingbo Wang, Bo Yang, Yijun Chen, Kaidi Zeng, Hao Zhang, Hongchun Shu, Yingtong Chen.Novel phasianidae inspired peafowl (Pavo muticus/cristatus) optimization algorithm: Design,evaluation, and SOFC models parameter estimation.Sustainable Energy Technologies and Assessments 2021,50:101825. https://doi.org/10.1016/j.seta.2021.101825