当前位置: 首页 > article >正文

【智能算法改进】多策略融合的改进黑猩猩搜索算法及其应用

目录

    • 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(t1))+λcos(icos1(X(t1))) W(t)=μsin(πW(t1))+λcos(tcos1(W(t1))O(t)=μsin(πO(t1))+λcos(tcos1(O(t1))E(t)=μsin(πE(t1))+λcos(tcos1(E(t1))H(t)=μsin(πH(t1))+λcos(tcos1(H(t1))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(randw(X1+X2+X3+X4)+rand(X1X(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=gtmaxe0.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(wmaxtmaxt(wmaxwmin)cos2(0.5t))(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.4vexp(αtmaxt)R<STX(t)0.4+vQL(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} ν=1sin(2tmaxπ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λ)(Zt1+λ)/λZt(0,1λ]Zt(0,1λ](7)
比较个体适应度值 f 与平均适应度值 favg,若 f<favg 时,进行 Brenoylli 扰动,判断扰动后个体是否优于原个体,优于则进行更新,否则保持原个体不变;若 f>favg 时,进行麻雀精英变异,优于原个体进行替换,否则保持。

3.结果展示

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

工程应用

在这里插入图片描述

4.参考文献

[1] 张福兴,高腾,吴泓达.多策略融合的改进黑猩猩搜索算法及其应用[J/OL].北京航空航天大学学报,1-15[2024-08-01].

5.代码获取


http://www.kler.cn/a/283393.html

相关文章:

  • vue2.7.14 + vant + vue cli脚手架转vite启动运行问题记录
  • 使用Docker快速部署FastAPI Web应用
  • 鸿蒙next版开发:ArkTS组件点击事件详解
  • 【Golang】Channel的ring buffer实现
  • 时间管理的三个痛点
  • mongoDB的安装及使用
  • 备忘录模式 详解
  • 电脑强制退出程序快捷键
  • pytorch交叉熵损失函数
  • 效果媲美GPT4V的多模态大型语言模型MiniCPM-V-2_6详细介绍
  • 数据结构(邓俊辉)学习笔记】串 03——KMP算法:记忆法
  • python批量生成sql用于创建500个用户
  • 从数据库中查找单词
  • JAVA电子器件制造行业生产管理系统计算机毕设计算机毕业设计
  • 2024.8.30(使用docker部署project-exam-system)
  • 20.神经网络 - 搭建小实战和 Sequential 的使用
  • 自动化数据汇总:使用Python从多个数据源汇总数据
  • linux查找mysql日志
  • 艾体宝干货丨Redis与MongoDB的区别
  • 自动化通过cmd命令行并以特定账户连接到远程机器
  • 【香橙派系列教程】(二十一) 基于OrangePi Zero2的系统移植— 交叉编译工具链配置
  • 【C++ 面试 - 内存管理】每日 3 题(九)
  • 算法中常用的排序
  • 云计算实训37——Dockerfile的应用+私有仓库的创建与管理
  • 更改图片中的部分颜色及修改图片的背景色
  • 如何知道当前网卡连接的下位机的IP,通过工具实现