六种最新优化算法(TOC、MSO、AE、DOA、GOA、OX)求解多个无人机协同路径规划(可以自定义无人机数量及起始点),MATLAB代码

ops/2025/3/17 19:58:02/

一、算法简介

(一)阿尔法进化(Alpha Evolution,AE)算法

阿尔法进化(Alpha Evolution,AE)算法是2024年提出的一种新型进化算法,其核心在于通过自适应基向量和随机步长的设计来更新解,从而提高算法的性能。
参考文献:
[1]Gao H, Zhang Q. Alpha evolution: An efficient evolutionary algorithm with evolution path adaptation and matrix generation. Engineering Applications of Artificial Intelligence, 2024, 137: 109202.
原文链接:https://blog.csdn.net/weixin_46204734/article/details/146267896

(二)梦境优化算法(Dream Optimization Algorithm, DOA)

梦境优化算法(Dream Optimization Algorithm, DOA)是一种新型的元启发式算法(智能优化算法),其灵感来源于人类梦境的启发。在有做梦经历的快速眼动睡眠期间,低频脑电波的功率降低,而高频脑电波的功率增加,这表明在做梦经历期间大脑的神经兴奋更大。梦境优化算法(DOA)通过模拟人类梦境中的记忆和遗忘过程,结合基本的记忆策略和遗忘补充策略,平衡探索和利用,从而在优化过程中有效地搜索全局最优解。该算法在不同的阶段采用不同的搜索策略,初期扩大搜索范围,中期平衡全局和局部搜索,后期精细调整解,具有较强的全局搜索能力和良好的收敛性能。
参考文献:
[1]Lang Y, Gao Y. Dream Optimization Algorithm (DOA): A novel metaheuristic optimization algorithm inspired by human dreams and its applications to real-world engineering problems[J]. Computer Methods in Applied Mechanics and Engineering, 2025, 436: 117718.

(三)牛优化( OX Optimizer,OX)算法

牛优化( OX Optimizer,OX)算法由 AhmadK.AlHwaitat 与 andHussamN.Fakhouri于2024年提出,该算法的设计灵感来源于公牛的行为特性。公牛以其巨大的力量而闻名,能够承载沉重的负担并进行远距离运输。这种行为特征可以被转化为优化过程中的优势,即在探索广阔而复杂的搜索空间时保持强大的鲁棒性。公牛不仅强壮,还具有灵活性、稳健性、适应性和协作能力等特点。这些特点使得OX优化器能够在不断变化的环境和优化需求中有效地找到最优解。
参考文献:
[1]Al Hwaitat AK, Fakhouri HN. The OX Optimizer: A Novel Optimization Algorithm and Its Application in Enhancing Support Vector Machine Performance for Attack Detection. Symmetry. 2024; 16(8):966. https://doi.org/10.3390/sym16080966

原文链接:https://blog.csdn.net/weixin_46204734/article/details/146278143

(四)山羊优化算法(Goat Optimization Algorithm, GOA)

山羊优化算法(Goat Optimization Algorithm, GOA)是2025年提出的一种新型生物启发式元启发式算法,灵感来源于山羊在恶劣和资源有限环境中的适应性行为。该算法旨在通过模拟山羊的觅食策略、移动模式和躲避寄生虫的能力,有效平衡探索和开发,以解决全局优化问题。
参考文献:
[1]nozari, hamed, and Agnieszka Szmelter-Jarosz. “Goat Optimization Algorithm: A Novel Bio-Inspired Metaheuristic for Global Optimization.” Applied Innovations in Industrial Management (AIIM), 2025.

原文链接:https://blog.csdn.net/weixin_46204734/article/details/146268590

(五)海市蜃楼搜索优化(Mirage Search Optimization, MSO)算法

