基于海市蜃楼算法(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)

相关推荐
鹿屿二向箔19 分钟前
阀门流量控制系统MATLAB仿真PID
开发语言·matlab
没有黑科技21 分钟前
0.雷达信号
matlab
序属秋秋秋21 分钟前
算法基础_基础算法【高精度 + 前缀和 + 差分 + 双指针】
c语言·c++·学习·算法
玉树临风ives22 分钟前
leetcode 2360 图中最长的环 题解
算法·leetcode·深度优先·图论
KeithTsui1 小时前
GCC RISCV 后端 -- 控制流(Control Flow)的一些理解
linux·c语言·开发语言·c++·算法
mNinGInG1 小时前
c++练习
开发语言·c++·算法
纪元A梦2 小时前
分布式锁算法——基于ZooKeeper的分布式锁全面解析
java·分布式·算法·zookeeper
Panesle2 小时前
广告推荐算法:COSMO算法与A9算法的对比
人工智能·算法·机器学习·推荐算法·广告推荐
月亮被咬碎成星星2 小时前
LeetCode[15]三数之和
数据结构·算法·leetcode
半盏茶香3 小时前
启幕数据结构算法雅航新章,穿梭C++梦幻领域的探索之旅——堆的应用之堆排、Top-K问题
java·开发语言·数据结构·c++·python·算法·链表