基于海市蜃楼搜索优化(Mirage Search Optimization, MSO)算法的多个无人机协同路径规划(可以自定义无人机数量及起始点),MATLAB代码

一、海市蜃楼搜索优化算法

海市蜃楼搜索优化(Mirage Search Optimization, MSO)算法是2025年提出的一种基于海市蜃楼物理现象的元启发式优化算法,于2025年2月在线发表在JCR一区、中科院2区SCI期刊《Advances in Engineering Software》上。海市蜃楼是一种常见的物理现象,其形成与气象和地理因素密切相关。太阳使地面温度上升,形成温度梯度,进而导致大气密度产生显著差异,造成大气中折射率的分层。光在大气中被折射,但大脑认为光是沿直线传播的,因此人们看到了物体的虚拟图像。MSO算法正是基于这一物理现象,通过模拟海市蜃楼的形成原理,设计了上蜃景策略和下蜃景策略,分别用于全局探索和局部开发,以实现对复杂优化问题的有效求解。

算法原理

海市蜃楼是一种光学现象,其形成与气象和地理因素密切相关。太阳使地面温度上升,形成温度梯度,进而导致大气密度差异和折射率分层。光在大气中传播时发生折射,而人脑认为光沿直线传播,从而形成虚拟图像。MSO 算法正是基于这一物理现象,通过模拟光的折射和虚拟图像的形成,设计了两种更新策略来优化种群的位置。

算法策略

  1. 上蜃景策略:主要用于全局探索。当入射光在水平基准线的左边,或位于水平基准面法线右侧且满足 β < α < π/2 时,通过特定的公式更新个体位置,扩大搜索范围,避免陷入局部最优。
  2. 下蜃景策略:主要用于局部开发。当下蜃景观察到物体的放大虚像时,基于光路折射原理设计局部搜索模式。如果当前个体不是种群最优个体,按一定公式更新位置;如果是种群最优个体,则采用另一种更新方式,以在局部区域内精细搜索,提高解的精度。

算法模型

初始化

和其他群体优化算法一样,MSO 算法采用随机初始化方式。在 D 维搜索空间中,种群大小为 N 的个体位置初始化公式为:

X i , j = X min ⁡ , j + r a n d ( 0 , 1 ) × ( X max ⁡ , j − X min ⁡ , j ) X_{i,j} = X_{\min,j} + rand(0,1) \times (X_{\max,j} - X_{\min,j}) Xi,j=Xmin,j+rand(0,1)×(Xmax,jXmin,j)

其中, X i , j X_{i,j} Xi,j 表示第 i 个个体的第 j 维位置, X min ⁡ , j X_{\min,j} Xmin,j X max ⁡ , j X_{\max,j} Xmax,j 分别为第 j 维的最小和最大边界,rand(0,1) 为 [0,1) 区间的随机数。

位置更新模型
  1. 上蜃景策略位置更新:当满足入射光在水平基准面法线的右侧,且 β < α < π/2 时,海市蜃楼初始位置更新公式为:
    X i t + 1 = X i t + λ ⋅ f ( X i t ) − f ( X best t ) ∥ X i t − X best t ∥ ⋅ ( X i t − X best t ) X_i^{t+1} = X_i^t + \lambda \cdot \frac{f(X_i^t) - f(X_{\text{best}}^t)}{\|X_i^t - X_{\text{best}}^t\|} \cdot (X_i^t - X_{\text{best}}^t) Xit+1=Xit+λXitXbesttf(Xit)f(Xbestt)(XitXbestt)
    其中, X i t X_i^t Xit 为第 t 代第 i 个个体的位置, X best t X_{\text{best}}^t Xbestt 为第 t 代种群最优个体位置, λ \lambda λ 为步长因子,f 为适应度函数。

  2. 下蜃景策略位置更新

    • 如果当前个体不是种群最优个体:
      X i t + 1 = X i t + β ⋅ f ( X i t ) ∥ X i t − X best t ∥ ⋅ ( X best t − X i t ) X_i^{t+1} = X_i^t + \beta \cdot \frac{f(X_i^t)}{\|X_i^t - X_{\text{best}}^t\|} \cdot (X_{\text{best}}^t - X_i^t) Xit+1=Xit+βXitXbesttf(Xit)(XbesttXit)
    • 如果当前个体是种群最优个体:
      X i t + 1 = X i t + γ ⋅ f ( X i t ) ∥ X i t − X mean t ∥ ⋅ ( X mean t − X i t ) X_i^{t+1} = X_i^t + \gamma \cdot \frac{f(X_i^t)}{\|X_i^t - X_{\text{mean}}^t\|} \cdot (X_{\text{mean}}^t - X_i^t) Xit+1=Xit+γXitXmeantf(Xit)(XmeantXit)
      其中, β \beta β γ \gamma γ 为控制参数, X mean t X_{\text{mean}}^t Xmeant 为第 t 代种群个体位置的均值。

算法步骤

  1. 初始化:与其他群体优化算法一样,MSO采用随机初始化的方式,生成一定数量的候选解(个体),构成初始种群。
  2. 上蜃景策略:该策略具有全局探索能力,通过模拟海市蜃楼中光线在不同气象条件下的折射路径,使个体能够在全球范围内进行搜索,避免陷入局部最优解。具体来说,根据入射光的位置和角度,分为以下几种情况:
    • 当入射光在水平基准线的左边时,个体的位置更新遵循特定的折射规律。
    • 当入射光位于水平基准面法线右侧且满足β < α < π/2时,个体的位置更新公式会根据折射原理进行推导,以实现全局探索。
  3. 下蜃景策略:该策略具有局部开发能力,能够对当前解的邻域进行精细搜索,提高解的质量。下蜃景策略主要分为两种情况:
    • 如果当前个体不是种群的最优个体,其位置更新会参考种群中更优个体的信息,向更优区域靠近。
    • 如果当前个体是种群的最优个体,则在较小范围内进行局部扰动,进一步优化自身位置,以期找到更精确的最优解。
  4. 迭代更新:在每次迭代中,根据上蜃景和下蜃景策略更新个体位置后,计算每个个体的适应度值,并更新种群的最优解。重复这一过程,直到满足预设的终止条件(如最大迭代次数或适应度精度要求)。

算法优势

  • 全局与局部搜索平衡:通过上蜃景策略的全局探索和下蜃景策略的局部开发,MSO算法能够在优化过程中兼顾全局搜索和局部搜索,有效避免过早收敛到局部最优解,提高寻找全局最优解的能力。
  • 较强的适应性:适用于多种类型的优化问题,包括无约束优化、带约束优化以及实际工程设计问题等。
  • 高效的优化性能:在多个标准测试函数和实际应用问题上进行了验证,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.

二、无人机(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为加权系数。

三、实验结果

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

%% 第一个无人机 起始点
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;

5个无人机:
在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值