7.模拟退火(解决TSP问题)

本文介绍了一种应用模拟退火算法解决含有23个城镇的旅行商问题(TSP)。通过MATLAB实现,代码包括主函数和journey及new_way辅助函数,最终得出最优路径解决方案。
摘要由CSDN通过智能技术生成

基于前文中讲到的蒙特卡洛方法求解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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值