基于青蒿素优化算法(Artemisinin Optimization Algorithm, AOA)的多无人机协同三维路径规划(提供MATLAB代码)

一、青蒿素优化算法介绍

青蒿素优化算法(Artemisinin Optimization Algorithm, AOA)是2024年提出的一种受青蒿素抗疟疾特性启发的元启发式优化算法。青蒿素是一种从中草药青蒿中提取的化合物,因其在治疗疟疾方面的显著效果而闻名。AOA算法的设计者将青蒿素的这一特性抽象为优化策略,用于解决工程和科学中的优化问题。

1.算法原理

青蒿素优化算法的核心思想是模拟青蒿素在体内的分布和作用机制,通过模仿其在对抗疟疾时的搜索和攻击策略来寻找问题的最优解。算法中的每个解被视为一个"青蒿素分子",而搜索空间则相当于疟疾病原体所在的环境。

2.算法描述:

  • 搜索代理(Search Agents):在AO算法中,每个搜索代理代表了一个潜在的解决方案,它们在解空间中搜索最优解。
  • 适应度评估(Fitness Evaluation):根据问题的具体目标,评估每个搜索代理的性能。
  • 全面消除策略(Comprehensive Elimination Strategy) :通过模拟药物扩散,引导搜索代理进行全局探索,以快速识别解空间中的潜在区域。
  • 局部清除策略(Local Clearance Strategy) :在全面消除后,算法转向局部搜索,以精细化搜索过程并提高解的质量。

  • 后期巩固策略(Post-Consolidation Strategy) :为了应对可能的复发,通过特定的机制增强算法的多样性,避免过早收敛。

  • 概率系数(Probabilistic Coefficient):引入概率系数来模拟患者对药物的不同反应,增加算法的适应性和灵活性。

  • 信息交叉(Information Crossover):在后期巩固阶段,通过信息交叉机制,增强搜索代理的探索能力,以逃离局部最优。

3.算法流程:

  1. 初始化阶段(Initialization Phase)

    • 随机初始化一组搜索代理(agents),这些代理构成了算法的解空间。
    • 评估每个代理的适应度(fitness),并找出当前最优解。
  2. 全面消除阶段(Comprehensive Elimination Phase)

    • 模拟青蒿素在治疗初期的高剂量给药,以快速减少疟原虫数量。
    • 更新搜索代理的位置,模拟药物在人体内的扩散,调整搜索步长。
  3. 局部清除阶段(Local Clearance Phase)

    • 模拟治疗中后期降低药物剂量,以清除剩余的疟原虫。
    • 通过更新策略,使算法在已知区域内进行精确解的搜索,增强局部开发能力。
  4. 后期巩固阶段(Post-Consolidation Phase)

    • 考虑到疾病复发的可能性,引入策略以增强算法逃离局部最优的能力。
    • 通过信息交叉(information crossover)等机制,防止算法陷入局部最优。
  5. 迭代更新(Iteration Update)

    • 在每次迭代中,根据上述三个阶段的策略更新搜索代理的位置。
    • 评估新的适应度值,并更新最优解。
  6. 终止条件(Termination Condition)

    • 当达到最大迭代次数或其他预设的终止条件时,算法停止。
    • 返回找到的最优解。

4.算法特点

  • 自适应性:AOA算法能够根据搜索进程动态调整搜索策略,以适应不同阶段的优化需求。
  • 鲁棒性:由于其模仿的青蒿素作用机制,AOA算法在面对复杂和多变的优化问题时表现出较好的鲁棒性。
  • 简单性:算法的实现相对简单,易于编码和调整,适用于各种优化问题。

5.参考文献

1 Yuan C , Zhao D , Heidari A A ,et al.Artemisinin optimization based on malaria therapy: Algorithm and applications to medical image segmentationJ.Displays, 2024, 84.DOI:10.1016/j.displa.2024.102740.

二、无人机(UAV)三维路径规划

单个无人机三维路径规划数学模型参考如下文献:

Phung M D , Ha Q P . Safety-enhanced UAV Path Planning with Spherical Vector-based Particle Swarm OptimizationJ. arXiv e-prints, 2021.

每个无人机的目标函数由路径长度成本,安全性与可行性成本、飞行高度成本和路径平滑成本共同组成:

2.1路径长度成本

路径长度成本由相邻两个节点之间的欧氏距离和构成,其计算公式如下:

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

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

2.3路径飞行高度成本

飞行高度成本通过如下公式计算所得:

2.4路径平滑成本

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

转弯角度的计算公式为:

爬坡角度的计算公式为:

平滑成本的计算公式为:

2.5总成本(目标函数)

总成本由最优路径成本,安全性与可行性成本、飞行高度成本和路径平滑成本的线性加权所得。其中,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;



相关推荐
小雨下雨的雨4 小时前
井字棋AI机器人实现详解 - Minimax算法实战-鸿蒙PC Electron框架完成
前端·人工智能·算法·华为·electron·鸿蒙
xieliyu.6 小时前
Java算法精讲:双指针(三)
java·开发语言·算法
一条小锦吕*7 小时前
基于Spring Boot + 数据可视化 + 协同过滤算法的推荐系统设计与实现(源码+论文+部署全讲解)
spring boot·算法·信息可视化
如竟没有火炬8 小时前
最大矩阵——单调栈
数据结构·python·线性代数·算法·leetcode·矩阵
Multipath7128 小时前
无人区不掉线:多链路聚合路由,为环塔拉力赛筑起“空中通讯走廊”
网络·5g·安全·无人机·实时音视频
8Qi89 小时前
LeetCode 1143 & 718:最长公共子序列 / 最长重复子数组
算法·leetcode·职场和发展·动态规划
绿算技术9 小时前
万卡推理集群存储选型分析:从核心架构到应用视角
大数据·科技·算法·架构
神仙别闹10 小时前
基于 MATLAB DCT 的图像编码器并进行调试分析
matlab
想吃火锅100510 小时前
【leetcode】1.两数之和js版
javascript·算法·leetcode