【论文复现|智能算法改进】基于多策略麻雀搜索算法的机器人路径规划

目录

    • 1.算法原理
    • 2.改进点
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.算法原理

【智能算法】麻雀搜索算法(SSA)原理及实现

2.改进点

改进的无限折叠迭代混沌映射

无限折叠迭代映射(ICMIC) 常用于图像加密方向的研究, 基本思想是首先生成[0,1]之间的混沌序列, 然后映射到整个种群搜索空间中, 完成种群的初始化。改进方式将π 进行小范围幅度的调整, 增加了种群的多样性, 减少了随机种群初始化中处于边界点的种群个数:
X n + 1 = sin ⁡ ( α ( λ F ( φ ) ) X n ) , α ∈ ( 0 , 1 ) (1) \boldsymbol{X}_{n+1}=\sin\biggl(\frac{\alpha\left(\lambda F\left(\varphi\right)\right)}{\boldsymbol{X}_n}\biggr),\alpha\in(0,1)\tag{1} Xn+1=sin(Xnα(λF(φ))),α(0,1)(1)
其中,参数为:
F ( φ ) = e φ 1 + e − φ (2) F\left(\varphi\right)=\frac{\mathrm{e}^{\varphi}}{1+\mathrm{e}^{-\varphi}}\tag{2} F(φ)=1+eφeφ(2)

在这里插入图片描述

改进的发现者更新公式

