当前位置: 首页 > news >正文

MD-MTSP:遗传算法GA求解多仓库多旅行商问题(提供MATLAB代码,可以修改旅行商个数及起点)

一、多仓库多旅行商问题

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

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

二、遗传算法GA

遗传算法(Genetic Algorithm,GA)起源于对生物系统所进行的计算机模拟研究,是一种随机全局搜索优化方法,它模拟了自然选择和遗传中发生的复制、交叉(crossover)和变异(mutation)等现象,从任一初始种群(Population)出发,通过随机选择、交叉和变异操作,产生一群更适合环境的个体,使群体进化到搜索空间中越来越好的区域,这样一代一代不断繁衍进化,最后收敛到一群最适应环境的个体(Individual),从而求得问题的优质解。
遗传算法GA介绍

三、遗传算法GA求解多仓库多旅行商问题MDMTSP

遗传算法GA求解多仓库多旅行商问题MDMTSP介绍
本文选取国际通用的TSP实例库TSPLIB中的测试集bayg29,bayg29中城市分布如下图所示:
在这里插入图片描述

以四个旅行商为例,部分代码如下:可以修改旅行商个数及起点

完整MATLAB code link :https://mbd.pub/o/bread/ZJmTlZhxclose 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 10 16];%起点城市的序号(可以修改) 必须由小到大排列 (建议:2到6个旅行商)
Tnum=length(StartPoint);%旅行商个数
Dim=size(data,1)-Tnum;%维度
lb=-100;%下界
ub=100;%上界
fobj=@Fun;%计算总距离
SearchAgents_no=50; % 种群大小(可以修改)
Max_iteration=200; % 最大迭代次数(可以修改)
[fMin,bestX,curve]=GA(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj); 

部分结果如下:

第一次运行结果

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

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

第2个旅行商的路径:5->12->28->24->4->20->21->5

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

第3个旅行商的路径:10->13->27->8->23->7->19->10

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

第4个旅行商的路径:16->15->18->14->17->22->11->25->16

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

所有旅行商的总路径长度:4622.516546
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二次运行结果

第1个旅行商的路径:1->13->20->2->29->3->26->1
第1个旅行商的总路径长度:1223.356040
第2个旅行商的路径:5->9->12->6->28->24->21->5
第2个旅行商的总路径长度:922.713390
第3个旅行商的路径:10->18->17->22->14->15->4->10
第3个旅行商的总路径长度:830.782763
第4个旅行商的路径:16->19->11->25->7->23->8->27->16
第4个旅行商的总路径长度:1229.796731
所有旅行商的总路径长度:4206.648924
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、完整MATLAB代码

http://www.lryc.cn/news/68227.html

相关文章:

  • 技术面试的终极指南:助你取得成功的关键步骤
  • Nautilus Chain 测试网第二阶段,推出忠诚度计划及广泛空投
  • Python爬虫(三):BeautifulSoup库
  • Python使用CV2库捕获、播放和保存摄像头视频
  • [数据结构 -- C语言] 栈(Stack)
  • 【我的C++入门之旅】(上)
  • dcdc降压电路原理及仿真
  • 搭建Redis主从集群+哨兵+代理predixy
  • Syncthing文件同步 - 免费搭建开源的文件自动同步服务器并公网远程访问【私人云盘】
  • SQL——索引
  • Java代码组成部分
  • vue2和vue3有啥区别,vue3的优点有哪些?
  • 就业内推 | 上市公司招网工,最高25k*14薪,六险一金
  • 低代码让开发变得不再复杂
  • 【前端客栈】使用CSS实现畅销书排行榜页面
  • 【周末闲谈】超越ChatGPT?科大讯飞星火认知大模型
  • 第N2周:中文文本分类-Pytorch实现
  • Salesforce许可证和版本有什么区别,购买帐号时应该如何选择?
  • 接口测试怎么做?全网最详细从接口测试到接口自动化详解,看这篇就够了...
  • DataStore入门及在项目中的使用
  • 用Python爬取中国各省GDP数据
  • 深度学习-第T5周——运动鞋品牌识别
  • 自媒体的孔雀效应:插根鸡毛还是专业才华?
  • Linux系统优化
  • Java笔记_22(反射和动态代理)
  • 前端web入门-HTML-day01
  • 创建一个Go项目
  • 从 Spring 的创建到 Bean 对象的存储、读取
  • 【一文吃透归并排序】基本归并·原地归并·自然归并 C++
  • 读《Spring Boot 3核心技术与最佳实践》有感