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

devtools/2024/12/23 7:55:02/

一、麋鹿群优化算法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路径长度成本

路径长度成本由相邻两个节点之间的欧氏距离和构成,其计算公式如下:
在这里插入图片描述

2.2路径安全性与可行性成本

在这里插入图片描述

路径安全性与可行性成本通过下式计算:

在这里插入图片描述

2.3路径飞行高度成本

在这里插入图片描述

飞行高度成本通过如下公式计算所得:
在这里插入图片描述
在这里插入图片描述

2.4路径平滑成本

在这里插入图片描述

投影向量通过如下公式计算:

在这里插入图片描述

转弯角度的计算公式为:
在这里插入图片描述

爬坡角度的计算公式为:

在这里插入图片描述

平滑成本的计算公式为:
在这里插入图片描述

2.5总成本(目标函数)

在这里插入图片描述

总成本由最优路径成本,安全性与可行性成本、飞行高度成本和路径平滑成本的线性加权所得。其中,b为加权系数。

三、实验结果

在三维无人机路径规划中,无人机的路径由起点,终点以及起始点间的点共同连接而成。因此,自变量为无人机起始点间的各点坐标,每个无人机的目标函数为总成本(公式9)。本文研究3个无人机协同路径规划,总的目标函数为3个无人机的总成本之和。

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;

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

四、完整MATLAB代码见下方名片


http://www.ppmy.cn/devtools/144626.html

相关文章

duilib.dll报错崩溃?一文学会如何解决!

duilib.dll是一个动态链接库(DLL)文件,属于DuiLib(DirectUI Library)项目的核心组件。DuiLib是一个开源的C UI框架,专为Windows应用程序提供高效、灵活和可定制的用户界面解决方案。 duilib.dll包含了一系…

如何将 Java 微服务引入云

所有公司都是软件公司,企业将始终面临保持用户和应用程序之间集成可扩展、高效、快速和高质量的挑战。为了解决这个问题,云、微服务和其他现代解决方案越来越多地出现在架构决策中。 问题是,Java 是否准备好在企业环境中处理这些不同的概念&…

Python解释器和PyCharm详解

目录 1.什么是Python解释器? Python解释器的类型和特性 Python解释器的优势 2.什么工具可以写Python文件? 3.为什么Python解释器和PyCharm不在同一个网站? 1.什么是Python解释器? Python解释器‌是Python程序运行的核心,它的主要作用是将Python代码转换为…

游戏引擎学习第54天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾 我们现在正专注于在游戏世界中放置小实体来代表所有的墙。这些实体围绕着世界的每个边缘。我们有活跃的实体,这些实体位于玩家的视野中,频繁更新,而那些离玩家较远的实体则以较低的频率运…

条款32 使用初始化捕获来移动对象到闭包中

目录 一、初始化捕获 二、C14之前的替代方案1 三、C14之前的替代方案2 一、初始化捕获 auto pw std::make_unique<Widget>(); auto func [pw std::move(pw)]{ return pw->isValidated() && pw->isArchived(); }; 二、C14之前的替代方案1 原理&…

端口状态检查工具portchecker.io

什么是 portchecker.io ? portchecker.io 是一个开源 API&#xff0c;用于检查指定主机名或 IP 地址上的端口可用性。它非常适合开发人员和网络管理员&#xff0c;可帮助排除网络设置故障、验证防火墙规则并评估潜在接入点。 软件的作用非常简单&#xff0c;在老苏看来&#x…

GNU Octave:特性、使用案例、工具箱、环境与界面

目录 1. 基本特性 2. 使用示例 3. 主要模块与工具箱 4. 环境与界面 更多学术知识 GNU Octave 是一个高水平的编程语言和环境&#xff0c;主要用于数值计算&#xff0c;特别是在科学和工程领域。它与 MATLAB 具有高度的兼容性&#xff0c;因此许多 MATLAB 的代码可以直接在…

Hmsc包开展群落数据联合物种分布模型分析通用流程(Pipelines)

HMSC&#xff08;Hierarchical Species Distribution Models&#xff09;是一种用于预测物种分布的统计模型。它在群落生态学中的应用广泛&#xff0c;可以帮助科学家研究物种在不同环境条件下的分布规律&#xff0c;以及预测物种在未来环境变化下的潜在分布范围。 举例来说&a…