SDMTSP:斑马优化算法ZOA求解单仓库多旅行商问题(提供MATLAB代码,可更改起点及旅行商个数)

news2024/9/22 17:31:24

一、单仓库多旅行商问题

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

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

二、斑马优化算法ZOA求解SDMTSP

斑马优化算法ZOA求解单仓库多旅行商问题,本文选取国际通用的TSP实例库TSPLIB中的测试集bayg29。

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

%完整MATLABcode link: https://mbd.pub/o/bread/mbd-ZJiTl5ts
close all
clear
clc
%数据集参考文献  REINELT G.TSPLIB-a traveling salesman problem[J].ORSA Journal on Computing,1991,3(4):267-384.
global data StartPoint Tnum
% 导入TSP数据集 bayg29
load('data.txt')
Tnum=4;%旅行商个数(可以自行更改)2-6
StartPoint=13; %选择起点城市(可以自行更改)
Dim=size(data,1)-1;%维度
lb=-100;%下界
ub=100;%上界
fobj=@Fun;%计算总距离
SearchAgents_no=100; % 种群大小(可以修改)
Max_iteration=5000; % 最大迭代次数(可以修改)
[fMin,bestX,curve]=ZOA(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);  %蜣螂优化算法


%% 最终的结果 Kd是最终的城市序列
[~,idx]=sort(bestX);
idx(idx>=StartPoint)=idx(idx>=StartPoint)+1;
num=floor(length(idx)/Tnum);
Lnum=num*ones(1,Tnum);
Lnum(Tnum)=length(idx)-(Tnum-1)*num;
Kd=StartPoint*ones(Tnum,max(Lnum)+2);
st=1;%起始位置
for i=1:Tnum
    en=st+Lnum(i)-1;%结束位置
    Kd(i,2:Lnum(i)+1)=idx(st:en);
    st=en+1;
end
%% %%%%%%%%%%%%%%%%%%% 保存数据 %%%%%%%%%%%%%%%%%%%%%
save Kd Kd %保留最终的城市序列
save curve curve %保留算法求解的收敛曲线
%% 求解结果画图
PlotResult;%求解结果画图

2.2部分结果

(1)4个旅行商

第1个旅行商的路径:13->27->8->2->29->20->14->15->13

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

第2个旅行商的路径:13->6->5->21->26->9->12->28->13

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

第3个旅行商的路径:13->1->24->16->23->7->25->19->13

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

第4个旅行商的路径:13->4->18->17->22->11->10->3->13

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

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

(2)3个旅行商

第1个旅行商的路径:13->4->22->17->14->11->25->7->8->24->13

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

第2个旅行商的路径:13->19->15->2->3->29->12->9->28->27->13

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

第3个旅行商的路径:13->18->10->20->6->21->26->5->1->23->16->13

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

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

三、完整Matlab代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/494275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装java配置

目录 安装JDK ​编辑 环境变量配置 3、检验环境变量配置 二、安装tomcat 验证Tomcat配置是否成功 三、安装Mysql 一、安装 二、卸载 安装JDK 点击更改将C直接给为F即可。 点击确定后进行安装,安装完以后会提示安装JRE; 检测是否已经安装JDK的方法 java命令通…

尚硅谷-宋红康-JVM上中下篇完整笔记-JVM上篇_内存与垃圾回收篇

前言 一.jvm及java体系结构 1. Java及JVM简介 TIOBE语言热度排行榜 https://www.tiobe.com/tiobe-index/ 世界上没有最好的编程语言,只有最适用于具体应用场景的编程语言。 java: 跨平台的语言JVM: 跨语言的平台 随着Java7的正式发布,Java虚拟机的设计者们通过JS…

【周末闲谈】什么是云计算?

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 ✨第一周 二进制VS三进制 ✨第二周 文心一言,模仿还是超越? ✨第二周 畅想AR 文章目录 前言什么是云计算?🤔🤔🤔大数…

【Linux】进程信号(中)

在上一个文章中,关于信号的产生,还有没补充完的,所以在这篇文章补充一下 文章目录 1.信号的产生硬件异常产生信号a/0问题验证为8号信号 野指针问题验证为11号信号 核心转储设置核心转储大小Core与Term的区别核心转储的作用 2.信号保存1. 概念…

Windows搭建C++开发环境(visual studio 2022)

开发环境的搭建 开发工具:vscode、visual studio 2022、visual studio 2019、2015、2010 .. 安装步骤(以Windows下visual studio2022为例): 打开官网地址 Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com…

Playwright-python 自动化测试【Anaconda】环境配置

第一步:Anaconda的安装 安装Anaconda的好处,比prenv网速快,并且拥有独立的python环境,再也不用烦恼用哪个python好了。 Anaconda的下载页参见官网下载,Linux、Mac、Windows均支持。 https://mirrors.tuna.tsinghua.ed…

传奇人物《周兴和》书连载之68 创意改变了世界