采用增加一个自适应惯性权重的方式来动态改变发现者的位置移动 , 通过增加自适应惯性权重, 使得改进后的发现者在前期的步长尽可能大, 到了迭代后期步长尽可能小, 使得收敛速度加快:
X i , d t + 1 = { μ X i , d t exp ⁡  ⁣ ⁣ ( − i α M ) , λ < S т μ X i , d t + Q L , λ ⩾ S т (3) \boldsymbol{X}_{i,d}^{t+1}=\begin{cases}\mu\boldsymbol{X}_{i,d}^t\exp\!\!\left(\frac{-i}{\alpha M}\right),&\lambda<S_\text{т}\\[2ex]\mu\boldsymbol{X}_{i,d}^t+Q\boldsymbol{L} ,&\lambda\geqslant S_\text{т}\end{cases}\tag{3} Xi,dt+1= μXi,dtexp(αMi),μXi,dt+QL,λ<SтλSт(3)
参数表述为:
μ = { ω t < t 0 ( 1 t ) ( 1 − 1 t ) , t 0 < t < M (4) \mu=\begin{cases}\omega&t<t_0 \\\\\left(\frac{1}{t}\right)^{\left(1-\frac{1}{t}\right)} ,&t_0<t <M\end{cases}\tag{4} μ= ω(t1)(1t1),t<t0t0<t<M(4)

改进的侦察者比例

侦察者的固定比例在整个种群面对危险时作用无法最大化, 基于此设计了一种自适应的侦察者比例关系, 迭代前期对于整个种群提供最大的比例系20%, 到迭代后期使侦察者的比例逐渐减少到10%, 在迭代进行到一半时能够保持警戒者的数量占全部种群的15%, 改进后的侦察者有利于在前期对全局的寻优, 侦察者的个体适应度值更高, 后期侦察者比例减少, 能够加快搜索度的同时更能让种群跳出局部最优, 不干扰对全局最优解的寻找。改进后的侦察者比例系数:
S D = 100 ( − tanh ⁡ ( 2 δ t M − δ ) l 1 + l 2 2 + l 1 − l 2 2 ) (5) S_\text{D}=100\biggl(-\tanh\biggl(\frac{2\delta t}{M}-\delta\biggr)\frac{l_1+l_2}2+\frac{l_1-l_2}2\biggr)\tag{5} SD=100(tanh(M2δtδ)2l1+l2+2l1l2)(5)

正弦余弦算法

针对侦察者在整个算法全局寻优起到的作用, 采用正弦余弦算法对侦察者的位置更新公式做出了改变, 并且引入了非常小的非线性学习因子对侦察者步长和最优位置的个体做出改进:
X i , d i + 1 = { S X b e s t ′ + a 1 sin ⁡ ( a 2 ) γ ∣ a 3 X i , d ′ − X b e s t ′ ∣ , f i > f g S X i , d ′ + a 1 cos ⁡ ( a 2 ) ( a 3 X i , d ′ − X w o r s t ′ ( f i − f w ) + ε ) , f i = f g (6) \mathbf{X}_{i,d}^{i+1}=\begin{cases}\text{S}\mathbf{X}_{\mathrm{best}}^{\prime}+a_{1}\sin(a_{2})\gamma |a_{3}\mathbf{X}_{i,d}^{\prime}-\mathbf{X}_{\mathrm{best}}^{\prime} | ,&f_{i}>f_{g}\\\text{S}\mathbf{X}_{i,d}^{\prime}+a_{1}\cos(a_{2})\Big(\frac{a_{3}\mathbf{X}_{i,d}^{\prime}-\mathbf{X}_{\mathrm{worst}}^{\prime}}{(f_{i}-f_{w})+\varepsilon}\Big),&f_{i}=f_{g}\end{cases}\tag{6} Xi,di+1={SXbest+a1sin(a2)γa3Xi,dXbest,SXi,d+a1cos(a2)((fifw)+εa3Xi,dXworst),fi>fgfi=fg(6)

流程图

在这里插入图片描述

3.结果展示

采用CEC2005测试集测试对GWO,SSA,DBO,ISSA算法进行测试对比:

在这里插入图片描述

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

二维栅格路径规划

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

4.参考文献

[1] 杨红,杨超.基于多策略麻雀搜索算法的机器人路径规划[J].沈阳大学学报(自然科学版),2024,36(02):141-152.

5.代码获取

智能算法,论文复现,算法应用(机器学习、二维&三维路径规划、UAV路径规划、布局优化、调度优化、VRP问题等),定制算法可以联系我~

资源清单:https://docs.qq.com/sheet/DU1V0QWtSeHJnY0JU?u=989d90f9b14449ec9419aa7b51473c1b&tab=BB08J2

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Qt秘籍】[008]-Qt中的connect函数

在Qt框架中&#xff0c;connect函数是一个非常核心的函数&#xff0c;用于实现信号&#xff08;Signals&#xff09;和槽&#xff08;Slots&#xff09;之间的连接&#xff0c;它是Qt信号槽机制的关键所在。信号槽机制是一种高级的通信方式&#xff0c;允许对象在状态改变时通知…

掘金AI 商战宝典-系统班:2024掘金AIGC课程(30节视频课)

课程目录 1-第一讲学会向Al提问&#xff1a;万能提问公式_1.mp4 2-第二讲用AI写视频脚本_1.mp4 3-第三讲用AI写视频口播文案_1.mp4 4-第四讲用AI自动做视频&#xff08;上&#xff09;_1.mp4 5-第五讲用AI自动做视频&#xff08;中&#xff09;_1.mp4 6-第六讲用AI自动做视…

1. Mybatis基础操作

目录 1.1 需求 1.2 准备 1.3 删除 1.3.1 功能实现 1.3.2 日志输入 1.3.3 预编译SQL 1.3.3.1 介绍 1.3.3.2 SQL注入 1.3.3.3 参数占位符 1.4 新增 1.4.1 基本新增 1.4.2 主键返回 1.5 更新 1.6 查询 1.6.1 根据ID查询 1.6.2 数据封装 1.6.3 条件查询 1.6.4 参…

Tree——输出项目的文件结构(Linux)

输出项目中的文件结构可以使用tree命令。tree是一个用于以树状结构显示目录内容的命令行工具。它非常适合快速查看项目的文件结构。安装&#xff1a; sudo apt-get install tree 使用&#xff1a; 在命令行中导航到项目的根目录&#xff0c;输出文件结构。 tree 也可以将结构输…

NXP RT1060学习总结 - CANFD功能

1、RT1060-CAN FD功能简介 这里使用RT1060系列的1064芯片进行开发&#xff0c;测试板是官方提供的开发板&#xff1b;RT1060系列支持3路CAN功能&#xff0c;CAN1和CAN2只能最为普通的CAN外设&#xff0c;支持CAN2.0&#xff0c;而CAN3支持CAN-FD功能&#xff1b;CAN-FD功能这里…

数据库概念

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人能接…

Java学习Lambda表达式

Lambda表达式 有且只有一个未实现的方法叫做Lambda表达式&#xff0c;可以实现函数式编程 // 这个注解是用来检查你写的函数是否是函数式接口 FunctionalInterfaceinterface Myinterface {int sum(int a, int b);default String priteTitle(String name, int age, String sex)…

<Rust><iced>基于rust使用iced库构建GUI实例:动态改变主题色

前言 本专栏是Rust实例应用。 环境配置 平台&#xff1a;windows 软件&#xff1a;vscode 语言&#xff1a;rust 库&#xff1a;iced、iced_aw 概述 本篇构建了这样的一个实例&#xff0c;可以动态修改UI的主题&#xff0c;通过菜单栏来选择预设的自定义主题和官方主题&#…

1+X Web应用软件测试(中级) 考试失利教训

考证考试结束的第二天复盘 复盘时间:2024/6/2 9:45-10:00 考试名称:1X Web应用软件测试(中级) 电子书:Web应用软件测试&#xff08;中级&#xff09; 他人备考技巧 改进: [考前策略]自动化40性能40功能2个20 1.可以2人分工合作,完成一整套功能测试题目 2.制定阶段时间的学…

使用PyCharm 开发工具创建工程

一. 简介 前面学习了 安装 python解释器。如何安装python的一种开发工具 PyCharm。 本文来简单学习一下&#xff0c;如何使用 PyCharm 开发工具创建一个简单的 python工程。 二. PyCharm 开发工具创建一个工程 1. 首先&#xff0c;首先打开PyCharm 开发工具。选择 创建一…

社交媒体数据恢复:淘宝旺信

根据搜索结果&#xff0c;阿里旺旺聊天记录的恢复方法如下&#xff1a; 运行阿里旺旺在旺旺面板底部点击小喇叭图标在打开的消息管理器窗口右上角点击"搜索"点击"高级搜索"设置所需查找的时间段---"搜索" 此外&#xff0c;在阿里旺旺的云存储中…

xdp、dpdk、rdma能在同一网卡上同时使用吗?

文心一言 XDP、DPDK和RDMA是三种不同的技术&#xff0c;它们各自在Linux网络性能优化中扮演了不同的角色。关于它们能否在同一网卡上同时使用&#xff0c;我们需要考虑以下几个方面&#xff1a; XDP&#xff08;eXpress Data Path&#xff09;&#xff1a; XDP是Linux内核提供…

搭建大型分布式服务(三十八)SpringBoot 整合多个kafka数据源-支持protobuf

系列文章目录 文章目录 系列文章目录前言一、本文要点二、开发环境三、原项目四、修改项目五、测试一下五、小结 前言 本插件稳定运行上百个kafka项目&#xff0c;每天处理上亿级的数据的精简小插件&#xff0c;快速上手。 <dependency><groupId>io.github.vipjo…

通过DLL方式链接glfw3.dll

主要是CMakeLists.txt文件变化 cmake_minimum_required(VERSION 3.10) project(glfwTest) set(CMAKE_CXX_STANDARD 11) aux_source_directory(. SRC_SOURCES) add_executable(glfwTest ${SRC_SOURCES}) target_link_libraries(glfwTest opengl32) # 链接库文件 target_inclu…

数据结构(C):从初识堆到堆排序的实现

&#x1f31e;0.前言 言C之言&#xff0c;聊C之识&#xff0c;以C会友&#xff0c;共向远方。各位博友的各位你们好啊&#xff0c;这里是持续分享数据结构知识的小赵同学&#xff0c;今天要分享的数据结构知识是堆&#xff0c;在这一章&#xff0c;小赵将会向大家展开聊聊堆的相…

年薪百万也难达财务自由?揭秘背后的真相!

谈及财务自由&#xff0c;人们往往会好奇&#xff1a;究竟需要多少资金才能跨越这道门槛&#xff1f;根据《胡润财富自由门槛》的调研&#xff0c;中国一线城市的财富自由标准从入门级的人民币1900万元到中级6500万到高级别的1.9亿元不等。然而&#xff0c;财务自由的核心并非仅…

ComfyUi安装OOTDiffusion插件的diffusers版本问题

OOTDiffusion换装 在github上有近5K的star了&#xff08;https://github.com/levihsu/OOTDiffusion&#xff09;。 diffusers版本问题 最新版是0.27.2&#xff0c;不能低于0.25&#xff0c;但是OOT换装需要0.24&#xff0c;否则会报错&#xff1a; ComfyUI\custom_nodes\Comf…

Android精通值Fragment的使用 —— 不含底层逻辑(五)

1. Fragment 使用Fragment的目标&#xff1a;根据列表动态显示内容&#xff0c;更简洁显示界面、查找界面 eg. 使用新闻列表动态显示新闻 1.1 Fragment的特性 具备生命周期 —— 可以动态地移除一些Fragment必须委托在Activity中使用可以在Activity中进行复用 1.2 Fragmen…

C#WPF数字大屏项目实战04--设备运行状态

1、引入Livecharts包 项目中&#xff0c;设备运行状态是用饼状图展示的&#xff0c;因此需要使用livechart控件&#xff0c;该控件提供丰富多彩的图形控件显示效果 窗体使用控件 2、设置饼状图的显示图例 通过<lvc:PieChart.Series>设置环状区域 3、设置饼状图资源样…

数据结构复习指导之交换排序(冒泡排序,快速排序)

目录 交换排序 复习提示 1.冒泡排序 1.1基本思想 1.2算法代码 1.3性能分析 2.快速排序 2.1基本思想 2.2算法代码 2.3性能分析 交换排序 复习提示 所谓交换&#xff0c;是指根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。 基于交换的排序算法很…