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

一、斑马优化算法ZOA

斑马优化算法(Zebra Optimization Algorithm,ZOA)Eva Trojovská等人于2022年提出,其模拟斑马的觅食和对捕食者攻击的防御行为。斑马优化算法(Zebra Optimization Algorithm,ZOA)_IT猿手的博客-CSDN博客

参考文献:

[1]E Trojovská, M Dehghani, P Trojovský. Zebra Optimization Algorithm: A New Bio-Inspired Optimization Algorithm for Solving Optimization Algorithm[J]. IEEE Access, 2022,10:49445-49473.

二、多仓库多旅行商问题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。

三、斑马优化算法ZOA求解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]=ZOA(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);
  

3.2部分结果

(1)4个旅行商

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

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

第2个旅行商的路径:15->10->19->11->22->17->14->15

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

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

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

第4个旅行商的路径:20->24->27->21->9->2->4->18->20

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

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

(2)5个旅行商

第1个旅行商的路径:1->24->23->8->12->1

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

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

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

第3个旅行商的路径:15->18->22->17->14->15

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

第4个旅行商的路径:16->25->19->4->13->16

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

第5个旅行商的路径:20->10->11->7->27->28->9->3->29->20

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

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

四、完整Matlab代码

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

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

相关文章

spring总结

1.spring framework有哪些不同功能 轻量级:Spring 在代码量和透明度方面都很轻便IOC:控制反转 。通过控制反转实现了松散耦合,对象们给出了他们的依赖,而不是创建或查找依赖的对象们AOP:面向切面编程可以将应用业务逻…

高等数学教材啃书汇总难点(一)函数与极限

教材为理工科标配的同济大学第七版,本系列为一轮啃书,将必会的全部重难点悉数总结——尤其是各种晦涩的理论证明部分,考研数学一的选手,想冲击高分的话必须掌握。对于考研证明题部分,熟练掌握定义是必不可少的底层基础…

网络是怎样连接的

文章目录 概述英语缩略语一、Web浏览器二、协议栈、网卡三、集线器、交换机、路由器四、接入网、网络运营商五、防火墙、缓存服务器六、Web服务器总结 概述 从在浏览器中输入网址,到屏幕上显示出网页的内容,在这个只有几秒钟的过程中,很多硬…

Nautilus Chain 即将治理通证 NAUT ,生态发展进程加速

独特且优势明显的 Nautilus Chain 目前,行业内首个模块化底层 Nautilus Chain 已经上线主网,并且即将有超过 70 个应用原生部署在 Nautilus Chain 上。Nautilus Chain 本身是一个以 Layer3 为定位的区块链系统,其通过 Celestia 模块化底层来…

paddle实现获取pdf的内容

paddle实现获取pdf的内容 1. 环境安装2. 实现代码 源码链接 1. 环境安装 安装paddlepaddle gpu版本python -m pip install paddlepaddle-gpu -i https://pypi.tuna.tsinghua.edu.cn/simplecpu版本:python -m pip install paddlepaddle -i https://pypi.tuna.tsing…

vue3项目基于vue-router跳转到登录页面

创建项目 #创建项目 #选择vue3 选择npm vue create devops-front#安装vue-router 路由 npm install -g cnpm --registryhttps://registry.npmmirror.com cnpm install vue-router4 #启动项目 vue run serve app.vue 定义<router-view/> 路由入口 <template>&l…

opencv04-掩膜

opencv04-掩膜 抠图 #include <iostream> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> #include <vector> #include <array> #include <algorithm>using namespace std; using namespace cv;int main() {str…

wine意大利红酒数据标准化案例

1.数据和环境准备 将通过意大利红酒的部分数据&#xff0c;调用scikit-learn包&#xff08;sklearn&#xff09;分别实现0-1标准化和z-score标准化&#xff0c;总结学习这两种标准化方法的特点。 本案例使用的环境为Anaconda Jupyter notebook。 2.数据说明 我们使用的是U…

js中css压缩方法

