一、算法简介
(一)阿尔法进化(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
(五)人工旅鼠算法(Artificial Lemming Algorithm, ALA)
人工旅鼠算法(Artificial Lemming Algorithm, ALA)是2025年提出的一种新型生物启发式优化算法,受旅鼠的四种典型举动启发:长距离迁徙、挖洞、觅食和躲避捕食者。该算法通过模仿这些举动来办理复杂的优化问题,具有较强的探索和开发能力。人工旅鼠优化算法(ALA )是2025年发表于SCITop期刊《Artificial Intelligence Review》的一种新型元启发式算法(智能优化算法) 。其灵感泉源于旅鼠在自然界中的四种举动:远程迁徙、挖洞、觅食和躲避捕食者。该算法通过对这四种举动进行数学建模,实现对问题的优化求解,在保持计算效率的同时更好地平衡勘探和开发,能有用应对过早收敛、探索不敷以及在高维、非凸搜索空间中缺乏妥当性等挑战。
参考文献:
[1]Xiao, Y., Cui, H., Khurma, R.A. et al. Artificial lemming algorithm: a novel bionic meta-heuristic technique for solving real-world engineering optimization problems. Artif Intell Rev 58, 84 (2025). https://doi.org/10.1007/s10462-024-11023-7
原文链接:https://blog.csdn.net/weixin_46204734/article/details/146268772
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=1∑n−1∥PijPi,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=1∑n−1k=1∑KTk(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<dk≤S+D+Rkif dk≤D+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={∣hij−2hmax+hmin∣,∞,if hmin≤hij≤hmaxotherwise
此中 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=1∑nHij
平滑资本评估转弯率和爬升率,这对于生成可行路径至关紧张。如下图 所示。
转弯角 ϕ i j \phi_{ij} ϕij 是两个一连路径段 P i j ′ P i , j + 1 ′ → \overrightarrow{P'_{ij}P'_{i,j+1}} Pij′Pi,j+1′ 和 P i , j + 1 ′ P i , j + 2 ′ → \overrightarrow{P'_{i,j+1}P'_{i,j+2}} Pi,j+1′Pi,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}) Pij′Pi,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+1′Pi,j+2′ ∥Pij′Pi,j+1′ ×Pi,j+1′Pi,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}} Pij′Pi,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 ∥Pij′Pi,j+1′ ∥zi,j+1−zij
然后,平滑资本计算为:
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=1∑n−2ϕij+a2j=1∑n−1∣ψij−ψj−1∣
此中 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=1∑4bkFk(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 Pij∈O,此中 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=1∑mfi(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:UAVnum
- ModelUAV(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;
复制代码 部门效果:

ALA:





AE:





DOA:





GOA:





OX:





四、完整MATLAB代码见下方名片
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |