原理:起源于固体的物理退火过程。固体中的原子会停留在是内能有局部最小值的位置,当温度升高,原子会离开当前的位置;温度下降,原子会随机在其他位置移动,有可能寻找到比当前局部最小值更小的局部最小值。
重点:概率性的跳出局部最小从而趋向全局最小值,所以"概率如何计算?"十分重要。
概率如何计算:P(dE)=exp(dE/(kT)) (范围为0至1的开区间,因为dE是负值);
公式表示:在温度T时,出现能量差为dE的降温的概率为P(dE)。公式来源于Metropolis准则,k为Boltzmann常数。
那么我们如何应用模拟退火算法,在此举一个例子:最小化问题F(x)
共有100W输入,也就有100W个解,我们需要一个最小的解。
设置参数:初始温度T0=1000,每次降温为1,新温度为T;每个温度T的链长为L,设置为100。(温度链长即为迭代次数)
首先,求得两个解F(i)和F(j)。F(i)定为旧解,F(j)为新解