一、壁虎优化算法
壁虎优化算法(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 动态窗口法原理
动态窗口法的核心思想是在速度空间中搜索最优速度向量,用于无人机动态避障其核心步骤包括:
- 速度窗口采样 :根据无人机运动学约束,生成可行速度集 V s a m p l e V_{sample} Vsample;
- 轨迹预测:对每个采样速度,预测未来一段时间内的无人机轨迹;
- 评价函数计算:通过评价函数评估每条预测轨迹的优劣,筛选出最优轨迹对应的速度;
- 速度更新:将最优速度作为无人机的当前运动速度,完成局部路径规划。
评价函数包含目标趋近度 、避障安全性 和速度平滑性 三个指标,其表达式为:
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;


