【论文复现|智能算法改进】基于多策略融合灰狼算法的移动机器人路径规划

目录

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


1.算法原理

【智能算法】灰狼算法(GWO)原理及实现

2.改进点

混沌反向学习策略

融合Logistic混沌映射和Tent混沌映射生成Logistic-Tent复合混沌映射:
Z i + 1 = { ( r Z i ( 1 − Z i ) + ( 4 − r ) Z i / 2 ) m o d 1 , Z i < 0.5 ( r Z i ( 1 − Z i ) + ( 4 − r ) ( 1 − Z i ) / 2 ) m o d 1 , Z i ⩾ 0.5 (1) Z_{i+1}=\begin{cases}(rZ_i(1-Z_i)+(4-r)Z_i/2) \mathrm{mod}1,Z_i<0.5\\(rZ_i(1-Z_i)+(4-r)(1-Z_i)/2) \mathrm{mod}1,Z_i\geqslant0.5\end{cases}\tag{1} Zi+1={(rZi(1Zi)+(4r)Zi/2)mod1,Zi<0.5(rZi(1Zi)+(4r)(1Zi)/2)mod1,Zi0.5(1)
为了加快种群收敛速度,采用精英反向学习策略使得生成的初始种群偏向全局最优解:
X n ∗ = r a n d ∗ ( u b + l b ) − X n (2) X_n^*=rand*(ub+lb)-X_n\tag{2} Xn=rand(ub+lb)Xn(2)

控制参数调整

引入Sigmoid函数,修改收敛因子a,论文采用a1:
a 1 ( i ) = a initial − a initial − a final 1 + e − 10 ( i I max ⁡ − 1 2 ) a 2 ( i ) = 2 − 2 i I max ⁡ a 3 ( i ) = a initial − a initial 1 e − 1 ( e i I max ⁡ − 1 ) a 4 ( i ) = 2 − 2 sin ⁡ ( λ i I max ⁡ π + ϕ ) (3) \begin{aligned}a_1\left(i\right)=&a_\text{ initial}-\frac{a_\text{ initial}-a_\text{ final}}{1+e^{-10(\frac i{I_{\max}}-\frac12)}}\\a_2\left(i\right)=&2-\frac{2i}{I_{\max}}\\a_3\left(i\right)=&a_\text{ initial}-a_\text{ initial}\frac1{e-1}(e^{\frac i{I_{\max}}}-1)\\a_4\left(i\right)=&2-2\sin(\lambda \frac i{I_{\max}}\pi+\phi )\end{aligned}\tag{3} a1(i)=a2(i)=a3(i)=a4(i)=a initial1+e10(Imaxi21)a initiala final2Imax2ia initiala initiale11(eImaxi1)22sin(λImaxiπ+ϕ)(3)

在这里插入图片描述
控制参数C1取值影响算法的寻优能力,当C1>1算法具有较强的局部开发能力;当C1<=1有利于增强算法全局探索能力:
C 1 ( i ) = 2 η − a 1 ( i ) (4) C_1(i)=2\eta-a_1(i)\tag{4} C1(i)=2ηa1(i)(4)

在这里插入图片描述
位置更新与种群淘汰策略

采用基于适应度值的比例权重更新灰狼位置:
X ( i + 1 ) = ∑ j = α , β , δ ω j X j ( i ) (5) X\left(i+1\right)=\sum_{j=\alpha,\beta,\delta}\omega_jX_j\left(i\right)\tag{5} X(i+1)=j=α,β,δωjXj(i)(5)
权重系数表述为:
w j = f i t ( X j ( i ) ) f i t ( X α ( i ) ) + f i t ( X β ( i ) ) + f i t ( X δ ( i ) ) (6) w_j=\frac{\mathrm{fit}(X_j(i))}{\mathrm{fit}(X_\alpha(i))+\mathrm{fit}(X_\beta(i))+\mathrm{fit}(X_\delta(i))}\tag{6} wj=fit(Xα(i))+fit(Xβ(i))+fit(Xδ(i))fit(Xj(i))(6)

每次迭代后选择适应度最差的G匹狼进行淘汰,通过Logistic-Tent复合混沌映射生成新的狼以替代被淘汰的狼。种群淘汰机制可以剔除适应度最差的狼,但是无法保证生成的新狼适应度值一定优于原来的解。因此将种群淘汰机制与贪心策略相结合贪心策略使用适者生存的原则,使得新生成狼的适应度值必定优于原来的适应度值$:
M i + 1 = M i ′ , f i t ( M i ′ ) < f i t ( M i ) (7) M_{i+1}=M^{\prime}_i,\mathrm{fit}(M^{\prime}_i)<\mathrm{fit}(M_i)\tag{7} Mi+1=Mi,fit(Mi)<fit(Mi)(7)

3.结果展示

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

二维栅格路径规划

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

4.参考文献

[1] 黄琦,陈海洋,刘妍,等.基于多策略融合灰狼算法的移动机器人路径规划[J].空军工程大学学报,2024,25(03):112-120.

5.代码获取

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt项目天气预报(1) - ui界面搭建

ui中部 效果演示 ui效果 显示效果 控件列表 配合右图查看 居中对齐-label 设置label居中对齐(别傻傻的空格对齐了) 间距配置 widget03 外围的widget对象: 包含label 和 widget0301&#xff0c;如下图 widget0301 内围的widget对象&#xff0c;如下图 样式表 widget03 …

Modbus为何要转成ProfiNET

Modbus与ProfiNET代表了工业通讯不同阶段的发展&#xff0c;各自具有优缺点。Modbus简单易用&#xff0c;适合小型系统&#xff1b;ProfiNET高效稳定&#xff0c;适用于大型复杂网络。转换Modbus为ProfiNET可提高系统性能和扩展性。实际场景下&#xff0c;升级生产线控制器为Pr…

车载网络安全指南 网络安全框架(二)

返回总目录->返回总目录<- 目录 一、概述 二、网络安全组织管理 三、网络安全活动 四、支撑保障 一、概述 汽车电子系统网络安全活动框架包含汽车电子系统网络安全活动、组织管理以及支持保障。其中,网络安全管理活动是框架的核心,主要指汽车电子系统生命周期各阶段…

基于JSP技术的个人网站系统

开头语&#xff1a; 你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP JavaBeans Servlet 工具&#xff1a;Eclipse、MySQL Workbench、…

mediamtx流媒体服务器测试

MediaMTX简介 在web页面中直接播放rtsp视频流&#xff0c;重点推荐&#xff1a;mediamtx&#xff0c;不仅仅是rtsp-CSDN博客 mediamtx github MediaMTX(以前的rtsp-simple-server)是一个现成的和零依赖的实时媒体服务器和媒体代理&#xff0c;允许发布&#xff0c;读取&…

Python 踩坑记 -- 调优

前言 继续解决问题 慢 一个服务运行有点慢&#xff0c;当然 Python 本身不快&#xff0c;如果再编码不当那这个可能就是量级上的劣化。 整个 Code 主线逻辑 1700&#xff0c;各依赖封装 3000&#xff0c;主线逻辑也是很久远的痕迹&#xff0c;长函数都很难看清楚一个 if els…

【归并排序】| 详解归并排序核心代码之合并两个有序数组 力扣88

&#x1f397;️ 主页&#xff1a;小夜时雨 &#x1f397;️专栏&#xff1a;动态规划 &#x1f397;️如何活着&#xff0c;是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/merge-sorted-array/description/ 本道题是归并排序的…

手把手教你如何在Windows11下安装Docker容器

文章的主要要点&#xff1a; 为什么使用Docker&#xff1a;Docker可以简化部署过程&#xff0c;特别适合新手或在学习新技能&#xff08;如Redis、MySQL、消息队列、Nginx等&#xff09;时使用。 安装前的准备&#xff1a;在安装Docker之前&#xff0c;需要在Windows中开启一些…

C++ 算法教程

归并排序 #include<iostream> using namespace std; template <class T> void Merge(T data[],int start,int mid,int end) {int len1 mid - start 1, len2 end - mid;int i, j, k;T* left new int[len1];T* right new int[len2];for (i 0; i < len1; i)…

java(JVM)

JVM Java的JVM&#xff08;Java虚拟机&#xff09;是运行Java程序的关键部件。它不直接理解或执行Java源代码&#xff0c;而是与Java编译器生成的字节码&#xff08;Bytecode&#xff09;进行交互。下面是对Java JVM更详尽的解释&#xff1a; 1.字节码&#xff1a; 当你使用J…

ubuntu安装idea

下载这个文件解压&#xff0c;我的解压在了用户目录下的X86下&#xff0c;接下来直接运行bin下的sh就能启动&#xff0c;想要在固定栏用以下步骤 创建桌面条目文件&#xff1a; 在 ~/.local/share/applications 目录中创建一个新的 .desktop 文件。例如&#xff0c;可以命名…

大数据开发流程解析

大数据开发是一个复杂且系统的过程&#xff0c;涉及需求分析、数据探查、指标管理、模型设计、ETL开发、数据验证、任务调度以及上线管理等多个阶段。本文将详细介绍每个阶段的内容&#xff0c;并提供相关示例和代码示例&#xff0c;帮助理解和实施大数据开发流程。 本文中的示…

C语言---------深入理解指针

目录 一、字符指针 二、指针数组&#xff1a; 三、数组指针&#xff1a; 1、定义&#xff1a; 2、&数组名和数组名区别&#xff1a; 3、数组指针的使用&#xff1a; 四、数组参数&#xff0c;指针参数&#xff1a; 1、一维数组传参&#xff1a; 2、二维数组传参&am…

华媒舍:明星祝福视频,为你送上最真挚的祝福!

引言&#xff1a;嗨&#xff0c;亲爱哒书友&#xff01;在这样一个科谱详细介绍文中&#xff0c;我们将带你领略一份尤其的独家合辑——十部明星祝愿视频。这种视频汇聚了诸多明星为你送上的最真挚的祝福。让我们一起来探寻这种电影中蕴含的情绪和价值吧&#xff01; 1.共享温暖…

数据网格和视图入门

WinForms数据网格&#xff08;GridControl类&#xff09;是一个数据感知控件&#xff0c;可以以各种格式&#xff08;视图&#xff09;显示数据。本主题包含以下部分&#xff0c;这些部分将指导您如何使用网格控件及其视图和列&#xff08;字段&#xff09;。 Grid Control’s…

使用langchain接入通义千问与知识图谱

文章目录 前言大前提准备工作0. 找一个key1. 手动部署2. Docker部署 该怎么开始用户的提问问答历史读取api-key使用Streamlit构建页面框架Prompt知识库的植入Prompt知识库的执行Prompt知识库详细内容植入更新布局补全页面细节 前言 这一篇文章将尝试做一个缝合怪&#xff0c;把…

mybatis-plus使用拦截器实现sql完整打印

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 在使用mybatis-plus&#xff08;mybatis&#xff09;的时候&#xff0c;往往需要…

深入理解指针(四)

目录 1. 回调函数是什么? ​2. qsort使用举例 2.1冒泡排序 2.2使用qsort函数排序整型数据 ​2.3 使用qsort排序结构数据(名字) 2.4 使用qsort排序结构数据(年龄) 3. qsort函数的模拟实现 1. 回调函数是什么? 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数…

C# WPF入门学习主线篇(十五)—— DockPanel布局容器

C# WPF入门学习主线篇&#xff08;十五&#xff09;—— DockPanel布局容器 欢迎来到C# WPF入门学习系列的第十五篇。在前几篇文章中&#xff0c;我们探讨了 Canvas、StackPanel 和 WrapPanel 布局容器及其使用方法。本篇博客将介绍另一种强大且常用的布局容器——DockPanel。…

JavaFX 图像视图

JavaFX ImageView 控件可以在 JavaFX GUI 中显示图像。ImageView 控件必须添加到场景图中才能可见。JavaFX ImageView 控件由类表示 javafx.scene.image.ImageView。 创建一个 ImageView 通过创建类的实例来创建 ImageView 控件实例ImageView。类的构造函数ImageView需要一个…