改进沙猫群优化算法(ISCSO)-附代码

news2024/11/24 22:48:00

改进沙猫群优化算法(ISCSO)

文章目录

  • 改进沙猫群优化算法(ISCSO)
    • 1.沙猫群优化算法
    • 2. 改进沙猫群优化算法
      • 2.1 混沌映射初始化
      • 2.2 引入互利共生策略
      • 2.3 引入莱维飞行策略
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.Python代码

摘要:对沙猫群优化算法进行改进。在改进的沙猫群优化算法中,利用混沌映射的均匀性初始化种群以提高种群多样性;通过融合互利共生和莱维飞行策略减少局部最优解的消极影响,提高算法的收敛速度和精度。

1.沙猫群优化算法

基础沙猫群优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/126624550

2. 改进沙猫群优化算法

2.1 混沌映射初始化

混沌映射 [ 12 ] { }^{[12]} [12] 具有良好的随机性、规律性和遍 历性, 不但能使得种群具有良好的多样性, 也能使 得算法在全局搜索能力、收敛速度、收敛精度上都 有所提高。改进公式如下:
C k + 1 = { C k / a , 0 ⩽ C k ⩽ a ( 1 − C k ) / ( 1 − a ) , a ⩽ C k ⩽ 1 ( 7 ) P o s → i d = l b + ( u b − l b ) × C i d   ( 8 ) \begin{aligned} C_{k+1}= & \begin{cases}C_k / a, & 0 \leqslant C_k \leqslant a \\ \left(1-C_k\right) /(1-a), & a \leqslant C_k \leqslant 1\end{cases} (7)\\ & \overrightarrow{\mathrm{Pos}}_{i d}=l b+(u b-l b) \times C_{i d}\ (8) \end{aligned} Ck+1={Ck/a,(1Ck)/(1a),0CkaaCk1(7)Pos id=lb+(ublb)×Cid (8)
的位置; u b u b ub l b l b lb 表示种群的搜索范围; C i d C_{i d} Cid 表示由 式(7)产生的混沌序列。

2.2 引入互利共生策略

沙猫群优化算法在攻击猎物时,会通过轮盘赌法随机选择角度来靠近猎物进行攻击。但这样的攻击方式随机性较大,也易于陷入局部最优,互利共生策略 通过加强个体与最优个体的信息交流,可以消除沙猫攻击猎物时的消极影响,提高沙猫的寻优精度和收敛速度。改进公式如下:
P o s → n e w = P o s → b c + ( P o s → b c − b f × R M V ) (9) \overrightarrow{\mathrm{Pos}}_{new}=\overrightarrow{\mathrm{Pos}}_{bc}+(\overrightarrow{\mathrm{Pos}}_{bc}-bf\times R_{MV})\tag{9} Pos new=Pos bc+(Pos bcbf×RMV)(9)

R M V = ( P o s → b c + P o s → r n d ) / 2 (10) R_{MV}=(\overrightarrow{\mathrm{Pos}}_{bc}+\overrightarrow{\mathrm{Pos}}_{rnd})/2 \tag{10} RMV=(Pos bc+Pos rnd)/2(10)

P o s → n e w \overrightarrow{\mathrm{Pos}}_{new} Pos new为更新后的位置; P o s → r n d \overrightarrow{\mathrm{Pos}}_{\mathrm{rnd}} Pos rnd 为随机个体的位置; P o s → b c \overrightarrow{\mathrm{Pos}}_{\mathrm{bc}} Pos bc 为最优个体的位置; b f b f bf 表示利益因子, 随机选择 1 或 2 , 表示可能部分受益或全部受益;
R M V R_{M V} RMV 表示最优个体与随机个体的信息交流。

2.3 引入莱维飞行策略

沙猫群优化算法在搜索猎物和攻击猎物时, 都是通过随机角度进行的, 导致算法会遗漏部分 较优的解, 降低收玫精度。为了增强搜索的周密 性, 消除局部最优解的消极影响, 本算法引入莱维 飞行策略 [ 13 ] { }^{[13]} [13], 既加强了算法的局部搜索能力,又 能保证算法在全局搜索时具有良好的周密性。改 进公式如下:
P o s → n e w = P o s → b c + ∣ P o s → b c − P o s → L e v y ∣ l c o s ( 2 π l ) (11) \overrightarrow{\mathrm{Pos}}_{new} = \overrightarrow{\mathrm{Pos}}_{bc}+|\overrightarrow{\mathrm{Pos}}_{bc}-\overrightarrow{\mathrm{Pos}}_{Levy}|lcos(2\pi l)\tag{11} Pos new=Pos bc+Pos bcPos Levylcos(2πl)(11)

P o s → L e v y = μ ∣ α ∣ 1 / β ( P o s → r n d − P o s → b c ) (12) \overrightarrow{\mathrm{Pos}}_{Levy}=\frac{\mu}{|\alpha|^{1/\beta}}(\overrightarrow{\mathrm{Pos}}_{rnd}-\overrightarrow{\mathrm{Pos}}_{bc})\tag{12} Pos Levy=α1/βμ(Pos rndPos bc)(12)

σ μ = { Γ ( 1 + β ) sin ⁡ ( π β 2 ) Γ [ ( 1 + β ) 2 ] β ⋅ 2 β − 1 2 } (13) \begin{aligned} & \sigma_\mu=\left\{\frac{\Gamma(1+\beta) \sin \left(\frac{\pi \beta}{2}\right)}{\Gamma\left[\frac{(1+\beta)}{2}\right] \beta \cdot 2^{\frac{\beta-1}{2}}}\right\} \\ & \end{aligned}\tag{13} σμ= Γ[2(1+β)]β22β1Γ(1+β)sin(2πβ) (13)
P o s → n e w \overrightarrow{\mathrm{Pos}}_{new} Pos new为更新后的位置; P o s → L e v y \overrightarrow{P o s}_{\mathrm{Levy}} Pos Levy 表示莱维飞行位置; l l l ( 0 , 1 ) (0,1) (0,1) 的随机数; P o s → r n d \overrightarrow{\mathrm{Pos}}_{\mathrm{rnd}} Pos rnd 表示随机个体的位置; μ \mu μ 是服从 μ ∼ N ( 0 , σ μ 2 ) \mu \sim N\left(0, \sigma_\mu^2\right) μN(0,σμ2) 的随机数, 其中 Γ \Gamma Γ 为伽马函数, β \beta β ( 0 , 2 ) (0,2) (0,2) 的随机数。

3.实验结果

在这里插入图片描述

4.参考文献

[1]贾鹤鸣,李永超,游进华等.改进沙猫群优化算法的机器人路径规划[J].福建工程学院学报,2023,21(01):72-77.

5.Matlab代码

6.Python代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/489466.html

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

相关文章

Vue.js 教程---菜鸟教程

文章目录 Vue.js 教程Vue.js 安装Vue.js 起步Vue.js 模板语法插值指令用户输入过滤器缩写 Vue.js 条件语句Vue.js 循环语句Vue.js 计算属性Vue.js 监听属性Vue.js样式绑定 Vue.js 教程 本教程主要介绍了 Vue2.x 版本的使用 第一个实例&#xff1a; <body> <div id&…

Linux 信号学习

Linux 信号学习 信号量的基本概念信号产生的条件信号如何被处理信号的异步特质 信号的分类可靠信号/不可靠信号实时信号/非实时信号 常见信号与默认行为信号处理signal() 函数sigaction()函数 向进程发送信号kill() 函数raise() 函数 alarm()和pause()函数alarm() 定时函数paus…

玩转传感器----理解时序和数据采集(DHT11)

该文章以DHT11模块进行分析 目录 1.模块复位&#xff08;时序图&#xff09; 2.DHT11的应答信号 3.读取1bit数值&#xff08;比较高电平的时间是否大于40us&#xff09; 4.读取一个字节 5.把读取的字节放入单片机 6. 寄存器设置IO口方向 1.模块复位&#xff08;时序图&a…

22.Java多线程

Java多线程 一、进程和线程 进程是程序的一次动态执行过程&#xff0c;它需要经历从代码加载&#xff0c;代码执行到执行完毕的一个完整的过程&#xff0c;这个过程也是进程本身从产生&#xff0c;发展到最终消亡的过程。多进程操作系统能同时达运行多个进程&#xff08;程序…

使用Python接口自动化测试post请求和get请求,获取请求返回值

目录 引言 请求接口为Post时&#xff0c;传参方法 获取接口请求响应数据 引言 我们在做python接口自动化测试时&#xff0c;接口的请求方法有get,post等&#xff1b;get和post请求传参&#xff0c;和获取接口响应数据的方法&#xff1b; 请求接口为Post时&#xff0c;传参方法…

C++系列二:数据类型

C数据类型 1. 原始类型2. 复合类型3. 类型转换3.1 隐式类型转换3.2 显式类型转换 4. 总结&#xff08;手稿版&#xff09; 1. 原始类型 C 中的原始类型包括整型&#xff08;integral types&#xff09;、浮点型&#xff08;floating-point types&#xff09;、字符型&#xff…

涨薪60%,从小厂逆袭,坐上美团技术专家(面经+心得)

前言 大多数情况下&#xff0c;程序员的个人技能成长速度&#xff0c;远远大于公司规模或业务的成长速度。所以&#xff0c;跳槽成为了这个行业里最常见的一个词汇。 实际上&#xff0c;跳槽的目的无非是为了涨薪或是职业发展&#xff0c;我也不例外。普通本科毕业后&#xf…

计算机网络基础知识(一)计算机发展史、网络设备、网络结构及拓扑

文章目录 01 | 网络设备02 | 网络结构 && 拓扑 网络发展史可以追溯到20世纪60年代&#xff0c;当时美国国防部高级研究计划署&#xff08;ARPA&#xff09;启动了一个名为 ARPANET 的项目&#xff0c;旨在建立军事目的的分布式通信网络&#xff0c;使得网络中的任何一台…

【redis】redis红锁Redlock算法和底层源码分析

【redis】redis红锁Redlock算法和底层源码分析 文章目录 【redis】redis红锁Redlock算法和底层源码分析前言一、当前代码为8.0版&#xff0c;接上一步分布式锁的主要考点lock加锁关键逻辑unlock解锁关键逻辑 二、redis分布式锁-Redlock红锁主页说明:目前所写的分布式锁还有什么…

c++自学笔记(陆续更新)

本笔记为从菜鸟教程边学边记录的笔记---》C 教程 | 菜鸟教程 面向对象程序设计 封装&#xff08;Encapsulation&#xff09;&#xff1a;封装是将数据和方法组合在一起&#xff0c;对外部隐藏实现细节&#xff0c;只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。…

C语言入门教程||C语言 头文件||C语言 强制类型转换

C语言 头文件 头文件是扩展名为 .h 的文件&#xff0c;包含了 C 函数声明和宏定义&#xff0c;被多个源文件中引用共享。有两种类型的头文件&#xff1a;程序员编写的头文件和编译器自带的头文件。 在程序中要使用头文件&#xff0c;需要使用 C 预处理指令 #include 来引用它…

USART串口接收

文章目录 运行环境&#xff1a;1.1 串口接收代码分析1)开启接收中断和空闲中断2)接收存储变量声明和定义3)中断处理函数 2.1实验效果 运行环境&#xff1a; ubuntu18.04.melodic 宏基暗影骑士笔记本 stm32f427IIH6 stlink 9-24v可调电源 usb转串口 杜邦线转4pin 1.1 串口接收…

Python | 人脸识别+活体检测+背景模糊+关键点检测系统(Face_Recognition+dlib+OpenCV+MediaPipe+PyQt)

本博客为人脸识别系统项目简介 项目GitHub完整源代码地址&#xff1a; 一、运行环境 本系统能够运行在基于PC操作系统Windows环境下&#xff0c;要求Windows操作系统安装Python 3.9 及以上环境&#xff0c;且已安装MySQL数据库。 Python3.9 安装&#xff1a;Python 3.9安装教程…

【UE】坦克开火

1. 添加开火的操作映射 2. 创建一个actor蓝图类&#xff0c;添加一个静态网格体组件 添加发射物移动组件 设置初始速度和最大速度 发射物重力范围设为0.05 添加音频组件 设置音效 3. 打开炮管的静态网格体 在插槽管理器中创建插槽 将创建的插槽放到炮口位置 4. 打开“BP_BaseT…

B-Tree (多路查找树)分析-20230503

B-Tree (多路查找树)学习-20230503 前言 B-树是一类多路查询树&#xff0c;它主要用于文件系统和某些数据库的索引&#xff0c;如果采用二叉平衡树访问文件里面的数据&#xff0c;最坏情况下&#xff0c;磁头可能需要进行O(h)次对磁盘的读写&#xff0c;其中h为树的高度&…

探究Android插件化开发的新思路——Shadow插件化框架

Shadow插件化框架是什么&#xff1f; Shadow是一种Android App的插件化框架&#xff0c;它利用类似于ClassLoader的机制来实现应用程序中的模块化&#xff0c;并让这些模块可以在运行时灵活地进行加载和卸载。Shadow框架主张将一个大型的Android App拆分成多个小模块&#xff…

提升V-Ray渲染效率的五个实用技巧!

Chaos V-Ray是一个 3D渲染插件&#xff0c;可用于所有主要的 3D设计和 CAD程序。V-Ray可以和 3ds Max、Cinema 4D、Houdini、Maya、Nuke、Revit、Rhino、SketchUp和 Unreal无缝协作。艺术家和设计师也可以通过使用 V-Ray的实时光线来追踪探索和分享自己的项目&#xff0c;并渲染…

SpringBoot调取OpenAi接口实现ChatGpt功能

很高兴和大家分享我实现的一个小项目&#xff0c;利用 Spring Boot 实现了一个 ChatGpt 对话系统。在本文中&#xff0c;我将详细介绍这个项目的实现步骤&#xff0c;以及代码实现。 什么是 ChatGpt ChatGpt 是一种基于 GPT 技术的对话系统&#xff0c;能够生成连贯、流畅、…

V-Ray怎么快速渲染_渲染加速小技巧

很多小伙伴在使用V-Ray渲染器的时候都想要更加快速的出图&#xff0c;今天Renderbus瑞云渲染就给大家分享一下V-Ray渲染加速的小技巧。 在了解渲染加速技巧之前&#xff0c;我们首先要了解渲染制作主要受两个因素影响——图像质量和渲染时间&#xff0c;高图像质量是以长渲染时…

k8s集群搭建(3主2从)

目录 kubeadm 和二进制安装 k8s 适用场景分析 多 master 节点高可用架构图 集群环境准备 部署过程 修改主机内核参数&#xff08;所有节点&#xff09; 配置阿里云的repo源&#xff08;所有节点&#xff09; 配置国内安装 docker 和 containerd 的阿里云的 repo 源 配置…