多无人机动态避障路径规划研究:基于壁虎优化算法GJA的多无人机动态避障路径规划研究(可以自定义无人机数量及起始点),MATLAB代码

一、壁虎优化算法

壁虎优化算法(Gekko Japonicus Algorithm, GJA )是2025年11月最新发表在 JCR 1区、中科院3区期刊 Journal of Bionic Engineering 上的一种新型群智能优化算法。算法的灵感来自于多疣壁虎(Gekko japonicus )在自然界中的捕食策略和生存行为。该论文的作者包括 Zhang Ke, Zhao Hongyang, Li Xingdong 等人。

GJA 算法的核心机制与数学模型

GJA 是一个基于种群的元启发式算法,其种群规模为 N N N,每个个体代表优化问题的一个候选解。在每一次迭代 t t t 中,每个个体 X i X_i Xi 都会依次经历以下四个独特的核心机制。

1. 初始化

在搜索空间的每一维上,采用均匀随机分布对个体进行初始化:

X i j = l b j + r a n d ( 0 , 1 ) × ( u b j − l b j ) , i = 1 , 2 , ... , N , j = 1 , 2 , ... , D X_{ij} = lb_j + rand(0,1) \times (ub_j - lb_j),\quad i=1,2,\dots,N,\ j=1,2,\dots,D Xij=lbj+rand(0,1)×(ubj−lbj),i=1,2,...,N, j=1,2,...,D

其中 l b j lb_j lbj 和 u b j ub_j ubj 分别为第 j j j 维的上下界, D D D 为维度数。


2. 混合移动策略 ------ 探索与开发中的Gaussian & Lévy双模运动

壁虎在捕食过程中展现了极为灵活的运动能力:远处发现猎物时,它会利用足部的黏附能力迅速向猎物爬行;而在接近目标时则会放慢速度,进行精细调整。GJA 通过结合 高斯扰动Lévy飞行 来对此进行数学建模。

采用高斯扰动和Lévy飞行的混合运动策略,其数学表达式为:

X i ′ = X i + α ⋅ N ( 0 , 1 ) ⋅ ( X b e s t − X i ) + β ⋅ L e ˊ vy ( λ ) ⋅ ( X b e s t − X r a n d ) X'{i} = X_i + \alpha \cdot N(0,1) \cdot (X{best} - X_i) + \beta \cdot \text{Lévy}(\lambda) \cdot (X_{best} - X_{rand}) Xi′=Xi+α⋅N(0,1)⋅(Xbest−Xi)+β⋅Leˊvy(λ)⋅(Xbest−Xrand)

其中:

  • X b e s t X_{best} Xbest ------ 当前全局最优位置;
  • N ( 0 , 1 ) N(0,1) N(0,1) ------ 标准高斯分布随机数,负责局部精细搜索(高斯扰动负责局部开发);
  • L e ˊ vy ( λ ) \text{Lévy}(\lambda) Leˊvy(λ) ------ 服从Lévy分布的随机步长,负责大范围探索(Lévy飞行负责全局探索);
  • α \alpha α、 β \beta β ------ 自适应调节系数。

这种双模设计平衡了算法的全局勘探能力与局部开发能力。


3. 嗅觉辅助引导机制 ------ 定向嗅探修正

壁虎不仅拥有高度特殊的视网膜,能精确定位运动猎物,还具备极为敏锐的嗅觉系统。猎物移动时释放的气味分子会在空气中扩散,壁虎利用嗅觉判断猎物的大致方位,并在发起攻击前通过嗅觉确认猎物信息,防止误捕。

GJA 在算法中对此建模,每隔 3个个体 引入一次制导修正:

if m o d ( i , 3 ) = 0 , V i = X i + A ⋅ ( X b e s t − X i ) \text{if } mod(i,3) = 0, \quad V_i = X_i + A \cdot (X_{best} - X_i) if mod(i,3)=0,Vi=Xi+A⋅(Xbest−Xi)

其中 A A A 为随迭代递减的引导强度系数。嗅觉引导机制降低了种群盲目搜索的概率,帮助个体在陷入歧途时获得方向修正。


4. 隐性团体趋利机制 ------ 信息素介导的精英吸引

壁虎群体能够分泌和感知信息素:高适性个体释放的信息素会吸引其他个体向该方向聚集。这是一种隐性的集体信息传递方式,而非直接的视觉跟随。

GJA 引入了排序指数 r a n k rank rank 来建模这种群体智慧行为:

X i n e w = X i + ϕ ⋅ e − r a n k ( i ) / N ⋅ ( X e l i t e k − X i ) X_i^{new} = X_i + \phi \cdot e^{-rank(i)/N} \cdot (X_{elite}^{k} - X_i) Xinew=Xi+ϕ⋅e−rank(i)/N⋅(Xelitek−Xi)

其中 ϕ \phi ϕ 是收缩因子, X e l i t e k X_{elite}^{k} Xelitek 是从排名前 k k k 的精英个体中随机选取的一个。该机制使得群体能够自发聚集于有利区域。


5. 尾巴自切突变机制 ------ 逃离局部最优的"壁虎断尾"

壁虎为应对捕食者或环境干扰,常采取截尾(尾巴自切)来分散威胁并获得逃生机会。GJA 将此策略引入算法,当个体明显偏离多个方向、极可能陷入局部最优时,通过"断尾"来摆脱早熟收敛。

