基于海市蜃楼算法(Fata Morgana Algorithm ,FATA)的多无人机协同三维路径规划(提供MATLAB代码)

一、海市蜃楼算法

海市蜃楼算法(Fata Morgana Algorithm ,FATA)是2024年提出一种新型的群体智能优化算法,它的设计灵感来源于自然现象中的海市蜃楼形成过程。FATA算法通过模仿光线在不均匀介质中的传播方式,提出了两种核心策略------海市蜃楼光过滤原则(MLF)和光传播策略(LPS)------来优化搜索过程,增强算法的全局搜索能力和局部开发能力。

1.FATA算法的主要特点:

  1. 基于物理现象的建模

    FATA算法模拟了光线在不同密度介质中的传播和反射过程,将这一自然现象转化为优化策略,以此来指导算法中的种群搜索和个体更新。

  2. 海市蜃楼光过滤原则(MLF)

    MLF策略是FATA算法中用于种群搜索的策略。它结合了定积分原理来评估种群中个体的质量,并通过计算种群适应度函数的积分值来指导种群的更新,以此来筛选出有助于形成"海市蜃楼"(即优化解)的"光线"个体。

  3. 光传播策略(LPS)

    LPS策略是FATA算法中用于个体搜索的策略,它包括折射、反射和全内反射三种策略。这些策略共同指导个体在搜索空间中的移动,以探索新的潜在解,并增强算法的局部搜索能力。

  4. 平衡全局搜索与局部搜索

    FATA算法通过MLF和LPS策略的有机结合,平衡了全局搜索和局部搜索的能力。这种平衡有助于算法在保持广泛探索的同时,也能深入开发有前景的搜索区域。

  5. 自适应搜索

    算法中的MLF和LPS策略可以根据搜索过程中的实时信息自适应地调整搜索方向和步长,这有助于算法在复杂的搜索空间中灵活应对,并有效避免陷入局部最优解。

  6. 适用于复杂优化问题

    FATA算法不仅适用于连续优化问题,还能够处理多模态、高维和不可微分的复杂优化问题。这使得FATA算法在工程优化、机器学习和其他领域中具有广泛的应用潜力。

2.算法步骤


FATA算法的步骤可以概括为:

  1. 初始化:设置算法参数,包括种群大小、维度、最大迭代次数等,并随机初始化种群。
  2. 适应度评估:计算种群中每个个体的适应度。
  3. MLF策略:根据确定积分原理,评估种群的整体质量,并选择形成海市蜃楼的个体。
  4. LPS策略
    • 光折射策略:模拟光在不同密度介质中的折射过程,更新个体位置。
    • 光的全内反射策略:模拟光在介质中的全内反射过程,使种群向相反方向探索。
  5. 更新种群:根据MLF和LPS策略的结果,更新种群中的个体。
  6. 迭代:重复步骤2-5,直到达到最大迭代次数或满足其他停止条件。
  7. 输出最优解:返回找到的最优解或最优解集合。

参考文献:

1\]Ailiang Qi, Dong Zhao, Ali Asghar Heidari, Lei Liu, Yi Chen, Huiling Chen, FATA: An Efficient Optimization Method Based on Geophysics, Neurocomputing - 2024, DOI: https://doi.org/10.1016/j.neucom.2024.128289. ## 二、无人机(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]=eco(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/49804972dd48420bb6aee5163ef80548.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ed4180389b3a409199b14d7ca277b1c9.png)

相关推荐
.54820 小时前
## Sorting(排序算法)
python·算法·排序算法
wuweijianlove20 小时前
算法的平均复杂度建模与性能回归分析的技术7
算法·数据挖掘·回归
子琦啊20 小时前
【算法复习】字符串 | 两个底层直觉,吃透高频题
linux·运维·算法
code_pgf1 天前
Octo 算法详解-开源通用机器人策略模型技术报告
算法·机器人·开源
嘻嘻哈哈樱桃1 天前
牛客经典101题题解集--动态规划
java·数据结构·python·算法·职场和发展·动态规划
脱氧核糖核酸__1 天前
LeetCode热题100——234.回文链表(两种解法)
c++·算法·leetcode·链表
IronMurphy1 天前
【算法四十二】118. 杨辉三角 198. 打家劫舍
算法
电科一班林耿超1 天前
第 16 课:动态规划专题(二)—— 子序列与子数组问题:面试最高频的 DP 题型
数据结构·算法·动态规划
生信研究猿1 天前
leetcode 416. 分割等和子集
算法·leetcode·职场和发展
狗哥哥1 天前
面包屑自动推导的算法设计:从“最短路径匹配”到工程可落地
算法·架构