目录
- 1.背景
- 2.算法原理
- 2.1算法思想
- 2.2算法过程
- 3.结果展示
- 4.参考文献
1.背景
2022年,Wang等人受到自然界孔雀社会行为启发,提出了孔雀优化算法(Peafowl Optimization Algorithm,POA)。
2.算法原理
2.1算法思想
POA通过雄孔雀求偶、雌孔雀自适应接近雄孔雀、幼孔雀自适应搜索食物源和雄孔雀交互4种寻优机制完成迭代更新,以逐渐逼近问题最优解。
2.2算法过程
所有孔雀根据其适应度值的排序进行角色分配,具有最高适合度值的前5只为雄孔雀,剩下的前30%为雌孔雀,其余为幼孔雀。
雄孔雀求偶
雄孔雀的位置更新机制:
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
)
,
o
t
h
e
r
w
i
s
e
(1)
\begin{aligned}&\boldsymbol{x}_{{_{{\mathrm{c,1}}}}}=\boldsymbol{x}_{{_{{\mathrm{c,1}}}}}(t)+R_{{_{{\mathrm{s}}}}}\frac{\boldsymbol{x}_{{_{{\mathrm{r,1}}}}}}{\parallel\boldsymbol{x}_{{_{{\mathrm{r,1}}}}}\parallel}\\&\boldsymbol{x}_{{_{{\mathrm{c,n}}}}}=\begin{cases}\boldsymbol{x}_{{_{{\mathrm{c,N}}}}}(t)+\sigma R_{{_{{\mathrm{s}}}}}\frac{\boldsymbol{x}_{{_{{\mathrm{r,N}}}}}}{\parallel\boldsymbol{x}_{{_{{\mathrm{r,N}}}}}\parallel},&r_{N}<\varepsilon\\\\\boldsymbol{x}_{{_{{\mathrm{c,N}}}}}(t),&otherwise&&\end{cases}\end{aligned}\tag{1}
xc,1=xc,1(t)+Rs∥xr,1∥xr,1xc,n=⎩
⎨
⎧xc,N(t)+σRs∥xr,N∥xr,N,xc,N(t),rN<εotherwise(1)
其中,σ和ε为决定雄孔雀位置更新算子,Rs为雄孔雀围绕食物源旋转的半径:
x
r
=
2
r
a
n
d
(
1
,
D
i
m
)
−
1
R
s
(
t
)
=
R
s
0
−
(
R
s
0
−
0
)
(
k
/
k
m
a
x
)
0.01
R
s
0
=
C
v
(
x
u
b
−
x
l
b
)
(2)
\begin{aligned}&\boldsymbol{x}_{\mathrm{r}}=2\mathrm{rand}(1,\mathrm{Dim})-1\\&R_{\mathrm{s}}(t)=R_{\mathrm{s}0}-(R_{\mathrm{s}0}-0)(k/k_{\mathrm{max}})^{0.01}\\&R_{\mathrm{s}0}=C_{\mathrm{v}}(x_{\mathrm{ub}}-x_{\mathrm{lb}})\end{aligned}\tag{2}
xr=2rand(1,Dim)−1Rs(t)=Rs0−(Rs0−0)(k/kmax)0.01Rs0=Cv(xub−xlb)(2)
其中,Rs0为初始旋转半径,Cv为雄孔雀旋转因子。适应度值较高的雄孔雀更有可能围绕食物源旋转,且旋转的半径较小,因此更容易接近局部最优解。这表明,雄孔雀位置所代表的决策变量解与适应度值正相关,与绕圈半径呈负相关关系。
雌孔雀自适应接近雄孔雀
位置更新:
x
h
=
x
h
(
t
)
+
3
θ
(
x
c
,
N
−
x
h
(
t
)
)
,
r
5
∈
A
(3)
\boldsymbol{x}_{\mathrm{h}}=\boldsymbol{x}_{\mathrm{h}}(t)+3\theta(\boldsymbol{x}_{\mathrm{c},N}-\boldsymbol{x}_{\mathrm{h}}(t)),\quad r_{5}\in A\tag{3}
xh=xh(t)+3θ(xc,N−xh(t)),r5∈A(3)
θ为平衡雌孔雀局部探索和全局搜索算子:
θ
=
θ
0
+
(
θ
1
−
θ
0
)
k
/
k
max
(4)
\theta=\theta_{0}+(\theta_{1}-\theta_{0})k/k_{\max}\tag{4}
θ=θ0+(θ1−θ0)k/kmax(4)
当θ<1/3时(迭代初期),雌孔雀趋向于所选择的雄孔雀,进行局部勘测;当θ>1/3
(迭代中后期),雌孔雀倾于向所选雄孔雀相对的位置移动,进行全局搜索。
幼孔雀自适应搜索食物源
幼孔雀向雄孔雀移动的同时借助Levy飞行在搜索空间进行随机搜索:
x
c
u
=
x
c
u
(
t
)
+
α
L
e
v
y
(
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
(5)
\begin{aligned}\boldsymbol{x}_{\mathrm{cu}}&=\boldsymbol{x}_{\mathrm{cu}}(t)+\alpha\mathrm{Levy}(\boldsymbol{x}_{\mathrm{c,1}}(t)-\boldsymbol{x}_{\mathrm{cu}}(t))+\beta(\boldsymbol{x}_{\mathrm{pu}}(t)-\boldsymbol{x}_{\mathrm{cu}}(t))\\\boldsymbol{x}_{\mathrm{pu}}&=\boldsymbol{x}_{\mathrm{c,N}}(t),\quad r_{6}\in B\end{aligned}\tag{5}
xcuxpu=xcu(t)+αLevy(xc,1(t)−xcu(t))+β(xpu(t)−xcu(t))=xc,N(t),r6∈B(5)
xcu和xpu分别为幼孔雀位置和幼孔雀跟随的雄孔雀位置,α和β 为随迭代次数动态变化的算
子:
α
=
α
0
(
α
0
−
α
1
)
(
k
/
k
max
)
2
β
=
β
0
+
(
β
1
−
β
0
)
(
k
/
k
max
)
0.5
(6)
\begin{aligned}\alpha&=\alpha_{0}(\alpha_{0}-\alpha_{1})(k/k_{\max})^{2}\\\beta&=\beta_{0}+(\beta_{1}-\beta_{0})(k/k_{\max})^{0.5}\end{aligned}\tag{6}
αβ=α0(α0−α1)(k/kmax)2=β0+(β1−β0)(k/kmax)0.5(6)
当α>β时(迭代初期),幼孔雀主要进行随机搜索;当β>α时(迭代中后期),幼孔雀逐渐向5只雄孔雀收敛。
雄孔雀交互行为
拥有最佳食物源的第1只雄孔雀被视为领导者,第2-4只雄孔雀逐渐向第1只雄孔雀移动:
x
c
,
N
=
x
c
,
N
(
t
)
+
θ
d
N
+
r
N
′
D
N
∥
D
N
∥
d
N
=
x
c
,
1
−
x
c
,
N
D
N
=
x
r
,
N
′
−
x
r
,
N
′
d
N
d
N
d
N
d
N
(7)
\begin{aligned}&\boldsymbol{x}_{\mathrm{c},N}=\boldsymbol{x}_{\mathrm{c},N}(t)+\theta\boldsymbol{d}_N+r_N^{\prime}\frac{\boldsymbol{D}_N}{\parallel\boldsymbol{D}_N\parallel}\\&\boldsymbol{d}_N=\boldsymbol{x}_{\mathrm{c},1}-\boldsymbol{x}_{\mathrm{c},N}\\&\boldsymbol{D}_N=\boldsymbol{x}_{\mathrm{r},N}^{\prime}-\frac{\boldsymbol{x}_{\mathrm{r},N}^{\prime}\boldsymbol{d}_N}{\boldsymbol{d}_N\boldsymbol{d}_N}\boldsymbol{d}_N\end{aligned}\tag{7}
xc,N=xc,N(t)+θdN+rN′∥DN∥DNdN=xc,1−xc,NDN=xr,N′−dNdNxr,N′dNdN(7)
其中,x′r,N为随机向量。
伪代码
3.结果展示
4.参考文献
[1] Wang J, Yang B, Chen Y, et al. Novel phasianidae inspired peafowl (Pavo muticus/cristatus) optimization algorithm: Design, evaluation, and SOFC models parameter estimation[J]. Sustainable Energy Technologies and Assessments, 2022, 50: 101825.