目录
- 1.算法原理
- 2.改进点
- 3.结果展示
- 4.参考文献
- 5.代码获取
1.算法原理
【智能算法】黑猩猩优化算法(ChOA)原理及实现
2.改进点
改进的 Sine 混沌映射初始化种群
ChoA 种群随机初始化的方法导致种群多样性、均匀性差、容易出现边界聚集现象, 而混沌映射可以有效的改善上述问题。引入 Chebyshev 映射将 Sine 映射进行改进:
P ( t ) = μ ∗ sin ( π X ( t − 1 ) ) + λ cos ( i ∗ cos − 1 ( X ( t − 1 ) ) ) { W ( t ) = μ sin ( π W ( t − 1 ) ) + λ cos ( t ∗ cos − 1 ( W ( t − 1 ) ) O ( t ) = μ sin ( π O ( t − 1 ) ) + λ cos ( t ∗ cos − 1 ( O ( t − 1 ) ) E ( t ) = μ sin ( π E ( t − 1 ) ) + λ cos ( t ∗ cos − 1 ( E ( t − 1 ) ) H ( t ) = μ sin ( π H ( t − 1 ) ) + λ cos ( t ∗ cos − 1 ( H ( t − 1 ) ) X ( t ) = m o d ( W ( t ) + O ( t ) + E ( t ) + H ( t ) , 1 ) (1) P\left(t\right)=\mu^*\sin(\pi X\left(t-1\right))+\lambda\cos(i^*\cos^{-1}(X\left(t-1\right)))\\\begin{cases}W\left(t\right)=\mu\sin(\pi W\left(t-1\right))+\lambda\cos(t^*\cos^{-1}(W\left(t-1\right))\\O\left(t\right)=\mu\sin(\pi O\left(t-1\right))+\lambda\cos(t^*\cos^{-1}(O\left(t-1\right))\\E\left(t\right)=\mu\sin(\pi E\left(t-1\right))+\lambda\cos(t^*\cos^{-1}(E\left(t-1\right))\\H\left(t\right)=\mu\sin(\pi H\left(t-1\right))+\lambda\cos(t^*\cos^{-1}(H\left(t-1\right))\\X\left(t\right)=\mathrm{mod}\left(W\left(t\right)+O\left(t\right)+E\left(t\right)+H\left(t\right),1\right)\end{cases}\tag{1} P(t)=μ∗sin(πX(t−1))+λcos(i∗cos−1(X(t−1)))⎩ ⎨ ⎧W(t)=μsin(πW(t−1))+λcos(t∗cos−1(W(t−1))O(t)=μsin(πO(t−1))+λcos(t∗cos−1(O(t−1))E(t)=μsin(πE(t−1))+λcos(t∗cos−1(E(t−1))H(t)=μsin(πH(t−1))+λcos(t∗cos−1(H(t−1))X(t)=mod(W(t)+O(t)+E(t)+H(t),1)(1)
PSO 思想和非线性收敛因子
为调节 ChoA 算法前期、后期的全局、局部搜索能力的平衡,引进粒子群思想改进 ChoA 算法个体位置迭代方式,实现黑猩猩个体与种群之间的信息交流。位置更新公式:
X ( t + 1 ) = C ∗ ( r a n d ∗ w ∗ ( X 1 + X 2 + X 3 + X 4 ) + r a n d ∗ ( X 1 − X ( t ) ) ) (2) X\left(t+1\right)=C*\Big(rand*w*\Big(X_{1}+X_{2}+X_{3}+X_{4}\Big)+rand*\Big(X_{1}-X\big(t\big)\big)\Big)\tag{2} X(t+1)=C∗(rand∗w∗(X1+X2+X3+X4)+rand∗(X1−X(t)))(2)
式中 w 为惯性权重系数, C 为加速因子。惯性权重 w、加速因子 C 取值关系到粒子过去的运动状态对现在运动状态的影响,当 w、 C 变大时,粒子的搜索空间会扩大,当 w、 C 变小时,粒子运动方向多变,会导致算法陷入局部最优状态。通过调节 w、 C 的值来平衡算法局部搜索、全局搜索的能力,提高算法的收敛速度。参数C:
C = g ∗ e − 0.1 t t max ∗ cos ( 0.1 t + 24.5 ) + 1.1 (3) C=g*\frac{e^{-0.1\sqrt{t}}}{t_{\max}}*\cos\left(0.1t+24.5\right)+1.1\tag{3} C=g∗tmaxe−0.1t∗cos(0.1t+24.5)+1.1(3)
非线性惯性权重因子:
w = 0.5 ∗ ( w max − t ∗ ( w max − w min ) t max ∗ cos 2 ( 0.5 ∗ t ) ) (4) w=0.5*\Bigg(w_{\max}-\frac{t*(w_{\max}-w_{\min})}{t_{\max}}*\cos^2(0.5*t)\Bigg)\tag{4} w=0.5∗(wmax−tmaxt∗(wmax−wmin)∗cos2(0.5∗t))(4)
改进的麻雀精英变异和 Bernoulli 混沌映射
在 ChoA 算法中,个体更新会受到每次迭代中最后一个最优个体影响,因此在迭代过程中 ChoA算法容易收敛到局部最优。针对上述问题,提出自适应水波因子改进的麻雀精英突变和 Bernoulli 混沌映射相结合的优化策略。
用麻雀精英突变将具有较高搜索性能个体的能力赋予当前最优个体。在每次 ChoA 迭代时,对当前适应度值前 40%的个体赋予较强的化能力,同时在突变个体更新公式中加入自适应水波因子:
X ( t + 1 ) 0.4 = { X ( t ) 0.4 ⋅ v ⋅ exp ( − t α ⋅ t max ) R < S T X ( t ) 0.4 + v ⋅ Q ⋅ L (5) X\left(t+1\right)_{0.4}=\begin{cases}X(t)_{0.4}\cdot v\cdot\exp(-\frac{t}{\alpha\cdot t_{\max}}) R<ST\\\\X(t)_{0.4}+v\cdot Q\cdot L\end{cases}\tag{5} X(t+1)0.4=⎩ ⎨ ⎧X(t)0.4⋅v⋅exp(−α⋅tmaxt)R<STX(t)0.4+v⋅Q⋅L(5)
自适应水波因子:
ν = 1 − sin ( π ⋅ t 2 ⋅ t max + 2 ⋅ π ) (6) \nu=1-\sin\left(\frac{\pi\cdot t}{2\cdot t_{\max}}+2\cdot\pi\right)\tag{6} ν=1−sin(2⋅tmaxπ⋅t+2⋅π)(6)
Bernoulli 混沌映射:
Z t + 1 = { Z t / ( 1 − λ ) Z t ∈ ( 0 , 1 − λ ] ( Z t − 1 + λ ) / λ Z t ∈ ( 0 , 1 − λ ] (7) Z_{t+1}=\begin{cases}Z_t /\left(1-\lambda\right)&Z_t\in\left(0,1-\lambda\right]\\\left(Z_t-1+\lambda\right)/\lambda&Z_t\in\left(0,1-\lambda\right]\end{cases}\tag{7} Zt+1={Zt/(1−λ)(Zt−1+λ)/λZt∈(0,1−λ]Zt∈(0,1−λ](7)
比较个体适应度值 f 与平均适应度值 favg,若 f<favg 时,进行 Brenoylli 扰动,判断扰动后个体是否优于原个体,优于则进行更新,否则保持原个体不变;若 f>favg 时,进行麻雀精英变异,优于原个体进行替换,否则保持。
3.结果展示
工程应用
4.参考文献
[1] 张福兴,高腾,吴泓达.多策略融合的改进黑猩猩搜索算法及其应用[J/OL].北京航空航天大学学报,1-15[2024-08-01].