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

【论文复现|智能算法改进】基于改进鲸鱼优化算法的移动机器人多目标点路径规划

目录

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


1.算法原理

SCI二区|鲸鱼优化算法(WOA)原理及实现【附完整Matlab代码】

2.数学模型

使用 A* 算法生成所有目标点之间的距离矩阵U:
U = [ d 1 − 1 d 1 − 2 d 1 − 3 ⋯ d 1 − i d 2 − 1 d 2 − 2 d 2 − 3 ⋯ d 2 − i d 3 − 1 d 3 − 2 d 3 − 3 ⋯ d 3 − i ⋮ ⋮ ⋮ ⋱ ⋮ d j − 1 d j − 2 d j − 3 ⋯ d j − i ] U=\begin{bmatrix}d_{1-1}&d_{1-2}&d_{1-3}&\cdots&d_{1-i}\\d_{2-1}&d_{2-2}&d_{2-3}&\cdots&d_{2-i}\\d_{3-1}&d_{3-2}&d_{3-3}&\cdots&d_{3-i}\\\vdots&\vdots&\vdots&\ddots&\vdots\\d_{j-1}&d_{j-2}&d_{j-3}&\cdots&d_{j-i}\end{bmatrix} U= d11d21d31dj1d12d22d32dj2d13d23d33dj3d1id2id3idji
其中,di-j为第i个目标点到第j个目标点 A* 算法所规划路径的实际距离。
多目标点路径规划问题可表述为:移动机器人需要遍历n个目标点,且每个目标仅被遍历一次,目的是求一条经过所有目标点的最短路径。
V = ∑ i = 1 , i = 1 n x ( l i , l j ) V=\sum_{i=1, i=1}^nx\Big(l_i,l_j\Big) V=i=1,i=1nx(li,lj)

3.改进点

自适应搜索控制系数

在标准鲸鱼优化算法中,系数向量C为均匀分布在[0,2] 内的随机数,是一个控制搜索速率的参数,故C值是在每次迭代时随机生成的,这可能导致搜索行为较为随机,无法充分平衡算法全局搜索和局部搜索的能力,从而导致
收敛精度不足。本文提出一种自适应搜索控制系数动态调整:
C = 2 k ⋅ ( 1 − i / i max ⁡ ) C=2k\cdot\begin{pmatrix}1-i / i_{\max}\end{pmatrix} C=2k(1i/imax)

记忆库列表策略

添加一个记忆库列表,使算法能够记录迭代过程中遇到过的当前最优解。
PS:个人感觉用处不大🤣

再加入一种自己提出的创新改进策略A

4.结果展示

在这里插入图片描述

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

5.参考文献

[1] 王步伟,潘鹏程.基于改进鲸鱼优化算法的移动机器人多目标点路径规划[J].机器人技术与应用,2023,(06):14-19.

6.代码获取

相关文章:

  • 1.Vue2使用ElementUI-初识及环境搭建
  • ViewModel、Lifecycles、LiveData基本使用
  • TK防关联引流系统:全球多账号运营,一“键”掌控!
  • Typora 破解、激活!亲测有效!2024 最新激活方法
  • 排序-快排算法对数组进行排序
  • 6-11 函数题:某范围中的最小值
  • 源代码防泄密经验分享之安全上网篇
  • 联邦学习的基本流程,联邦学习权重聚合,联邦学习权重更新
  • Serverless 使用OOS将http文件转存到对象存储
  • Spring的循环依赖
  • Vite - 项目打包从 0 到 1(完美解决打包后访问白屏问题)
  • Python第二语言(八、Python包)
  • 解决富文本中抖音视频无法播放的问题——403
  • HTML静态网页成品作业(HTML+CSS)—— 非遗皮影戏介绍网页(6个页面)
  • 后端启动项目端口冲突问题解决
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 2017年终总结、随想
  • ES6系统学习----从Apollo Client看解构赋值
  • Java,console输出实时的转向GUI textbox
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Sequelize 中文文档 v4 - Getting started - 入门
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 大型网站性能监测、分析与优化常见问题QA
  • 机器学习中为什么要做归一化normalization
  • 你真的知道 == 和 equals 的区别吗?
  • 让你的分享飞起来——极光推出社会化分享组件
  • 深度学习入门:10门免费线上课程推荐
  • 算法-插入排序
  • 用mpvue开发微信小程序
  • 终端用户监控:真实用户监控还是模拟监控?
  • Java性能优化之JVM GC(垃圾回收机制)
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #define 用法
  • ${ }的特别功能
  • (Note)C++中的继承方式
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • ***检测工具之RKHunter AIDE
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • .Net Core和.Net Standard直观理解
  • .NET Framework 4.6.2改进了WPF和安全性
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .Net Memory Profiler的使用举例
  • .NET NPOI导出Excel详解
  • .net 调用php,php 调用.net com组件 --
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @Bean, @Component, @Configuration简析
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)