海市蜃楼搜索优化(Mirage Search Optimization, MSO)算法是2025年提出的一种基于海市蜃楼物理现象的元启发式优化算法,于2025年2月在线发表在JCR一区、中科院2区SCI期刊《Advances in Engineering Software》上。海市蜃楼是一种常见的物理现象,其形成与气象和地理因素密切相关。太阳使地面温度上升,形成温度梯度,进而导致大气密度产生显著差异,造成大气中折射率的分层。光在大气中被折射,但大脑认为光是沿直线传播的,因此人们看到了物体的虚拟图像。MSO算法正是基于这一物理现象,通过模拟海市蜃楼的形成原理,设计了上蜃景策略和下蜃景策略,分别用于全局探索和局部开发,以实现对复杂优化问题的有效求解。
参考文献
[1]Jiahao He, Shijie Zhao, Jiayi Ding, Yiming Wang,Mirage search optimization: Application to path planning and engineering design problems,Advances in Engineering Software, Volume 203, 2025, 103883, https://doi.org/10.1016/j.advengsoft.2025.103883.

原文链接:https://blog.csdn.net/weixin_46204734/article/details/146268772

(六)龙卷风优化算法( Tornado Optimizer with Coriolis force ,TOC)

龙卷风优化算法( Tornado Optimizer with Coriolis force ,TOC) 是2025年提出的一种新型的基于自然启发的元启发式算法,其灵感来源于自然界中龙卷风的形成和演化过程。龙卷风的形成是一个复杂的自然现象,通常从雷暴或风暴中发展而来,并在地面上形成强烈的旋转气流。TOC 算法通过模拟龙卷风的形成、发展和消散过程,将其转化为优化问题中的搜索过程。
参考文献
[1]Braik, M., Al-Hiary, H., Alzoubi, H. et al. Tornado optimizer with Coriolis force: a novel bio-inspired meta-heuristic algorithm for solving engineering problems. Artif Intell Rev 58, 123 (2025). https://doi.org/10.1007/s10462-025-11118-9

原文链接:https://blog.csdn.net/weixin_46204734/article/details/146268242

2. 无人机路径规划数学模型

2.1 路径最优性

为了提高无人机的操作效率,规划的路径需要在特定的应用标准下达到最优。在我们的研究中,主要关注空中摄影、测绘和表面检查,因此选择最小化路径长度作为优化目标。由于无人机通过地面控制站(GCS)进行控制,飞行路径 X i X_i Xi 被表示为无人机需要飞越的一系列 n n n 个航路点的列表。每个航路点对应于搜索地图中的一个路径节点,其坐标为 P i j = ( x i j , y i j , z i j ) P_{ij} = (x_{ij}, y_{ij}, z_{ij}) Pij=(xij,yij,zij)。通过表示两个节点之间的欧几里得距离为 $| \overrightarrow{P_{ij}P_{i,j+1}} |,与路径长度相关的成本 F 1 F_1 F1 可以计算为:

F 1 ( X ) = ∑ j = 1 n − 1 ∥ P i j P i , j + 1 → ∥ F_1(X) = \sum_{j=1}^{n-1} \| \overrightarrow{P_{ij}P_{i,j+1}} \| F1(X)=j=1n1PijPi,j+1

2.2 安全性和可行性约束

除了最优性之外,规划的路径还需要确保无人机的安全操作,引导其避开操作空间中可能出现的威胁,这些威胁通常由障碍物引起。设 K K K 为所有威胁的集合,每个威胁被假设为一个圆柱体,其投影的中心坐标为 C k C_k Ck,半径为 R k R_k Rk,如下图 所示。
在这里插入图片描述

对于给定的路径段 ∥ P i j P i , j + 1 → ∥ \| \overrightarrow{P_{ij}P_{i,j+1}} \| PijPi,j+1 ,其相关的威胁成本与它到 C k C_k Ck 的距离 d k d_k dk 成正比。考虑到无人机的直径 D D D 和到碰撞区域的危险距离 S S S,威胁成本 F 2 F_2 F2 在障碍物集合 K K K 上计算如下:

F 2 ( X i ) = ∑ j = 1 n − 1 ∑ k = 1 K T k ( P i j P i , j + 1 → ) , F_2(X_i) = \sum_{j=1}^{n-1} \sum_{k=1}^K T_k(\overrightarrow{P_{ij}P_{i,j+1}}), F2(Xi)=j=1n1k=1KTk(PijPi,j+1 ),

