路径规划|多目标海洋捕食者算法(MOMPA)求解最短路径问题(Matlab代码实现)

 💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰

🚀支持:🎁🎁🎁如果觉得博主的文章还不错或者您用得到的话,可以关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!

                                                           

📋📋📋本文目录如下:⛳️⛳️⛳️

目录

1 概述

2 海洋捕食者算法

3 Matlab部分数值实验

5 多目标海洋捕食者算法(MOMPA)求解旅行商问题

5.1 旅行商知识

5.2 运行结果

6 Matlab代码实现


1 概述

本文提出了最近提出的海洋捕食者算法(MPA)的多目标版本,称为多目标海洋捕食者算法(MOMPA)。在此算法中,引入了一个外部归档组件来存储到目前为止找到的非主导帕累托最优解。基于精英选择方法,提出一种顶级捕食者选择机制,从档案中选择有效的解决方案作为顶级捕食者,模拟捕食者的觅食行为。利用CEC2019多模态多目标基准函数对所提算法的性能进行了评价,并与9种最先进的多目标元启发式算法进行了比较。此外,利用7个多目标工程设计问题(车侧撞击问题、齿轮系设计问题、焊接梁设计问题、盘式制动器设计问题、两条桁架设计问题、弹簧设计问题和悬臂梁设计问题)进一步验证了所提算法的有效性。结果表明,所提出的MOMPA算法不仅提供了非常有竞争力的结果,而且优于其他算法。

与单目标相比,多目标的最大优点是可以同时处理多个冲突目标,并获得一组帕累托最优解。解决方案集包含更有效的信息,可以为决策者提供更多的参考信息。与多目标算法相对应的单目标算法也相应发展起来。主要原因是单目标算法在解决复杂的多目标问题方面存在许多障碍。海洋捕食者算法(MPA)是Faramarzi等人最近提出的一种基于群智能的算法。该算法模拟了海洋捕食者的猎物狩猎行为,其中捕食者根据与猎物的相遇率,采用最优觅食策略。MPA算法具有参数少、计算速度快、计算精度高等特点,目前还没有多目标版本,因此可以考虑将其转换为多目标版本来解决多目标优化问题。各种多目标优化算法已在文献中列出,但根据NF定理,从逻辑上证明没有一种算法可以解决所有优化的问题,因此研究人员开发新的算法或增强现有算法的性能。该定理不仅适用于单目标优化算法,也适用于多目标优化算法。这也是这项工作的动机。基于海洋捕食者算法,提出一种新的多目标优化算法,即多目标海洋捕食者算法(MOMPA)。

2 海洋捕食者算法

本文结构如下:

1.存档组件集成到MPA中,以存储迄今为止发现的非主导帕累托最优解决方案。

2.提出一种顶级捕食者选择机制,从档案中选择相邻解数最少的解,并确定其作为群体搜索的指南。

3.通过使用上述两个组成部分,提出了MPA的多目标版本。

4.使用CEC2019多目标测试套件和七个工程设计问题评估了MOMPA的性能,并与几种最先进的多目标算法进行了比较。

本文的其余部分组织如下:第2节介绍了多目标优化问题的基本概念以及在多目标优化领域所做的相关研究工作。第3节介绍了海洋捕食者算法,并提出了一种多目标海洋捕食者算法。第4节介绍了多目标海洋捕食者算法。第5节介绍了结果和讨论。在第6节中,使用了七个工程示例来测试MOMPA的性能。此外,实验结果在第7节中进行了深入分析。最后,第8部分是对未来工作的总结和展望。

最近,Faramarzi等人提出了一种新的高效元启发式算法,称为海洋捕食者算法。该算法模仿海洋捕食者的行为,它们使用Levy和Brownian运动作为它们捕食猎物的最佳觅食机制。捕食者的觅食行为主要有三个阶段,根据捕食者和猎物之间的速度比不同而划分,Levy和Brownian运动将在这三个阶段交替进行,图1显示了捕食者三阶段觅食的示意图。当捕食者和猎物之间的速度比v很小,等于0.1时,捕食者的最佳失落策略是Levy运动,无论此时猎物是Levy运动还是布朗运动。此阶段是算法的探索阶段。当v近似等于1时,捕食者和猎物的速度相等,如果猎物以Levy步移,则捕食者以布朗步移。当速度比v大于10时,捕食者的最佳觅食策略是保持原位,而不管猎物的步长如何。

