【TSP旅行商问题】标准模拟退火算法SA求解

课题名称:基于模拟退火算法的的旅行商问题TSP

程序版本:2023-03-19

代码获取方式:

QQ: 491052175

VX: Matlab_Lover

模型介绍:
第一步:设定参数
第二步:寻找初始解 对于n个城市的TSP问题,能够得到的解就是对1~n的一个排列,其中每个数字为对应城市的编号,如对10个城市的TSP问题,则 1|10|2|4|5|6|8|7|9|3就是一个合法的解,采用产生随机排列的方法产生一个初始解S
第三步:解进行变换生成新解:通过对当前解S1进行变换,产生新的路径数组即为新解,这里采用的变换是产生随机数的方法来产生将要交换的两个城市,用二领域变换法产生新的路径,即新的可行解S2。
第四步:Metropolis准则。若路径长度函数f(s),则当前解的路径为f(s1),新解的路径为f(s2),路径插df=f(s2)-f(s1),则Metropolis准则里表示df<0,则以概率1接受新的路径,否则以某种概率接受新的路径
第五步:降温。利用降温速率q进行降温,即T=qT,若T小于结束温度,则停止迭代输出当前状态,否则继续迭代

特殊说明:
1.程序支持导入包含城市坐标的Excel或者mat文件,也可以随机产生一定数量的城市坐标
2.神经网络每一次的预测结果都不相同,为了得到更好的结果,建议多次运行取最佳值
3.城市坐标及距离矩阵可以打开CityInfo.mat文件查看

Matlab仿真结果:

标准模拟退火算法SA求解旅行商问题的路径顺序:

 初始解的路径规划图

模拟退火算法求解的路径规划图

距离随迭代次数变化曲线

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值