其中

T k ( P i j P i , j + 1 → ) = { 0 , if  d k > S + D + R k ( S + D + R k ) − d k , if  D + R k < d k ≤ S + D + R k ∞ , if  d k ≤ D + R k T_k(\overrightarrow{P_{ij}P_{i,j+1}}) = \begin{cases} 0, & \text{if } d_k > S + D + R_k \\ (S + D + R_k) - d_k, & \text{if } D + R_k < d_k \leq S + D + R_k \\ \infty, & \text{if } d_k \leq D + R_k \end{cases} Tk(PijPi,j+1 )= 0,(S+D+Rk)dk,,if dk>S+D+Rkif D+Rk<dkS+D+Rkif dkD+Rk

在操作过程中,飞行高度通常被限制在给定的最小和最大高度之间,例如在调查和搜索应用中,需要相机以特定的分辨率和视场收集视觉数据,从而限制飞行高度。设最小和最大高度分别为 h min h_{\text{min}} hmin h max h_{\text{max}} hmax。与航路点 P i j P_{ij} Pij 相关的高度成本计算为:

H i j = { ∣ h i j − h max + h min 2 ∣ , if  h min ≤ h i j ≤ h max ∞ , otherwise H_{ij} = \begin{cases} |h_{ij} - \frac{h_{\text{max}} + h_{\text{min}}}{2}|, & \text{if } h_{\text{min}} \leq h_{ij} \leq h_{\text{max}} \\ \infty, & \text{otherwise} \end{cases} Hij={hij2hmax+hmin,,if hminhijhmaxotherwise

其中 h i j h_{ij} hij 表示相对于地面的飞行高度,如下图所示。
在这里插入图片描述

可以看出, H i j H_{ij} Hij 保持平均高度并惩罚超出范围的值。对所有航路点求和得到高度成本:

F 3 ( X ) = ∑ j = 1 n H i j F_3(X) = \sum_{j=1}^n H_{ij} F3(X)=j=1nHij

平滑成本评估转弯率和爬升率,这对于生成可行路径至关重要。如下图 所示。
在这里插入图片描述

转弯角 ϕ i j \phi_{ij} ϕij 是两个连续路径段 P i j ′ P i , j + 1 ′ → \overrightarrow{P'_{ij}P'_{i,j+1}} PijPi,j+1 P i , j + 1 ′ P i , j + 2 ′ → \overrightarrow{P'_{i,j+1}P'_{i,j+2}} Pi,j+1Pi,j+2 在水平面 Oxy 上的投影之间的角度。设 k → \overrightarrow{k} k 是 z 轴方向的单位向量,投影向量可以计算为:

P i j ′ P i , j + 1 ′ → = k → × ( P i j P i , j + 1 → × k → ) \overrightarrow{P'_{ij}P'_{i,j+1}} = \overrightarrow{k} \times (\overrightarrow{P_{ij}P_{i,j+1}} \times \overrightarrow{k}) PijPi,j+1 =k ×(PijPi,j+1 ×k )

因此,转弯角计算为:

ϕ i j = arctan ⁡ ( ∥ P i j ′ P i , j + 1 ′ → × P i , j + 1 ′ P i , j + 2 ′ → ∥ P i j P i , j + 1 ′ → ⋅ P i , j + 1 ′ P i , j + 2 ′ → ) \phi_{ij} = \arctan\left( \frac{\| \overrightarrow{P'_{ij}P'_{i,j+1}} \times \overrightarrow{P'_{i,j+1}P'_{i,j+2}} \|}{\overrightarrow{P_{ij}P'_{i,j+1}} \cdot \overrightarrow{P'_{i,j+1}P'_{i,j+2}}} \right) ϕij=arctan PijPi,j+1 Pi,j+1Pi,j+2 PijPi,j+1 ×Pi,j+1Pi,j+2

爬升角 ψ i j \psi_{ij} ψij 是路径段 P i j P i , j + 1 → \overrightarrow{P_{ij}P_{i,j+1}} PijPi,j+1 与其在水平面上的投影 P i j ′ P i , j + 1 ′ → \overrightarrow{P'_{ij}P'_{i,j+1}} PijPi,j+1 之间的角度,由下式给出:

ψ i j = arctan ⁡ ( z i , j + 1 − z i j ∥ P i j ′ P i , j + 1 ′ → ∥ ) \psi_{ij} = \arctan\left( \frac{z_{i,j+1} - z_{ij}}{\| \overrightarrow{P'_{ij}P'_{i,j+1}} \|} \right) ψij=arctan PijPi,j+1 zi,j+1zij

然后,平滑成本计算为:

F 4 ( X ) = a 1 ∑ j = 1 n − 2 ϕ i j + a 2 ∑ j = 1 n − 1 ∣ ψ i j − ψ j − 1 ∣ F_4(X) = a_1 \sum_{j=1}^{n-2} \phi_{ij} + a_2 \sum_{j=1}^{n-1} |\psi_{ij} - \psi_{j-1}| F4(X)=a1j=1n2ϕij+a2j=1n1ψijψj1

其中 a 1 a_1 a1 a 2 a_2 a2 分别是转弯角和爬升角的惩罚系数。

2.3 总体成本函数

2.3.1 单个无人成本计算

考虑到路径 X X X 的最优性、安全性和可行性约束, i i i无人机总体成本函数可以定义为以下形式:

f i ( X ) = ∑ k = 1 4 b k F k ( X i ) f_i(X) = \sum_{k=1}^4 b_k F_k(X_i) fi(X)=k=14bkFk(Xi)

其中 b k b_k bk 是权重系数, F 1 ( X i ) F_1(X_i) F1(Xi) F 4 ( X i ) F_4(X_i) F4(Xi) 分别是路径长度、威胁、平滑度和飞行高度相关的成本。决策变量是 X X X,包括 n n n 个航路点 P i j = ( x i j , y i j , z i j ) P_{ij} = (x_{ij}, y_{ij}, z_{ij}) Pij=(xij,yij,zij) 的列表,使得 P i j ∈ O P_{ij} \in O PijO,其中 O O O无人机的操作空间。根据这些定义,成本函数 F F F 是完全确定的,可以作为路径规划过程的输入。

2.3.2 多无人机总成本计算

若共有 m m m无人机,其总成本为单个无人机成本和,计算公式如下:
f i t n e s s ( X ) = ∑ i = 1 m f i ( X ) fitness(X) = \sum_{i=1}^mf_i(X) fitness(X)=i=1mfi(X)
参考文献:
[1] Phung M D , Ha Q P .Safety-enhanced UAV path planning with spherical vector-based particle swarm optimization[J].Applied Soft Computing, 2021(2):107376.DOI:10.1016/j.asoc.2021.107376.

三、部分代码及结果

close all
clear
clc
% dbstop if all error
pop=100;%种群大小(可以修改)
maxgen=200;%最大迭代(可以修改)%% 模型建立
model=Create_Model();
UAVnum=4;%无人机数量(可以修改)  必须与无人机的起始点保持一致%% 初始化每个无人机的模型
for i=1:UAVnumModelUAV(i).model=model;
end%% 第一个无人机 起始点
start_location = [120;200;100];
end_location = [800;800;150];
ModelUAV(1).model.start=start_location;
ModelUAV(1).model.end=end_location;
%% 第二个无人机 起始点
start_location = [400;100;100];
end_location = [900;600;150];
ModelUAV(2).model.start=start_location;
ModelUAV(2).model.end=end_location;
%% 第三个无人机 起始点
start_location = [200;150;150];
end_location =[850;750;150];
ModelUAV(3).model.start=start_location;
ModelUAV(3).model.end=end_location;
%% 第四个无人机 起始点
start_location = [100;100;150];
end_location = [800;730;150];
ModelUAV(4).model.start=start_location;
ModelUAV(4).model.end=end_location;
%% 第5个无人机 起始点
% start_location = [500;100;130];
% end_location = [850;650;150];
% ModelUAV(5).model.start=start_location;
% ModelUAV(5).model.end=end_location;
% %% 第6个无人机 起始点
% start_location = [100;100;150];
% end_location =   [800;800;150];
% ModelUAV(6).model.start=start_location;
% ModelUAV(6).model.end=end_location;

部分结果:
在这里插入图片描述

TOC:

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

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

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

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

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

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

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

在这里插入图片描述


http://www.ppmy.cn/ops/166601.html

相关文章

基于小波分析法的行波测距判断故障及定位故障Matlab仿真

微♥&#xff1a;“电击小子程高兴的MATLAB小屋”获取巨额优惠 1.模型简介 本仿真模型基于MATLAB/Simulink&#xff08;版本MATLAB 2017Ra&#xff09;软件。建议采用matlab2017 Ra及以上版本打开。&#xff08;若需要其他版本可联系代为转换&#xff09; 2.建模&#xff1a…

Vue3 Pinia $subscribe localStorage的用法 Store的组合式写法

Vue3 Pinia $subscribe 可以用来监视Stroe数据的变化 localStorage的用法 localStorage中只能存字符串&#xff0c;所有对象要选转成json字符串 定义store时&#xff0c;从localStorage中读取数据talkList可能是字符串也可能是空数组 Store的组合式写法 直接使用reactiv…

【NLP】10. 机器学习模型性能评估指标(含多类别情况), ROC,PRC

机器学习模型性能评估指标&#xff08;含多类别情况&#xff09; 1. 模型评估指标简介 在机器学习中&#xff0c;模型的性能评估非常重要。常用的模型评估指标有&#xff1a; 准确率&#xff08;Accuracy&#xff09;精度&#xff08;Precision&#xff09;召回率&#xff0…

专题地图的立体表达-基于QGIS和PPT的“千层饼”视图制作实践

目录 前言 一、QGIS准备基础数据 1、QGIS 相关插件 2、图层标绘操作 二、PPT中制作 1、调整图片的规格 2、设置旋转 3、添加文字 三、总结 前言 在信息爆炸的时代&#xff0c;数据的可视化呈现变得愈发关键&#xff0c;而专题地图作为传递地理空间信息的有力工具&#…

NET进行CAD二次开发之二

本文主要针对CAD 二次开发入门与实践:以 C# 为例_c# cad-CSDN博客的一些实践问题做一些补充。 一、DLL介绍 在 AutoCAD 中,accoremgd.dll、acdbmgd.dll 和 acmgd.dll 都是与.NET API 相关的动态链接库,它们在使用.NET 语言(如 C#、VB.NET)进行 AutoCAD 二次开发时起着关…

总结 HTTP 协议的基本格式, 相关知识以及抓包工具fiddler的使用

目录 1 HTTP是什么 2 HTTP协议格式 3 HTTP请求(Request) 3.1 认识URL 3.2 方法 3.3 认识请求"报头"(header) 3.3.1 Host 3.3.2 Content-Length 3.3.3 Content-Type 3.3.4 User-Agent (简称UA) 3.3.5 Referer 3.3.6 Cookie和Session 4 HTTP响应详解 4.…

外呼系统破局电话管控:AI电销机器人合规运营实战指南

随着运营商对电话卡管控日趋严格&#xff0c;某金融科技公司曾因单日外呼超限导致80%号码被封——这一案例暴露出AI电销机器人在效率与合规间的矛盾。但数据显示&#xff0c;采用合规策略的企业外呼接通率仍能保持38%以上&#xff0c;关键在于建立适配监管环境的智能外呼体系。…

PHP语法基础

PHP语法基础 一&#xff0c;变量 在PHP中&#xff0c;变量是存储数据的容器&#xff0c;其灵活性和动态类型系统是PHP的核心特性之一。以下是PHP变量的详细解析&#xff0c;涵盖声明、作用域、类型转换及最佳实践&#xff1a; 1. 变量基础 声明与命名规则 无需显式声明类型&…