一、淘金优化算法GRO
淘金优化算法(Gold rush optimizer,GRO)由Kamran Zolf于2023年提出,其灵感来自淘金热,模拟淘金者进行黄金勘探行为。淘金优化算法(Gold rush optimizer,GRO)提供MATLAB代码_IT猿手的博客-CSDN博客
参考文献:
[1] K. Zolfi. Gold rush optimizer: A new population-based metaheuristic algorithm. Operations Research and Decisions 2023: 33(1), 113-150. DOI 10.37190/ord230108
二、单仓库多旅行商问题SD-MTSP
单仓库多旅行商问题(Single-Depot Multiple Travelling Salesman Problem, SD-MTSP):𝑚个推销员从同一座中心城市出发,访问其中一定数量的城市并且每座城市只能被某一个推销员访问一次,最后返回到中心城市,通常这种问题模型被称之为SD-MTSP。
多旅行商问题(Multiple Traveling Salesman Problem, MTSP):单仓库多旅行商问题及多仓库多旅行商问题(含动态视频)_IT猿手的博客-CSDN博客
三、淘金优化算法GRO求解SD-MTSP
本文选取国际通用的TSP实例库TSPLIB中的测试集bayg29作为测试例子,数据集可以自行修改。
3.1部分代码(可更改起点及旅行商个数)
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=3;%旅行商个数(可以自行更改)2-6
StartPoint=2; %选择起点城市(可以自行更改)
Dim=size(data,1)-1;%维度
lb=-100;%下界
ub=100;%上界
fobj=@Fun;%计算总距离
SearchAgents_no=100; % 种群大小(可以修改)
Max_iteration=500; % 最大迭代次数(可以修改)
[fMin,bestX,curve]=GRO(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);
3.2部分结果
(1)3个旅行商
第1个旅行商的路径:2->29->3->26->5->9->12->6->28->21->2
第1个旅行商的总路径长度:1086.093919
第2个旅行商的路径:2->1->8->24->16->27->23->7->25->13->2
第2个旅行商的总路径长度:1409.964539
第3个旅行商的路径:2->20->10->4->19->15->11->14->22->17->18->2
第3个旅行商的总路径长度:1227.599283
所有旅行商的总路径长度:3723.657740
(2)4个旅行商
第1个旅行商的路径:2->29->3->26->9->12->6->5->2
第1个旅行商的总路径长度:1024.987805
第2个旅行商的路径:2->21->28->1->8->24->13->20->2
第2个旅行商的总路径长度:908.074887
第3个旅行商的路径:2->27->23->7->25->16->19->10->2
第3个旅行商的总路径长度:1455.884611
第4个旅行商的路径:2->4->15->11->22->14->17->18->2
第4个旅行商的总路径长度:1244.668631
所有旅行商的总路径长度:4633.615933
四、完整Matlab代码
文件夹内包含完整MATLAB代码,点击main.m即可运行,同时提供使用说明,可以更改数据集及更改旅行商的数量和起点。