MD-MTSP:成长优化算法GO求解多仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

news/2025/3/15 6:32:33/

一、成长优化算法GO

成长优化算法(Growth Optimizer,GO)由Qingke Zhang等人于2023年提出,该算法的设计灵感来源于个人在成长过程中的学习和反思机制。学习是个人通过从外部世界获取知识而成长的过程,反思是检查个体自身不足,调整个体学习策略,帮助个体成长的过程。

参考文献:

Qingke Zhang, Hao Gao, Zhi-Hui Zhan, Junqing Li, Huaxiang Zhang,Growth Optimizer: A powerful metaheuristic algorithm for solving continuous and discrete global optimization problems,Knowledge-Based Systems,261,2023

二、多仓库多旅行商问题MD-MTSP

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

多旅行商问题(Multiple Traveling Salesman Problem, MTSP):单仓库多旅行商问题及多仓库多旅行商问题(含动态视频)_IT猿手的博客-CSDN博客

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

三、成长优化算法GO求解MD-MTSP

本文选取国际通用的TSP实例库TSPLIB中的测试集bayg29作为测试例子,数据集可以自行修改。

3.1部分代码(可更改起点及旅行商个数)

close all
clear
clc
global data  StartPoint Tnum
%数据集参考文献  REINELT G.TSPLIB-a traveling salesman problem[J].ORSA Journal on Computing,1991,3(4):267-384.
% 导入TSP数据集 bayg29
load('data.txt')
StartPoint=[1 5 15 16 20];%起点城市的序号(可以修改) 必须由小到大排列 (建议:2到6个旅行商)
Tnum=length(StartPoint);%旅行商个数
Dim=size(data,1)-Tnum;%维度
lb=-100;%下界
ub=100;%上界
fobj=@Fun;%计算总距离
SearchAgents_no=100; % 种群大小(可以修改)
Max_iteration=3000; % 最大迭代次数(可以修改)
[fMin,bestX,curve]=GO(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);
  

3.2部分结果

(1)4个旅行商

第1个旅行商的路径:5->29->3->26->9->12->6->5

第1个旅行商的总路径长度:937.336652

第2个旅行商的路径:15->10->2->21->28->1->13->15

第2个旅行商的总路径长度:1020.098035

第3个旅行商的路径:16->24->8->27->23->7->25->16

第3个旅行商的总路径长度:1044.413711

第4个旅行商的路径:20->4->19->11->22->17->14->18->20

第4个旅行商的总路径长度:1016.562836

所有旅行商的总路径长度:4018.411234

(2)5个旅行商

第1个旅行商的路径:1->28->12->9->6->1

第1个旅行商的总路径长度:738.241153

第2个旅行商的路径:5->2->29->3->26->5

第2个旅行商的总路径长度:850.176452

第3个旅行商的路径:15->10->21->13->4->15

第3个旅行商的总路径长度:863.828687

第4个旅行商的路径:16->27->23->8->24->16

第4个旅行商的总路径长度:832.105763

第5个旅行商的路径:20->19->7->25->11->22->17->14->18->20

第5个旅行商的总路径长度:1372.224471

所有旅行商的总路径长度:4656.576526

四、完整Matlab代码


http://www.ppmy.cn/news/991331.html

相关文章

阿里用户序列建模MIMN

Practice on Long Sequential User Behavior Modeling for Click-Through Rate Prediction 摘要 对于序列建模,实践了机器学习算法与在线服务协同设计的CTR预测系统,理论上可以处理无限长的用户序列。 从服务系统的角度来看,通过设计一个单…

深度学习之梯度下降算法

0.1 学习视频源于:b站:刘二大人《PyTorch深度学习实践》 0.2 本章内容为自主学习总结内容,若有错误欢迎指正! 1 线性模型 1.1 通过简单的线性模型来举例: 1.2 如图,简单的一个权重的线性模型&#xff0c…

数据结构:栈和队列的实现和图解二者相互实现

文章目录 写在前面栈什么是栈栈的实现 队列什么是队列队列的实现 用队列实现栈用栈模拟队列 写在前面 栈和队列的实现依托的是顺序表和链表,如果对顺序表和链表不清楚是很难真正理解栈和队列的 下面为顺序表和链表的实现和图解讲解 手撕图解顺序表 手撕图解单链表 …

二维深度卷积网络模型下的轴承故障诊断

1.数据集 使用凯斯西储大学轴承数据集,一共有4种负载下采集的数据,每种负载下有10种 故障状态:三种不同尺寸下的内圈故障、三种不同尺寸下的外圈故障、三种不同尺寸下的滚动体故障和一种正常状态 2.模型(二维CNN) 使…

msvcp120.dll丢失的解决方法?有什么解决方法比较推荐?

第一:介绍几种可能导致msvcp120.dll文件丢失或损坏的原因 损坏的程序安装:在安装某个程序时,可能会出现意外中断或其他错误,导致msvcp120.dll文件未能正确地被安装或被破坏。这可能是由于软件安装过程中的错误、病毒感染或硬件问题…

04mysql查询之多表查询

# 1.显示所有员工的姓名,部门号和部门名称。 SELECT last_name,e.department_id,department_name FROM employees e LEFT JOIN departments d ON e.department_id d.department_id # 2.查询90号部门员工的job_id和90号部门的location_id SELECT e.job_id,d.locat…

OAuth机制_web站点接入微软azure账号进行三方登录

文章目录 ⭐前言⭐微软三方登录流程💖 web站点获取微软账号流程💖 node封装微软登录接口💖 webapp 自定义code换token💖 调用 Microsoft Graph API💖 前端唤醒authlink进行登录回调逻辑 ⭐结束 ⭐前言 大家好&#xf…

NO3.实验三:执行 Maven 的构建命令

执行 Maven 的构建命令 1、要求 运行 Maven 中和构建操作相关的命令时,必须进入到 pom.xml 所在的目录。如果没有在 pom.xml 所在的目录运行 Maven 的构建命令,那么会看到下面的错误信息: The goal you specified requires a project to ex…