五种最新优化算法(ALA、AE、DOA、GOA、OX)求解多个无人机协同路径规划( ...

海哥  金牌会员 | 2025-3-17 19:19:48 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 959|帖子 959|积分 2877

一、算法简介

(一)阿尔法进化(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​∥Pij​Pi,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}} \|                  ∥Pij​Pi,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−1​k=1∑K​Tk​(Pij​Pi,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​(Pij​Pi,j+1​             ​)=⎩               ⎨               ⎧​0,(S+D+Rk​)−dk​,∞,​if dk​>S+D+Rk​if D+Rk​<dk​≤S+D+Rk​if 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​≤hmax​otherwise​
此中                                              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∑n​Hij​
平滑资本评估转弯率和爬升率,这对于生成可行路径至关紧张。如下图 所示。

转弯角                                              ϕ                                       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             ×(Pij​Pi,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               ​Pij​Pi,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}}                  Pij​Pi,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)=a1​j=1∑n−2​ϕij​+a2​j=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∑4​bk​Fk​(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∑m​fi​(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.
三、部门代码及效果

  1. close all
  2. clear
  3. clc
  4. % dbstop if all error
  5. pop=100;%种群大小(可以修改)
  6. maxgen=200;%最大迭代(可以修改)
  7. %% 模型建立
  8. model=Create_Model();
  9. UAVnum=4;%无人机数量(可以修改)  必须与无人机的起始点保持一致
  10. %% 初始化每个无人机的模型
  11. for i=1:UAVnum
  12.     ModelUAV(i).model=model;
  13. end
  14. %% 第一个无人机 起始点
  15. start_location = [120;200;100];
  16. end_location = [800;800;150];
  17. ModelUAV(1).model.start=start_location;
  18. ModelUAV(1).model.end=end_location;
  19. %% 第二个无人机 起始点
  20. start_location = [400;100;100];
  21. end_location = [900;600;150];
  22. ModelUAV(2).model.start=start_location;
  23. ModelUAV(2).model.end=end_location;
  24. %% 第三个无人机 起始点
  25. start_location = [200;150;150];
  26. end_location =[850;750;150];
  27. ModelUAV(3).model.start=start_location;
  28. ModelUAV(3).model.end=end_location;
  29. %% 第四个无人机 起始点
  30. start_location = [100;100;150];
  31. end_location = [800;730;150];
  32. ModelUAV(4).model.start=start_location;
  33. ModelUAV(4).model.end=end_location;
  34. %% 第5个无人机 起始点
  35. % start_location = [500;100;130];
  36. % end_location = [850;650;150];
  37. % ModelUAV(5).model.start=start_location;
  38. % ModelUAV(5).model.end=end_location;
  39. % %% 第6个无人机 起始点
  40. % start_location = [100;100;150];
  41. % end_location =   [800;800;150];
  42. % ModelUAV(6).model.start=start_location;
  43. % ModelUAV(6).model.end=end_location;
复制代码
部门效果:

ALA:





AE:





DOA:





GOA:





OX:





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



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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

海哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表