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

作品简介

一、蜘蛛蜂优化算法SWO

蜘蛛蜂优化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为,具有搜索速度快,求解精度高的优势。蜘蛛蜂优化算法(Spider wasp optimizer,SWO)_IT猿手的博客-CSDN博客

参考文献:

[1]Abdel-Basset, M., Mohamed, R., Jameel, M. et al. Spider wasp optimizer: a novel meta-heuristic optimization algorithm. Artif Intell Rev (2023). https://doi.org/10.1007/s10462-023-10446-y

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

三、蜘蛛蜂优化算法SWO求解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];%起点城市的序号(可以修改) 必须由小到大排列 (建议:26个旅行商)
Tnum=length(StartPoint);%旅行商个数
Dim=size(data,1)-Tnum;%维度
lb=-100;%下界
ub=100;%上界
fobj=@Fun;%计算总距离
SearchAgents_no=100; % 种群大小(可以修改)
Max_iteration=300; % 最大迭代次数(可以修改)
[fMin,bestX,curve]=SWO(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);  

3.2部分结果

(1)4个旅行商

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

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

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

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

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

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

第4个旅行商的路径:20->10->13->21->28->12->6->5->20

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

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

(2)5个旅行商

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

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

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

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

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

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

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

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

第5个旅行商的路径:20->4->11->25->7->23->27->21->10->20

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

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

四、完整Matlab代码

文件夹内包含完整MATLAB代码,点击main.m即可运行,同时提供使用说明可更改数据集,旅行商的数量和起点


创作时间: