一、能量谷优化算法EVO
能量谷优化算法(Energy valley optimizer,EVO)是MahdiAzizi等人于2023年提出的一种新颖的元启发式算法,其灵感来自关于稳定性和不同粒子衰变模式的物理原理。能量谷优化算法(Energy valley optimizer,EVO)_IT猿手的博客-CSDN博客
参考文献
[1]Azizi, M., Aickelin, U., A. Khorshidi, H. et al. Energy valley optimizer: a novel metaheuristic algorithm for global and engineering optimization. Sci Rep 13, 226 (2023). https://doi.org/10.1038/s41598-022-27344-y
二、单仓库多旅行商问题SD-MTSP
单仓库多旅行商问题(Single-Depot Multiple Travelling Salesman Problem, SD-MTSP):𝑚个推销员从同一座中心城市出发,访问其中一定数量的城市并且每座城市只能被某一个推销员访问一次,最后返回到中心城市,通常这种问题模型被称之为SD-MTSP。
多旅行商问题(Multiple Traveling Salesman Problem, MTSP):单仓库多旅行商问题及多仓库多旅行商问题(含动态视频)_IT猿手的博客-CSDN博客
三、能量谷优化算法EVO求解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=4;%旅行商个数(可以自行更改)2-6
StartPoint=1; %选择起点城市(可以自行更改)
Dim=size(data,1)-1;%维度
lb=-10;%下界
ub=10;%上界
fobj=@Fun;%计算总距离
SearchAgents_no=100; % 种群大小(可以修改)
Max_iteration=200; % 最大迭代次数(可以修改)
[fMin,bestX,curve]=EVO(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);
3.2部分结果
(1)3个旅行商
第1个旅行商的路径:1->21->10->14->17->22->4->13->8->28->1
第1个旅行商的总路径长度:1400.285685
第2个旅行商的路径:1->5->6->27->25->11->19->15->18->2->1
第2个旅行商的总路径长度:1709.502852
第3个旅行商的路径:1->23->7->16->24->20->29->3->9->12->26->1
第3个旅行商的总路径长度:2106.703586
所有旅行商的总路径长度:5216.492123
(2)4个旅行商
第1个旅行商的路径:1->6->10->14->22->18->15->27->1
第1个旅行商的总路径长度:1563.777478
第2个旅行商的路径:1->21->26->29->9->5->28->8->1
第2个旅行商的总路径长度:1114.988789
第3个旅行商的路径:1->13->4->19->25->7->23->24->1
第3个旅行商的总路径长度:1236.527396
第4个旅行商的路径:1->12->3->2->20->17->11->16->1
第4个旅行商的总路径长度:2076.150284
所有旅行商的总路径长度:5991.443946
四、完整Matlab代码
文件夹内包含完整MATLAB代码,点击main.m即可运行,同时提供使用说明,可更改数据集,旅行商的数量和起点。