matlab模拟退火算法tsp问题源代码,基于模拟退火算法的tsp问题研究报告附matlab程序...

本文探讨了模拟退火算法的基本原理,如何将其应用于旅行商问题(TSP)求解,并提供了Matlab程序示例。通过物理和统计学视角解释算法过程,包括参数选择和搜索策略。特别关注了TSP问题实例,如burma14.tsp数据的应用。
摘要由CSDN通过智能技术生成

41528d3028836879cd698677c3999917.gif基于模拟退火算法的tsp问题研究报告附matlab程序

TSP问题的模拟退火算法,如需程序,点击上传者,见“我的文档”。,,模拟退火简介 1.1 问题讨论 模拟退火算法步骤 参数选取 模拟退火算法求解TSP问题,1模拟退火简介,物理解释:材料中的原子原来会停留在使内能有局部最小值的位置,加热使能量变大,原子会离开原来位置,而随机在其他位置中移动。退火冷却时速度较慢,使得原子有较多可能可以找到内能比原先更低的位置。 统计学解释:我们将热力学的理论套用到统计学上,将搜寻空间内每一点想像成空气内的分子;搜寻空间内的每一点,也像空气分子一样带有“动能”,以表示该点对命题的合适程度。算法先以搜寻空间内一个任意点作起始:每一步先选择一个“邻居”,然后再计算从现有位置到达“邻居”的概率。,1.模拟退火简介,假设物体在加热一定温度后,它的所有分子存在D种状态空间。随着温度的下降,这些分子停留在不同的状态,最终趋于稳定状态。 由统计力学研究表明,在温度T,分子停留在状态r的概率满足波兹曼(Boltzmann)概率分布 其中,E(r)是状态r的能量,Z(T)是概率分布的标准化因子,1.1 问题讨论,在同一个温度T下,能量高的状态概率大还是小? 设E1 random(0,1)时,则i=j ;重 复Step2; Step3:若在该tk+1=d(tk),k=k+1; 若满足外循环停 止条件,终止计算;否则,回到Step2.,2.模拟退火算法步骤,内循环:Step2表示在同一温度tk时,在一些状态 的随机搜索。当温度很低tk0时, exp(-△fij /tk)0. 停止条件:内循环次数step > maxstep ? 若是,转到Step3,且降温tk+1=α*tk, step=0,k=k+1增加新温度tk下的 maxstep=maxstep+a 。 若否,step=step+1,反复Step2. 外循环:停止条件是温度tk足够低,tk < e ? 若是,算法结束,输出结果。 若否,回到Step2。,3. 参数选取,t0 tk+1=α*tk maxstep=maxstep+a,t0太大,计算时间增加;t0太小,会过早陷入局部最优。,4.模拟退火算法求TSP问题,解的表示:用一个访问序列T=(t1,t2,t3…,tn,t1)来表示经过n个城市的顺序。 距离矩阵:D=(dij)是由城市i和城市j之间的距离所组成的距离矩阵。 数学模型: 解的邻域:随机产生2个位置,让序列T上对应的两个位置上的城市顺序对换。,,,4.模拟退火算法求TSP问题,Tips:访问序列T=(t1,t2,t3…,tn,t1)简化为 T=(t2,t3…,tn) 减小解空间的冗余!,4.模拟退火算法求TSP问题,TSP问题实例:TSP问题标准测试数据burma14.tsp,测试数据下载网址: http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/tsp/,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值