最近一直在做邮件html发送。其中邮件排版中&#xff0c;很多邮箱对css大小有要求&#xff0c;必需要有压缩css的办法&#xff0c;以前的做法是去各大在线压缩工具中压缩好后&#xff0c;再加入邮件html中。随着邮件html模板越做越多后&#xff0c;这个压缩就很繁琐&#xff0c;…

Android Studio多渠道打包

使用环境&#xff1a; Android studio 多渠道打包 使用方法&#xff1a; 1 APP下build.gradle文件 flavorDimensions "default"productFlavors {huawei {dimension "default"manifestPlaceholders [ channel:"huawei" ]}xiaomi {dimension &…

SciencePub学术 | 计算机科学类重点SCIEEI征稿中

SciencePub学术 刊源推荐: 计算机科学类重点SCIE征稿中&#xff01;信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 计算机科学类重点SCIE 【期刊简介】IF&#xff1a;6.5-7.0&#xff0c;JCR1区&#xff0c;中科院2区&#xff1b; 【出版社】世界排名…

oracle数据库相关设置

一 oracle数据库设置归档模式 1。使用sys用户连接数据库&#xff1a; 命令如下&#xff1a; sqlplus /nolog&#xff1b; CONNECT SYS/password AS SYSDBA 2&#xff0c;关闭数据库&#xff1a; SQL>SHUTDOWN IMMEDIATE 3&#xff0c;mount 数据库 SQL…

windows下tomcat无故宕机,检测http或https服务,并自动重启Tomcat服务

一、问题描述及解决原理 把项目发布到windows服务器中&#xff0c;如tomcat工程不稳定&#xff0c;会有无故宕机的问题。如果通过程序无法解决&#xff0c;并且重启tomcat服务能够生效的话&#xff0c;可以做一个自动检测并重启的脚本。 脚本通过检测tomcat对应的工程链接&…

不同对象的集合转换

https://blog.csdn.net/qq_42483473/article/details/128984514 import com.alibaba.fastjson.JSON;import java.util.ArrayList; import java.util.List;/*** author */ public class ObjectConversion {/*** 从List<A> copy到List<B>* param list List<B>…

Hexo+GithubPages免费搭建个人博客网站

HexoGithubPages免费搭建个人博客网站 目录 一、前言二、Github配置 新建同名仓库配置Pages 三、安装Hexo四、配置hexo-deployer-git五、访问六、发布文章七、安装主题 一、前言 我之前开了好几年的云服务器了&#xff0c;实际上使用场景并不是很多&#xff0c;感觉有点浪费…

Ubuntu 离线部署的常见操作

Ubuntu 离线安装的常见操作 **说明&#xff1a;**很多情况下,生产环境都是离线环境&#xff0c;然而开发环境都是互联网的环境&#xff0c;因此部署的过程中需要构建离线安装包; 1. 下载但是不安装 # 例如使用 apt 下载 wireshark 安装包 sudo apt download wireshark # 下载…

【数据结构】无头+单向+非循环链表(SList)(增、删、查、改)详解

一、链表的概念及结构 1、链表的概念 之前学习的顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;而链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的&#xff0c;可以实现更加…

下载离线版的VS Visual Studio 并下载指定的版本

一、先下载引导程序 下载地址VS VisualStudio官网 在这个页面翻到最下面 在这里下载需要的版本 下载引导程序 二、下载离线安装包 写一个批处理文件&#xff08;vs.bat&#xff09; 命令格式如下 <vs引导程序exe> --layout <离线安装包下载的路径> --add <功能…

1、Tomcat

java介绍 Java语言和平台由以下几个主要部分组成&#xff1a; 1、Java编程语言(Java Language)&#xff1a;这是Java的核心部分&#xff0c;包括Java语法、关键字、数据类型、运算符、控制结构等。程序员使用Java语言来编写应用程序的源代码。 2、Java开发工具包(Java Developm…

Rpc服务消费者(Rpc服务调用者)实现思路

Rpc服务消费者&#xff08;Rpc服务调用者&#xff09;实现思路 前面几节说到Rpc消费者主要通过UserServiceRPc_Stub这个protobuf帮我们生成的类来实现&#xff0c;上代码回顾一下 class UserServiceRpc_Stub : public UserServiceRpc {public:UserServiceRpc_Stub(::PROTOBUF…