一、旅行商问题介绍
二、黑翅鸢算法求解TSP
2.1算法介绍
黑翅鸢算法(Black-winged kite algorithm,BKA)由Wang Jun等人于2024年提出,该算法受黑翅鸢的迁徙和掠食行为启发而得。BKA集成了柯西突变策略和领导者策略,增强了算法的全局搜索能力,提高了算法的收敛速度。
参考文献:
[1]Wang J, Wang W, Hu X, et al. Black-winged kite algorithm: a nature-inspired meta-heuristic for solving benchmark functions and engineering problems[J]. Artificial Intelligence Review, 2024, 57(4): 1-53.
2.2部分代码
close all
clear
clc
%数据集参考文献 REINELT G.TSPLIB-a traveling salesman problem[J].ORSA Journal on Computing,1991,3(4):267-384.
global data
load('data.txt')%导入TSP数据集bayg29
Dim=size(data,1)-1;%维度
lb=-100;%下界
ub=100;%上界
fobj=@Fun;%计算总距离
SearchAgents_no=100; % 种群大小(可以修改)
Max_iteration=10000; % 最大迭代次数(可以修改)
[fMin,bestX,curve]=(SearchAgents_no,Max_iteration,lb,ub,Dim,fobj);
%% 画最终的结果 Kd是最终的城市序列
[~,idx]=sort(bestX);
idx=idx+1;
Kd(1)=1;
Kd(2:length(idx)+1)=idx;
Kd(length(idx)+2)=1;
%% 画路径图
figure
plot(data(Kd,1),data(Kd,2),'go','MarkerFaceColor','g')
2.3部分结果
算法得到的路径:1 > 24 > 13 > 4 > 18 > 2 > 6 > 12 > 28 > 23 > 8 > 16 > 25 > 27 > 20 > 14 > 17 > 22 > 19 > 7 > 11 > 15 > 10 > 29 > 3 > 26 > 9 > 5 > 21 > 1
算法求解的总路径总长:14149.3034
三、完整MATLAB代码