2008年11月3日。 上海。 这一天对周兴和来说,是一个非常值得记忆的日子。 这一天,联合国“南南全球技术产权交易所” 揭牌仪式在上海举行。这个交易所是由联合国开发计划署、中国商务部和上海市三方共同组建设立的。其主要任务是帮助发展中国家&#…

.NET 发布和支持计划介绍

对于 .NET 的发布,大多数童鞋都知道现在每年发布一个版本,针对 .NET 的发布,最近有些更新,Current 版本将改为 STS 版本,所以写一篇文章介绍一下 每年 11 月都会发布新的 .NET 主要版本,使开发人员、社区和…

回归预测 | MATLAB实现MLR多元线性回归预测(多指标评价)

回归预测 | MATLAB实现MLR多元线性回归预测(多指标评价) 目录 回归预测 | MATLAB实现MLR多元线性回归预测(多指标评价)预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 回归预测 | MATLAB实现MLR多元线性回归预测(多指标评价) 模型描述 多元线性回归(Multip…

【Docker】命令大全

文章目录 基本命令镜像相关docker imagesdocker pulldocker rmidocker rundocker build镜像发布镜像常用命令 容器相关docker psdocker logs容器常用命令 数据卷相关网络相关compose相关swarm相关 基本命令 命令说明docker version显示版本信息docker info显示系统信息&#x…

SOFA Weekly|开源之夏 MOSN 与 Layotto 项目简介、社区会议预告、社区本周贡献

SOFA WEEKLY | 每周精选 筛选每周精华问答,同步开源进展 欢迎留言互动~ SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件&am…

作为精益敏捷根基的科学管理与福特、大野耐一、戴明、德鲁克

果总这个文,对中外管理的基因做了解析: 数字化和管理哲学 | 中国企业为啥用不好ERP却信中台和阿米巴 《科学管理》是一本被低估的书,国内的管理很多还停留在“你有科学,我有神功”的阶段。重新学习科学管理很有必要。 …

linux实现CP指令

实现CP指令只需要五步 1.打开Src文件&#xff08;源文件&#xff09; 2.读Src到Buf 3.打开Des文件&#xff08;目标文件&#xff09; 4.写Buf到Des 5.关闭Src和Des文件 代码如下&#xff1a; #include <sys/types.h> #include <sys/stat.h> #include <fcn…

IntelliNode:Node.js大模型访问统一接口库【Gen AI】

使用最新的 AI 模型更新你的应用程序可能具有挑战性&#xff0c;因为它涉及了解不同 AI 模型的复杂性并管理许多依赖项。 IntelliNode 是一个开源库&#xff0c;旨在通过提供统一且易于使用的界面来解决集成 AI 模型的挑战。 这使开发人员能够快速构建 AI 原型并使用高级 AI 功…

QT QFormLayout表单布局控件

本文详细的介绍了QFormLayout控件的各种操作&#xff0c;例如&#xff1a;新建界面、控件布局、添加控件、添加标签、标签插入、删除控件行、显示格式、总行数、列间距、行间距、行列间距、其它文章等等操作。 实际开发中&#xff0c;一个界面上可能包含十几个控件&#xff0c;…

【22-23 春学期】AI作业7-卷积

一、简单描述卷积、卷积核、多通道、特征图、特征选择概念。 卷积是一种数学运算&#xff0c;其实质是在两个函数之间进行积分运算。在计算机视觉领域中&#xff0c;卷积主要是通过滑动卷积核在输入数据上进行特征提取和图像处理。 卷积核是一组固定的权重参数&#xff0c;用于…

三星SmartThings Find设备数量超3亿,苹果Find My设备遍布全球

三星在发布的新闻稿中&#xff0c;表示 SmartThings Find 服务经历了爆炸式增长&#xff0c;全球累计注册、加入设备数量超过 3 亿台。 SmartThings Find 类似于苹果的“Find My”服务&#xff0c;用户可借助这项服务&#xff0c;定位三星 Galaxy 智能手机、平板电脑、手表、…

JAVA开发运维(软件一体化可观测平台的功能)

软件可观测是软件度量的一种。旨在对软件的数字体验、业务运营、网络性能、应用性能、基础设施、IT流程进行监控和数据刻画。使开发人员和运维人员更好的对软件进行优化维护。 一、数字体验&#xff1a; 用户会话 了解用户使用路径&#xff0c;追查使用过程中影响用户体验的…

代码随想录 LeetCode数组篇 移除元素

文章目录 27. 移除元素26. 删除有序数组中的重复项283. 移动零844. 比较含退格的字符串977. 有序数组的平方 27. 移除元素 我的思路&#xff1a; 简单来说&#xff0c;将要删除的元素放到数组的最后 当数组中的元素和val的值相同时&#xff0c;就和数组末尾的值进行交换。 所…

【JavaEE进阶】——第五节.SpringMVC学习介绍(下)(获取Cookies、Session和Header、IDEA热部署)

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;JavaEE进阶 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目录 前言…