基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码

一、麋鹿群优化算法EHO

  1. 基本概念
    • 麋鹿群优化算法(EHO,Elephant Herding Optimization)是2024年提出的一种启发式优化算法,它的灵感来自麋鹿群的繁殖过程。麋鹿有两个主要的繁殖季节:发情和产犊。在发情季节,麋鹿群分裂成不同规模的不同家庭。这种划分是基于公麋鹿间争夺主导地位的,其中更强壮的公麋鹿可以组成一个拥有大量的家庭。在产犊季节,每个家庭都会从公麋鹿和雌麋鹿中培育出新的小牛。这个灵感是在优化环境中设置的,其中优化循环由三个运算符组成:发情季节、产犊季节和选择季节。在选拔季节,所有家庭都被合并,包括公麋鹿、雌麋鹿和小麋鹿。最健康的麋鹿群将被选中,用于即将到来的发情和产犊季节。简而言之,EHO 将种群分为一组,每组在发情季节有一名领导者和几名追随者。追随者的数量是根据其领导组的健身值确定的。每个小组都将根据其领导者和追随者在产犊季节生成新的解决方案。所有组的成员(包括领导者、追随者和新解决方案)被组合在一起,并在选择季节选择最适者群体。


  1. 算法步骤
    • 初始化
      • 确定麋鹿群的规模N、子群数量k、搜索空间的范围(例如变量的上下界)等参数。
      • 随机初始化麋鹿群中每个个体的位置(在搜索空间内),并计算每个个体对应的适应度值(用于评估解的优劣程度)。
    • 分群操作
      • 根据设定的规则将麋鹿群划分为k个子群,并确定每个子群的领导者。
    • 迭代更新
      • 对于每个子群的领导者,根据领导者更新机制更新其位置。
      • 子群中的其他个体根据个体位置更新公式更新自己的位置。
      • 计算更新后每个个体的适应度值。
      • 记录全局最优位置和最优适应度值(如果发现更优的解则进行更新)。
    • 终止条件判断
      • 检查是否满足终止条件,如达到最大迭代次数或者最优解的变化小于某个阈值等。如果满足,则输出全局最优解;否则,返回迭代更新步骤继续执行。

参考文献:

1\] Al-betar, M.A., Awadallah, M.A., Braik, M.S., Makhadmeh, S.N., \& Abu Doush, I. (2024). Elk herd optimizer: a novel nature-inspired metaheuristic algorithm. Artif. Intell. Rev., 57, 48. ## 二、无人机(UAV)三维路径规划 单个无人机三维路径规划数学模型参考如下文献: Phung M D , Ha Q P . Safety-enhanced UAV Path Planning with Spherical Vector-based Particle Swarm Optimization\[J\]. arXiv e-prints, 2021. 每个无人机的目标函数由路径长度成本,安全性与可行性成本、飞行高度成本和路径平滑成本共同组成: ### 2.1路径长度成本 路径长度成本由相邻两个节点之间的欧氏距离和构成,其计算公式如下: ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/df2a54cf67584e451594a6d52bdcc844.png) ### 2.2路径安全性与可行性成本 ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a05305110fa03c38523c604829bc67a6.png) 路径安全性与可行性成本通过下式计算: ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/27ee9be6c5f3dc6c038a03e5d34ffa16.png) ### 2.3路径飞行高度成本 ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5ba0f9f1ec8341f5462212306358efa3.png) 飞行高度成本通过如下公式计算所得: ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0b1edf8d225537fe56e9ff0880d2214f.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e17310b972ec2b0850bf7f643f73eecb.png) ### 2.4路径平滑成本 ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1246acbf2e304395caa3b6381efb6b4a.png) 投影向量通过如下公式计算: ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/608463addab45d8282a45228c59b0ca8.png) 转弯角度的计算公式为: ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fac98105f274d1ffa41fbf66aef05025.png) 爬坡角度的计算公式为: ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cdd494556a85e4ea55c3e6b5608bfc16.png) 平滑成本的计算公式为: ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6a70e9b2ea0d481b962b9545ad54b88d.png) ### 2.5总成本(目标函数) ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e90822ac4fe79bb16bcd1e3c24628983.png) 总成本由最优路径成本,安全性与可行性成本、飞行高度成本和路径平滑成本的线性加权所得。其中,b为加权系数。 ## 三、实验结果 在三维无人机路径规划中,无人机的路径由起点,终点以及起始点间的点共同连接而成。因此,自变量为无人机起始点间的各点坐标,每个无人机的目标函数为总成本(公式9)。本文研究3个无人机协同路径规划,总的目标函数为3个无人机的总成本之和。 ```bash Xmin=[Xmin0,Xmin1,Xmin2]; Xmax=[Xmax0,Xmax1,Xmax2]; dim=dim0+dim1+dim2; fobj=@(x)GetFun(x,fobj0,fobj1,fobj2);%总的目标函数 pop=50; maxgen=1500; [fMin ,bestX,Convergence_curve]=eho(pop,maxgen,Xmin,Xmax,dim,fobj);%Trajectories,fitness_history, population_history % save bestX bestX BestPosition1 = SphericalToCart(bestX(1:dim/3),model);% 第一个无人机得到的路径坐标位置 BestPosition2 = SphericalToCart(bestX(1+dim/3:2*dim/3),model1);% 第二个无人机得到的路径坐标位置 BestPosition3 = SphericalToCart(bestX(1+2*dim/3:end),model2);% 第三个无人机得到的路径坐标位置 gca1=figure(1); gca2=figure(2); gca3=figure(3); PlotSolution(BestPosition1,model,gca1,gca2,gca3);% 画第一个无人机 PlotSolution1(BestPosition2,model1,gca1,gca2,gca3);% 画第二个无人机 PlotSolution2(BestPosition3,model2,gca1,gca2,gca3);% 画第三个无人机 figure plot(Convergence_curve,'LineWidth',2) xlabel('Iteration'); ylabel('Best Cost'); grid on; ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/06c48d68c4b84fa6b5d2be9b02057ea8.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1f7d55f9713247b8b20dece7687f3b76.png) ### 四、完整MATLAB代码见下方名片

相关推荐
PownShanYu39 分钟前
RainbowDash 的 Robot
算法
Elastic 中国社区官方博客1 小时前
Elasticsearch:使用机器学习生成筛选器和分类标签
大数据·人工智能·elasticsearch·机器学习·搜索引擎·ai·分类
Phoebe鑫1 小时前
数据结构每日一题day11(链表)★★★★★
数据结构·算法
独好紫罗兰1 小时前
洛谷题单3-P2669 [NOIP 2015 普及组] 金币-python-流程图重构
开发语言·python·算法
跳跳糖炒酸奶1 小时前
第四章、Isaacsim在GUI中构建机器人(3):添加摄像头和传感器
人工智能·python·算法·ubuntu·机器人
青橘MATLAB学习1 小时前
钢管下料问题:基于Matlab的优化求解与实践
开发语言·数学建模·matlab·钢管下料
Jay_See1 小时前
Leetcode——239. 滑动窗口最大值
java·数据结构·算法·leetcode
肠胃炎2 小时前
真题246—矩阵计数
java·线性代数·算法·矩阵·深度优先
什码情况2 小时前
微服务集成测试 -华为OD机试真题(A卷、JavaScript)
javascript·数据结构·算法·华为od·机试
罗西的思考4 小时前
[2W字长文] 探秘Transformer系列之(23)--- 长度外推
人工智能·算法