【智能算法】冠豪猪优化算法(CPO)原理及实现


1.背景

2024年,M Abdel-Basset等人受到冠豪猪防御行为启发,提出了冠豪猪优化算法(Crested Porcupine Optimizer, CPO)。

在这里插入图片描述
在这里插入图片描述

2.算法原理

2.1算法思想

CPO使用四种不同的保护机制:视觉、声音、气味和物理攻击。第一和第二防御策略(视觉和声音)反映了CPO的探索行为,而第三和第四防御策略(气味和物理攻击)反映了CPO的开发行为。

在这里插入图片描述

2.2算法过程

CPO提出一种新的方法:循环种群减少技术(CPR),以保持种群的多样性,同时加快收敛速度。这一策略模拟了并非所有CPs都激活防御机制,而只有那些受到威胁的CPs才会激活防御机制。在优化过程中,该方法从种群中取出一些CPs,以加快收敛速度,并将它们重新回到种群中,以提高多样性,避免陷入局部极小值:
N = N m i n + ( N ′ − N m i n ) × ( 1 − ( t % T m a x T T m a x T ) ) (1) N=N_{min}+(N^{'}-N_{min})\times\left(1-\left(\frac{t \% \frac{T_{max}}{T}}{\frac{T_{max}}{T}}\right)\right)\tag{1} N=Nmin+(NNmin)×(1(TTmaxt%TTmax))(1)
其中,T为决定循环次数的变量,t为当前函数求值,Tmax为函数求值的最大次数,Nmin是新生成种群中最小的个体数。

探索阶段

根据CP的防御行为,当捕食者距离较远时,CP有两种防御策略,即视觉策略和声音策略。这些策略是指对不同区域进行调查,致力于全局探索:
x i t + 1 → = x i t → + τ 1 × ∣ 2 × τ 2 × x C P t → − y i t → ∣ (2) \overrightarrow{x_i^{t+1}}=\overrightarrow{x_i^t}+\tau_1\times\left|2\times\tau_2\times\overrightarrow{x_{CP}^t}-\overrightarrow{y_i^t}\right|\tag{2} xit+1 =xit +τ1× 2×τ2×xCPt yit (2)
其中,xcp为最佳CP位置,yt为当前CP与随机CP之间生成的向量:
y i t → = x i t → + x r t → 2 (3) \overrightarrow{y_i^t} = \frac{\overrightarrow{x_i^t} + \overrightarrow{x_r^t}}{2}\tag{3} yit =2xit +xrt (3)
CP使用声音方法制造噪音并威胁捕食者。当捕食者靠近时,CP的声音变得更大:
x i t + 1 → = ( 1 − U 1 → ) × x i t → + U 1 → × ( y → + τ 3 × ( x r 1 t → − x r 2 t → ) ) (4) \overrightarrow{x_i^{t+1}}=\left(1-\overrightarrow{U_1}\right)\times\overrightarrow{x_i^t}+\overrightarrow{U_1}\times\left(\overrightarrow{y}+\tau_3\times\left(\overrightarrow{x_{r1}^t}-\overrightarrow{x_{r2}^t}\right)\right)\tag{4} xit+1 =(1U1 )×xit +U1 ×(y +τ3×(xr1t xr2t ))(4)

开发阶段

根据CP的防御行为,当捕食者靠近时,CP有两种防御策略,即气味攻击策略和物理攻击策略。这些策略是指对有潜力的区域进行开发,致力于(局部)开发搜索。气味攻击阶段,CP会分泌一种恶臭,在周围区域传播,以防止捕食者接近它:
x i t + 1 ‾ = ( 1 − U 1 → ) × x i t → + U 1 → × ( x r 1 ′ → + S i ′ × ( x r 2 ′ → − x r 3 ′ → ) − τ 3 × δ → × γ t × S i ′ ) (5) \begin{aligned} \overline{{x_{i}^{t+1}}} =\left(1-\overrightarrow{U_{1}}\right)\times\overrightarrow{x_{i}^{t}}+\overrightarrow{U_{1}} \times\left(\overrightarrow{x_{r_{1}}^{\prime}}+S_{i}^{\prime}\times\left(\overrightarrow{x_{r_{2}}^{\prime}}-\overrightarrow{x_{r_{3}}^{\prime}}\right)-\tau_{3}\times\overrightarrow{\delta} \times\gamma_{t}\times S_{i}^{\prime}\right) \end{aligned}\tag{5} xit+1=(1U1 )×xit +U1 ×(xr1 +Si×(xr2 xr3 )τ3×δ ×γt×Si)(5)
其中,δ为控制搜索方向的参数,γt为防御因子,St为气味扩散因子:
δ → = { + 1 , i f r a n d → ≤ 0.5 − 1 , E l s e γ t = 2 × r a n d × ( 1 − t t m a x ) t t m a x S t i = exp ⁡ ( f ( x t i ) ∑ k = 1 N f ( x t k ) + ϵ ) (6) \left.\begin{aligned}&\overrightarrow{\delta}=\left\{\begin{array}{c}+1, if \overrightarrow{rand}\leq0.5\\-1, Else\end{array}\right.\\&\gamma_{t}=2 \times rand\times\left(1-\frac{t}{t_{max}}\right)^{\frac{t}{tmax}}\\&S_{t}^{i}=\exp\left(\frac{f\left(x_{t}^{i}\right)}{\sum_{k=1}^{N}f\left(x_{t}^{k}\right)+\epsilon}\right)\end{aligned}\right.\tag{6} δ ={+1,ifrand 0.51,Elseγt=2×rand×(1tmaxt)tmaxtSti=exp(k=1Nf(xtk)+ϵf(xti))(6)
物理攻击阶段,当捕食者离它很近时,CP会用短而厚的羽毛攻击它:
x i t + 1 → = x C P t → + ( α ( 1 − τ 4 ) + τ 4 ) × ( δ × x C P t → − x i t → ) − τ 5 × δ × γ t × F i t → (7) \overrightarrow{x_i^{t+1}}=\overrightarrow{x_{CP}^t}+(\alpha(1-\tau_4)+\tau_4)\times\left(\delta\times\overrightarrow{x_{CP}^t}-\overrightarrow{x_i^t}\right)-\tau_5\times\delta \times\gamma_t\times\overrightarrow{F_i^t}\tag{7} xit+1 =xCPt +(α(1τ4)+τ4)×(δ×xCPt xit )τ5×δ×γt×Fit (7)
其中,α为收敛速度因子。

伪代码

在这里插入图片描述

3.结果展示

使用测试框架,测试CPO性能 一键run.m

CEC2017-F20

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Abdel-Basset M, Mohamed R, Abouhawwash M. Crested Porcupine Optimizer: A new nature-inspired metaheuristic[J]. Knowledge-Based Systems, 2024, 284: 111257.

5.代码获取

  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小O的算法实验室

谢谢大佬的肯定!

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

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

打赏作者

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

抵扣说明:

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

余额充值