一、算法简介
人工兔优化算法(Artificial Rabbits Optimization ,ARO)由Liying Wang等人于2022年提出,该算法模拟了兔子的生存策略,包括绕道觅食和随机躲藏,并通过能量收缩在两种策略之间转换。绕道觅食策略迫使兔子吃其他兔子巢附近的草,这可以防止它的巢穴被捕食者发现。随机隐藏策略使兔子能够从自己的洞穴中随机选择一个洞穴进行隐藏,这可以减少被敌人捕获的可能性。此外,兔子的能量收缩将导致从绕道觅食策略过渡到随机隐藏策略。
ARO算法描述:
ARO算法流程:
参考文献: Liying Wang, Qingjiao Cao, Zhenxing Zhang, et al. Artificial rabbits optimization: A new bio-inspired meta-heuristic algorithm for solving engineering optimization problems[J]. Engineering Applications of Artificial Intelligence, 2022, 114: 105082.
二、多仓库多旅行商问题
多旅行商问题(Multiple Traveling Salesman Problem, MTSP)是著名的旅行商问题(Traveling Salesman Problem, TSP)的延伸,多旅行商问题定义为:给定一个𝑛座城市的城市集合,指定𝑚个推销员,每一位推销员从起点城市出发访问一定数量的城市,最后回到终点城市,要求除起点和终点城市以外,每一座城市都必须至少被一位推销员访问,并且只能访问一次,需要求解出满足上述要求并且代价最小的分配方案,其中的代价通常用总路程长度来代替,当然也可以是时间、费用等。多仓库多旅行商问题是其中一种多旅行商问题。
多旅行商问题(Multiple Traveling Salesman Problem, MTSP):单仓库多旅行商问题及多仓库多旅行商问题(含动态视频)
多仓库多旅行商问题(Multi-Depot Multiple Travelling Salesman Problem, MD-MTSP):𝑚个推销员从𝑚座不同的城市出发,访问其中一定数量的城市并且每座城市只能被某一个推销员访问一次,最后回到各自出发的城市,这种问题模型被称之为MD-MTSP。
三、求解结果
本文选取国际通用的TSP实例库TSPLIB中的测试集bayg29,bayg29中城市分布如下图所示:
本文采用人工兔优化算法求解bayg29:
close all
clear
clc
%数据集参考文献 REINELT G.TSPLIB-a traveling salesman problem[J].ORSA Journal on Computing,1991,3(4):267-384.
% 人工兔优化算法Artificial Rabbits Optimization (ARO)参考文献: Liying Wang, Qingjiao Cao, Zhenxing Zhang, et al. Artificial rabbits optimization: A new bio-inspired meta-heuristic algorithm for solving engineering optimization problems[J]. Engineering Applications of Artificial Intelligence, 2022, 114: 105082.
global data StartPoint1 StartPoint2
代码链接:https://pan.baidu.com/s/11I6eMyMU3k-UHfUu1O_mIA
提取码:1234
StartPoint1=10; %选择起点城市1(可以自行更改)
StartPoint2=20; %选择起点城市1(可以自行更改)
%必须满足StartPoint1<StartPoint2
Dim=size(data,1)-2;%维度
lb=-100;%下界
ub=100;%上界
fobj=@Fun;%计算总距离
SearchAgents_no=50; % 种群大小(可以修改)
Max_iteration=2000; % 最大迭代次数(可以修改)
[bestX,fMin,curve]=ARO(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj); %人工兔优化算法
其中一次结果:
人工兔优化算法的收敛曲线:
人工兔优化算法求得的路径:
ARO求解的最短总路径:11346.2975
四、参考代码
文件夹内包含所有代码及使用说明,点击main.m即可运行。