【智能算法】孔雀优化算法(POA)原理及实现

在这里插入图片描述


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)+Rsxr,1xr,1xc,n= xc,N(t)+σRsxr,Nxr,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(Rs00)(k/kmax)0.01Rs0=Cv(xubxlb)(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,Nxh(t)),r5A(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),r6B(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+rNDNDNdN=xc,1xc,NDN=xr,NdNdNxr,NdNdN(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.

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小O的算法实验室

谢谢大佬的肯定!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值