基于前文中讲到的蒙特卡洛方法求解TSP问题,我们在原有基础上增加15个城镇至23个。其分布如下,求解此TSP问题(经过所有点,路径最短)

代码1(主函数):
%% 模拟退火解决TSP问题
clear;clc
% 前文中的蒙特卡洛为基础上增加15个城镇,共23个
towns = [0.64 0.41 0.99 0.55 0.77 0.25 0.11 0.89 0.15 0.26 0.33 0.88 0.54 0.69 0.21 0.32 0.19 0.05 0.72 0.48 0.37 0.28 0.98;
0.74 0.45 0.66 0.21 0.32 0.99 0.54 0.11 0.46 0.28 0.32 0.21 0.59 0.08 0.95 0.68 0.55 0.07 0.54 0.77 0.21 0.45 0.77]' ;
n = size(towns,1); % 城镇的数目
figure(1) % 新建图形窗口
plot(towns(:,1),towns(:,2),'o'); % 城镇的分布
hold on
d = zeros(n); % 初始化城镇距离
for i = 2:n %矩阵主对角线为0,因此从2开始
for j = 1

本文介绍了一种应用模拟退火算法解决含有23个城镇的旅行商问题(TSP)。通过MATLAB实现,代码包括主函数和journey及new_way辅助函数,最终得出最优路径解决方案。
最低0.47元/天 解锁文章
1989

被折叠的 条评论
为什么被折叠?