尾部自切的突变公式为:

X i j = X b e s t , j + σ j ⋅ G ( γ ) X_{ij} = X_{best,j} + \sigma_{j} \cdot G(\gamma) Xij=Xbest,j+σj⋅G(γ)

该机制在解空间的选定维度上进行突变处理,将个体从不优的位置重置于全局最优附近,相当于增加了一个逃逸步骤,以降低算法陷入局部极值的风险。


🧬 算法伪代码

步骤 描述
1 初始化种群 X i X_i Xi,设置参数 N N N, T T T, α \alpha α, β \beta β, ϕ \phi ϕ, γ \gamma γ 等
2 While t < T t < T t<T do
3 计算每个个体的适应度值
4 更新全局最优解 X b e s t X_{best} Xbest
5 For 每个个体 i = 1 i = 1 i=1 to N N N do
6 阶段1:混合移动(高斯扰动 + Lévy飞行)
7 阶段2:嗅觉引导 (若 i % 3 = = 0 i \% 3 == 0 i%3==0,则执行制导修正)
8 阶段3:隐性趋利(基于信息素吸引的精英指导)
9 阶段4:尾部自切(若条件触发,执行突变)
10 边界处理与贪婪选择
11 End For
12 t = t + 1 t = t + 1 t=t+1
13 End While
14 输出 X b e s t X_{best} Xbest 及其适应度值

📚 核心参考文献

Zhang, K., Zhao, H., Li, X., Fu, C. D., & Jin, J. (2026). Gekko Japonicus Algorithm: A Novel Nature‑inspired Algorithm for Engineering Problems and Path Planning . Journal of Bionic Engineering , 23, 431--471.
DOI : 10.1007/s42235-025-00805-6


二、无人机(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路径长度成本

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

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

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

2.3路径飞行高度成本

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

2.4路径平滑成本

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

转弯角度的计算公式为:

爬坡角度的计算公式为:

平滑成本的计算公式为:

2.5总成本(目标函数)

总成本由最优路径成本,安全性与可行性成本、飞行高度成本和路径平滑成本的线性加权所得。其中,b为加权系数。

2.6 动态窗口法原理

动态窗口法的核心思想是在速度空间中搜索最优速度向量,用于无人机动态避障其核心步骤包括:

  1. 速度窗口采样 :根据无人机运动学约束,生成可行速度集 V s a m p l e V_{sample} Vsample;
  2. 轨迹预测:对每个采样速度,预测未来一段时间内的无人机轨迹;
  3. 评价函数计算:通过评价函数评估每条预测轨迹的优劣,筛选出最优轨迹对应的速度;
  4. 速度更新:将最优速度作为无人机的当前运动速度,完成局部路径规划。

评价函数包含目标趋近度避障安全性速度平滑性 三个指标,其表达式为:
G ( v , ω ) = α ⋅ h e a d i n g ( v , ω ) + β ⋅ d i s t ( v , ω ) + γ ⋅ v e l o c i t y ( v , ω ) G(v,\omega)=\alpha \cdot heading(v,\omega)+\beta \cdot dist(v,\omega)+\gamma \cdot velocity(v,\omega) G(v,ω)=α⋅heading(v,ω)+β⋅dist(v,ω)+γ⋅velocity(v,ω)

其中, α , β , γ \alpha,\beta,\gamma α,β,γ 为权重系数, h e a d i n g heading heading 表示轨迹与目标方向的夹角, d i s t dist dist 表示轨迹与障碍物的最小距离, v e l o c i t y velocity velocity 表示轨迹的速度大小。

三、实验结果

在三维无人机路径规划中,无人机的路径由起点,终点以及起始点间的点共同连接而成。因此,自变量为无人机起始点间的各点坐标,每个无人机的目标函数为总成本(公式9)。本文研究3个无人机协同路径规划,总的目标函数为3个无人机的总成本之和。

bash 复制代码
%% 第一个无人机 起始点
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;

figure
plot(Convergence_curve,'LineWidth',2)
xlabel('Iteration');
ylabel('Best Cost');
grid on;



相关推荐
listhi5202 小时前
MATLAB电力系统加权最小二乘法(WLS)状态估计
算法·matlab·最小二乘法
Epiphany.5562 小时前
树上dp问题
数据结构·算法
无籽西瓜a2 小时前
MD5算法原理、适用场景
java·后端·算法·哈希算法·md5
承渊政道2 小时前
【动态规划算法】(简单多状态dp问题入门与经典题型解析)
数据结构·c++·学习·算法·leetcode·macos·动态规划
fie88892 小时前
免疫优化算法在物流配送中心选址中的应用
算法·数学建模
GIS数据转换器2 小时前
延凡分布式光伏集中监控平台
人工智能·分布式·数据挖掘·数据分析·无人机·智慧城市
王老师青少年编程2 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【部分背包问题】:部分背包问题
c++·算法·贪心·csp·信奥赛·部分背包问题
九思十安2 小时前
HNU2026-算法设计与分析-笔记 3 摊还分析
笔记·算法
嘻嘻哈哈樱桃2 小时前
牛客经典101题题解集--哈希
java·数据结构·python·算法·leetcode·职场和发展·哈希算法