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

news2024/11/14 21:51:42

目录

    • 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.coloradmin.cn/o/2089949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

E30.【C语言】练习:sizeof和strlen的习题集(B)

Exercise 4:sizeof 字符串 求下列代码打印结果 #define CRT_NO_WARNINGNESS 1 #include <stdio.h> #include <string.h> int main() {char arr[] "abcdef";printf("%zd\n", sizeof(arr));printf("%zd\n", sizeof(arr 0));printf…

gitee 简单使用

目录 1. github 介绍 2. gitee 介绍 2.1 下载工具 2.2 创建仓库 2.3 clone 远程仓库到本地 2.4 上传代码 2.4.1 add:预添加到本地仓库 2.4.2 commit:提交代码到仓库 2.4.3 push:推送添加操作到远程仓库 3. 问题解决 3.1 文件推送成功&#xff0c;gitee没有绿点 3.2…

UR5e Gazebo仿真

一、环境准备 安装ROS Noetic 首先&#xff0c;确保你的Ubuntu 20.04系统已经安装了ROS Noetic。如果未安装&#xff0c;可以通过ROS的官方仓库进行安装。创建工作空间 创建一个新的ROS工作空间&#xff0c;用于存放UR5e相关的代码和配置文件。 bash复制代码 mkdir -p ~/ur5e…

Qt:玩转QPainter序列六(图形)

前言 继续看源码。 正文 剩下的大部分都是画各种图形的函数&#xff0c;它们一般都有多个重载版本&#xff0c;我就不一 一介绍使用了&#xff0c;只挑其中的一部分使用一下。 在 QPainter 类中&#xff0c;这些方法涉及到绘图的各种功能&#xff0c;主要用于设置视图变换、…

AI大模型日报#0830:智谱AI推出多款升级模型、阿里开源多模态Qwen2-VL

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE-4.0-8K-latest&#xff09;、“智谱AI”&#xff08;glm-4-0520&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅…

Vue前端开发必备工具——json-server模拟后端服务器

文章目录 1、简介2、安装3、快速使用(1)创建JSON文件&#xff1a;(2) 启动json-server(3) 使用API(4) 以其它端口号启动(5) 启动多个API 当我们用Vue开发前端时&#xff0c;如果想调用后端接口&#xff0c;又没有真实的后端接口服务器怎么办&#xff1f;答案是&#xff1a;可以…

数据结构(邓俊辉)学习笔记】串 05——KMP算法:理解next[]表

文章目录 1.快速移动2.避免回溯3.通配哨兵 1.快速移动 在接下来这节&#xff0c;就让我们从严格的意义上来理解 next 表的具体含义及其原理。 我们已经切实地看到&#xff0c; KMP 算法的优化效果首先体现在它可以使模式串得以快速地后移&#xff0c;而不是如蛮力算法那样只…

jmeter连接mysql数据库以及常规用法

1、在jmeter中新建一个测试计划&#xff0c;在测试计划界面中点击浏览&#xff0c;选择连接mysql数据库的jar包 如果没有jar包可以去网上下载&#xff0c;也可以通过如下链接进行下载 链接: https://pan.baidu.com/s/1BI6f19KSzXGlkSOwbnequw 提取码: gn8e 2、然后创建线程组&a…

CentOS7安装docker小记

首先你得需要有一个虚拟机&#xff0c;我的配置如图&#xff1a; 安装docker的工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 指定阿里云的仓库 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.re…

生信机器学习入门3 - Scikit-Learn训练机器学习分类感知器

1. 在线读取iris数据集 import os import pandas as pd# 下载 try:s https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.dataprint(From URL:, s)df pd.read_csv(s,headerNone,encodingutf-8)except HTTPError:s iris.data# 读取.data文件&#xff0c;…

使用python导出Excel表格中的lua配置

背景&#xff1a;游戏开发中&#xff0c; 策划使用Excel配置游戏中的参数数据&#xff0c;写一个工具用于导出这些配置 工具选择使用 python来开发&#xff0c;这样Windows、macOS、Linux平台都可以使用&#xff0c;而且有丰富的第三方模块。 本机先安装python&#xff0c;我…

nvidia-cuda-tensorrt-cudnn下载网站

tensorrt:https://developer.nvidia.com/tensorrt/download cudnn:https://developer.nvidia.com/rdp/cudnn-archive cuda:https://developer.nvidia.com/cuda-toolkit-archive

Python编码系列—Python微服务架构:构建可扩展的云原生应用

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

积极讨论取真经 自力更生辟新径 攻克难题会有时

你是如何克服编程学习中的挫折感的&#xff1f; 编程学习之路上&#xff0c;挫折感就像一道道难以逾越的高墙&#xff0c;让许多人望而却步。然而&#xff0c;真正的编程高手都曾在这条路上跌倒过、迷茫过&#xff0c;却最终找到了突破的方法。你是如何在Bug的迷宫中找到出口的…

火绒补充

目录 为什补充&#xff1f; 用户界面优化&#xff1a; 性能提升&#xff1a; 启发式检测和行为分析&#xff1a; 恶意网址拦截&#xff1a; 系统修复功能&#xff1a; 网络安全防护&#xff1a; 云查杀引擎&#xff1a; 漏洞修复和补丁管理&#xff1a; 隐私保护&…

C++类和对象(5)——运算符重载(以日期类为例)

运算符重载的作用 假设我们此时实现了日期类的运算符重载&#xff0c;我们就可以 实现如图的很多功能&#xff0c;完成日期计算器的底层代码。 运算符重载关键字 运算符重载的关键字是operator。 比如你想重载‘’运算符&#xff0c;那么语法格式就是 返回类型 operator …

Linux驱动开发基础(sr04超声波模块)

所学来自百问网 目录 1. SR04 超声波简介 2. 硬件设计 3. 软件设计 4. 示例代码 4.1 驱动代码 4.1.1 轮询模式 4.1.2 中断模式 4.3 应用程序 4.4 Makefile 4.5 实验效果 1. SR04 超声波简介 超声波测距模块是利用超声波来测距。模块先发送超声波&#xff0c;然后接…

大数据技术概述

4v特点 volume&#xff08;体量大&#xff09; velocity&#xff08;处理速度快&#xff09; variety&#xff08;数据类型多&#xff09; value&#xff08;价值密度低&#xff09; 核心设计理念 并行化 规模经济 虚拟化 分布式系统满足需求 系统架构 大数据处理流程 采集…

找论文的方法:如何找到本领域研究方向所需要的论文进行泛读和精读?

1、参考其他研究者给出的该领域的reading lists&#xff1a; 例如&#xff0c;在异配图神经网络领域&#xff1a; Awesome Resource on Graph Neural Networks With Heterophily&#xff1a;https://github.com/alexfanjn/Graph-Neural-Networks-With-Heterophily 在图对抗攻…

快速掌握GPTEngineer:用AI创建网页应用的实用教程

今天来聊聊一个非常有趣的工具——GPTEngineer。这是一个基于AI的网页开发平台&#xff0c;特别适合那些不熟悉编程但又想快速创建网页应用的人。如果你想用简单的文本描述来生成一个网站或者应用&#xff0c;GPTEngineer可能就是你需要的。我们一步步看看如何使用它。 1. 了解…