模拟退火算法(SAA)解决TSP问题
1.什么是模拟退火算法? 模拟退火算法(Simulated Annlealing Algorithm,SAA 最早是由N.Metropolis等人在1953年提出来的。 据说是他在洗澡的时候突然想到了这个模拟退火的方式。模拟退火的原理是初始时刻从一个较高的初始温度出发,开始物质中的分子处于随机排列的状态,随着温度系数的不断降低,随后分子逐渐以低能的状态进行排列,最终达到某种稳定的状态。 物理退火 要想理解模拟退火算法,首先我们要知道物理退火是怎样实现的,物理退火的过程大致分为三个阶段: 升温过程——我们通过不断地加热,加快分子的热运动,使整个物体处于随机、无序的状态,直到物体处于一个初始的温度T。 恒温过程——因为物体时时刻刻都在与外界进行物质或是温度的交换,物体的状态总是向自由能减少的方向进行,当自由能稳定时,物体就达到了一个平衡态。 冷却过程——物体内部的分子热运动逐渐减弱并且不断地趋于有序,物体的能量就会下降,从而达到了一个低能的晶体状。 Metropolis准则 模拟退火算法其中运用到了一个很重要的准则叫做—— Metropolis准则 ,这个准则的过程如下: 1.首先设置一个初始的条件,初始次数k,初始温度T,过程中输出的解(同时也可以叫做状态)S(k),给S(k)一个初始值S(k)=S0; 2.①通过一定的方式在S(k)(当前解)的状态S上产生一个相邻的子集N(S(k)