模拟退火首先从某个初始候选解开始,当温度大于0时执行循环. 在循环中,通过随机扰动产生一个新的解,然后求得新解和原解之间的能量差,如果差小于0,则采用新解作为当前解. 如果差大于0,则采用一个当前温度与能量差成比例的概率来选择是否接受新解.温度越低,接受的概率越小,差值越大,同样接受概率越小. 是否接受的概率用此公式计算:p=exp(-ΔE/T).这里ΔE为新解与原解的差,T为当前的温度. 由于温度随迭代次数逐渐降低,因此获得一个较差的解的概率较小. 典型的模拟退火算法还使用了蒙特卡洛循环,在温