多旅行商问题:鹈鹕优化算法(Pelican Optimization Algorithm,POA)求解多仓库多旅行商问题MD-MTSP(提供Matlab代码)

news/2024/9/18 21:49:05 标签: 算法, matlab, 数学建模

一、鹈鹕优化算法

鹈鹕优化算法(Pelican Optimization Algorithm,POA)由Pavel Trojovský和Mohammad Dehghani 于2022年提出,该算法模拟了鹈鹕在狩猎过程中的自然行为。
在这里插入图片描述

鹈鹕很大,喙很长,喉咙里有一个大袋子,用来捕捉和吞咽猎物。这种鸟喜欢群体和社交生活,并以数百只鹈鹕为一组生活。鹈鹕的外观如下:它们的体重约为2.75至15公斤,高度约为1.06至1.83米,翼展约为0.5至3米。鹈鹕的食物主要由鱼类组成,更罕见的是青蛙,海龟和甲壳类动物;如果它非常饿,它甚至会吃海鲜。鹈鹕经常一起打猎。鹈鹕在确定猎物的位置后,从10-20米的高度潜入猎物。当然,一些物种也会在低海拔地区下降到它们的猎物。然后,它们在水面上展开翅膀,迫使鱼进入浅水区,以便它们可以轻松捕获鱼。当捕获鱼时,大量的水进入鹈鹕的喙,在吞下鱼之前将头部向前移动以除去多余的水。

1.1算法原理

POA模拟了鹈鹕在攻击和狩猎猎物时的行为和策略,分为两个阶段:

1.1.2逼近猎物(全局探索阶段)

在第一阶段,鹈鹕确定猎物的位置,然后向这个确定的区域移动。对这种鹈鹕的策略进行建模,可以进行搜索空间扫描,并发挥所提出的POA在发现搜索空间不同区域方面的探索能力。POA中的重要一点是,猎物的位置是在搜索空间中随机生成的。这增加了POA在精确搜索问题解决空间方面的探索能力。上述概念和鹈鹕向猎物位置移动的策略通过下面模型进行数学模拟。
在这里插入图片描述

1.1.3水面飞行(局部探索阶段)

在第二阶段,鹈鹕到达水面后,在水面上展开翅膀,将鱼向上移动,然后将猎物收集在喉咙袋中。这种策略导致攻击区域内更多的鱼被鹈鹕捕获。对鹈鹕的这种行为进行建模,使所提出的POA收敛到狩猎区域中更好的点。这个过程增加了本地搜索能力和POA的利用能力。从数学的角度来看,该算法必须检查鹈鹕位置附近的点,以收敛到更好的解决方案。鹈鹕在狩猎过程中的这种行为在数学建模为:
在这里插入图片描述

1.2算法流程

在这里插入图片描述
参考文献:
[1] Trojovský P, Dehghani M. Pelican Optimization Algorithm: A Novel Nature-Inspired Algorithm for Engineering Applications. Sensors (Basel). 2022 Jan 23;22(3):855.

二、多仓库多旅行商问题

多旅行商问题(Multiple Traveling Salesman Problem, MTSP)是著名的旅行商问题(Traveling Salesman Problem, TSP)的延伸,多旅行商问题定义为:给定一个𝑛座城市的城市集合,指定𝑚个推销员,每一位推销员从起点城市出发访问一定数量的城市,最后回到终点城市,要求除起点和终点城市以外,每一座城市都必须至少被一位推销员访问,并且只能访问一次,需要求解出满足上述要求并且代价最小的分配方案,其中的代价通常用总路程长度来代替,当然也可以是时间、费用等。多仓库多旅行商问题是其中一种多旅行商问题。
多旅行商问题(Multiple Traveling Salesman Problem, MTSP):单仓库多旅行商问题及多仓库多旅行商问题(含动态视频)

多仓库多旅行商问题(Multi-Depot Multiple Travelling Salesman Problem, MD-MTSP):𝑚个推销员从𝑚座不同的城市出发,访问其中一定数量的城市并且每座城市只能被某一个推销员访问一次,最后回到各自出发的城市,这种问题模型被称之为MD-MTSP。

三、求解结果

本文选取国际通用的TSP实例库TSPLIB中的测试集bayg29,bayg29中城市分布如下图所示:
在这里插入图片描述

本文采用鹈鹕优化算法求解bayg29:

StartPoint=[1 5 8 15];%起点(可以修改) 必须由小到大排列
Tnum=length(StartPoint);%旅行商个数
Dim=size(data,1)-Tnum;%维度
lb=-100;%下界
ub=100;%上界
fobj=@Fun;%计算总距离
SearchAgents_no=50; % 种群大小(可以修改)
Max_iteration=1000; % 最大迭代次数(可以修改)
[bestX,fMin,curve]=POA(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);  %鹈鹕优化算法

部分结果如下:

3.1结果一

当四个旅行商的起始点城市分别为1、5 、8 、15时:
鹈鹕优化算法的收敛曲线:
在这里插入图片描述

鹈鹕优化算法求得的路径:
在这里插入图片描述

鹈鹕优化算法求解的最短总路径:4545.99

3.2结果二

当五个旅行商的起始点城市分别为1、4 、7、8 、9时:
鹈鹕优化算法的收敛曲线:
在这里插入图片描述

鹈鹕优化算法求得的路径:
在这里插入图片描述

鹈鹕优化算法求解的最短总路径:6480.2949

3.3结果三

当三个旅行商的起始点城市分别为15、21、24时:
鹈鹕优化算法的收敛曲线:
在这里插入图片描述

鹈鹕优化算法求得的路径:
在这里插入图片描述

鹈鹕优化算法求解的最短总路径:4535.7506

四、完整MATLAB代码


http://www.niftyadmin.cn/n/5664577.html

相关文章

力扣之181.超过经理收入的员工

文章目录 1. 181.超过经理收入的员工1.1 题干1.2 准备数据1.3 题解1.4 结果截图 1. 181.超过经理收入的员工 1.1 题干 表:Employee -------------------- | Column Name | Type | -------------------- | id | int | | name | varchar | | salary | int | | mana…

实战讲稿:Spring Boot整合MyBatis

文章目录 实战讲稿:Spring Boot整合MyBatis课程目标课程内容1. 创建员工映射器接口1.1 创建子包1.2 创建接口 2. 测试员工映射器接口2.1 自动装配员工映射器2.2 测试按标识符查询员工方法2.3 测试查询全部员工方法2.4 测试插入员工方法2.5 测试更新员工方法2.6 测试…

2022年十九届中国研究生数学建模竞赛C题——优秀论文分析

● 引言:因为最近要参加研究生数学建模竞赛了(第二十一届),学习和分析一下优秀的数模论文的:思路、写作。 虽然我说是 “优秀论文分析”,但其实更多是 “搬运” 哈哈哈… ✅ NLP 研 1 选手的学习笔记 笔者…

mysql把某一个字段的值中的aa,替换成bb

UPDATE my_table SET my_column REPLACE(my_column, aa, bb); 例 假设my_table表在替换前的数据如下: idmy_column1hello aa2world aa aa3no aa here 执行上述UPDATE语句后,my_table表的数据将变为: idmy_column1hello bb2world bb b…

[ComfyUI]筑梦FLUX:国产LORA涌现,Ins风格滤镜和极致优化了东方女性风格

大家好我是极客菌!!! 在数字艺术领域,AI绘画技术已经逐渐成为艺术创作的新趋势。ComfyUI的筑梦FLUX功能结合国产LORA和Ins风格滤镜,为东方女性风格提供了极致优化,让你在创作中更加得心应手。 国产LORA涌…

vue3+ant design vue实现可编辑表格弹出气泡弹出窗~

1、这里主要是介绍下::v-deep伪元素的作用。用于穿透组件作用域&#xff0c;以便在组件内部修改样式。用来覆盖Ant Design Vue组件库中的样式 <a-table:dataSource"dataList":columns"columns":scroll"{ x: 100% }":pagination"false&q…

C++11(3)

目录 8。移动赋值和移动构造(2)default / delete关键词 9。可变参数模板 所以有人就进行了如下可行的两种写法 可变参数模板在库里的应用自己模拟实现 //emplace_back 完美转发forward 接着自我实现emplace_back 本文提到的List和string的自我实现方法即代码以在C11(2)中…

git 命令---想要更改远程仓库

在 Git 中&#xff0c;origin 是默认的远程仓库名称。可以使用以下命令查看当前 Git 仓库的 origin 名称及其对应的 URL&#xff1a; git remote -v这个命令会列出所有配置的远程仓库及其名称&#xff0c;其中 origin 通常是克隆时自动设置的默认远程仓库名称。输出示例&#…