海洋捕食者具有很强的记忆力,使它们能够记住每次成功捕食的位置。此过程是通过在 MPA 中存储来实现的。迭代后,将每个解决方案与当前最佳解决方案进行比较,如果存在更好的解决方案,则将其替换为当前最佳解决方案。MPA 的算法流程如算法 2所示。

数学模型:

\text { Elite }=\left[\begin{array}{cccc} X_{1,1}^{I} & X_{1,2}^{I} & \cdots & X_{1, D}^{I} \\ X_{2,1}^{I} & X_{2,2}^{I} & \cdots & X_{2, D}^{I} \\ \vdots & \vdots & \vdots & \vdots \\ \vdots & \vdots & \vdots & \vdots \\ \vdots & \vdots & \vdots & \vdots \\ X_{N, 1}^{I} & X_{N, 2}^{I} & \cdots & X_{N, D}^{I} \end{array}\right]_{N \times D}

\text { Prey }=\left[\begin{array}{cccc} X_{1,1} & X_{1,1} & \cdots & X_{1, D} \\ X_{2,1} & X_{2,2} & \cdots & X_{2, D} \\ X_{3,1} & X_{3,2} & \cdots & X_{3, D} \\ \vdots & \vdots & \vdots & \vdots \\ \vdots & \vdots & \vdots & \vdots \\ X_{N, 1} & X_{N, 2} & \cdots & X_{N, D} \end{array}\right]_{N \times D}

\text { Elite }=\left[\begin{array}{cccc} X_{1,1}^{1} & X_{1,2}^{1} & \cdots & X_{1, D}^{1} \\ X_{2,1}^{2} & X_{2,2}^{2} & \cdots & X_{2, D}^{2} \\ \vdots & \vdots & \vdots & \vdots \\ X_{k, 1}^{k} & X_{k, 2}^{k} & \cdots & X_{k, D}^{k} \\ X_{k+1,1}^{1} & X_{k+1,2}^{1} & \cdots & X_{k+1, D}^{1} \\ \vdots & \vdots & \vdots & \vdots \\ X_{N, 1}^{m} & X_{N, 2}^{m} & \cdots & X_{N, D}^{m} \end{array}\right]_{N \times D}

详细数学模型及解释见第4部分。

3 Matlab部分数值实验

 

参考文献

[1] X. Zhang, Y. Tian, R. Cheng, and Y. Jin, An efficient approach to
nondominated sorting for evolutionary multiobjective optimization, IEEE
Transactions on Evolutionary Computation, 2015, 19(2): 201-213.
[2] X. Zhang, Y. Tian, R. Cheng, and Y. Jin, A decision variable
clustering based evolutionary algorithm for large-scale many-objective
optimization, IEEE Transactions on Evolutionary Computation, 2018, 22(1):
97-112.

5 多目标海洋捕食者算法(MOMPA)求解旅行商问题

5.1 旅行商知识

我这篇博客总结过,很详细:运筹学——图论与最短距离

5.2 运行结果

function Draw_Path(Path,X)
%{输入:待画路线  城市的坐标位置;输出:旅行商的路线}

R =  [Path(1,:) Path(1,1)]; % 一共有n个城市,但是这里R有n+1个值,是为了让路径最后再回到起点
A = X(R,:);            %根据R将坐标顺序存入A中
row = size(A,1);       %实际上row=n+1

%% 绘图
figure;
hold on
plot(X(:,1),X(:,2),'ro')   %X(:,1),X(:,2)分别代表的X轴坐标和Y轴坐标

for i = 2:row
    [arrowx,arrowy] = dsxy2figxy(gca,A(i-1:i,1),A(i-1:i,2));    %dsxy2figxy坐标转换函数,记录两个点
    annotation('textarrow',arrowx,arrowy,'HeadWidth',3,'color',[1,0,1]); %将这两个点连接起来
end

hold off

%% 绘制路线图
figure(2);
xlabel('横坐标x')
ylabel('纵坐标y')
title('旅行商轨迹图')


end

6 Matlab代码实现

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 海洋捕食者算法是一种基于自然选择中的捕食行为的优化算法,该算法模拟了自然界中海洋捕食者和被捕食者之间的进化竞争过程和群体智能协作机制。这种算法通常应用于求解目标优化问题和复杂的非线性优化问题,能够快速找到最优解或者接近最优解的解决方案。 基于MATLAB平台的海洋捕食者算法实现,通常包括以下几个步骤:首先,定义问题的目标函数并确定优化问题的约束条件。然后,设计合适的初始值和超参数进行参数初始化。接着,构建捕食者群和被捕食者群,进行种群初始化。在进行迭代优化过程中,每一次迭代时捕食者采用算术交叉和变异操作来更新个体位置,被捕食者则采用簇操作来保持群体的多样性。根据更新后的个体位置,重新更新目标函数值并比较各个个体的适应度,确定新的捕食者和被捕食者个体,然后重复进行迭代过程,直到满足收敛准则或者达到最大迭代次数为止。 海洋捕食者算法具有计算效率高、全局搜索能力强、易于实现等优点,因此被广泛地应用于解决各种复杂的优化问题,特别适用于搜索范围比较大、局部极值多的优化问题。 ### 回答2: 海洋捕食者算法(Marine Predators Algorithm,简称MPA)是一种仿生优化算法,其目的是解决复杂的优化问题。该算法的灵感来源于海洋生物中的捕食者行为。MPA 将优化问题看作是一群捕食者海洋中寻找猎物的过程,其中捕食者代表搜索者,而猎物代表优化问题中的最优解。算法过程中,捕食者会遵循一定的策略,如寻找和追踪猎物,以及适当地探索和利用环境信息等,来寻找最优解。 算法实现中,将搜索空间看作是海洋,将目标函数值看作是捕食者海洋中的位置。通过仿真捕食者与猎物之间的交互,不断地更新捕食者的位置和状态,达到优化目标的最佳解。 该算法在优化解决方案中具有一定优势,如良好的搜索效率、高度自适应和能够处理复杂的非线性问题等。同时,该算法也有一些局限性,如在大规模问题中容易出现陷入局部最优等问题。 MATLAB 是一种科学计算软件,其拥有丰富的数学库和算法库,对海洋捕食者算法实现提供了良好的支持。利用MATLAB语言实现MPA 算法,可以更加灵活和高效地完成算法的相关操作。在实际应用中,通过修改捕食者的运动规则、适应度函数等参数,可以实现不同场景下的优化问题的求解。 ### 回答3: 海洋捕食者算法是一种模拟海洋生态系统中捕食者和被捕食者之间竞争和适应的算法,可以应用于优化问题的求解。 该算法使用一个群体搜寻的方法,在每次迭代中,通过对群体中每个个体的位置和适应度进行更新和调整,最终得到最优解。 在该算法中,捕食者和被捕食者的角色由不同的种群扮演,它们通过复杂的捕食关系进行交互,在模拟生态系统中的自然选择和适应性进化机制。 使用Matlab实现海洋捕食者算法时,需要进行两个主要的步骤:种群初始化和迭代搜索。在种群初始化中,可以随机生成一些初始捕食者和被捕食者。在迭代搜索中,通过不断地更新个体位置和适应度函数,来确定每个个体的适应性大小,从而让优秀的个体被保留,不好的个体被淘汰。 总的来说,海洋捕食者算法是一种有效的解决优化问题的算法,它通过模拟生态系统中复杂的捕食关系,实现了较好的优化效果。在Matlab中的实现也相对简单,可以通过一些编程技巧和常用的函数库来实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值