模拟退火(SA)算法干货

来源:互联网 发布:中国移动网络测速网址 编辑:程序博客网 时间:2024/05/22 13:05
模拟退火(SA)算法学习:
物理学中,能量越低的结构越稳定:水自发低处流,电子自发往低能态跃迁
模拟的过程:将一个结构不稳定的金属矿,加热至高温融化,再缓慢降温,成为一块结构稳定的金属。
一条物理学规律:在金属内部,原子之间的能量并不完全相等,他们的差异与金属的温度正相关
运用到SA中:寻找最优解的过程中,若下一个可行解的优于当前可行解,则更新;若劣于当前解,则以概率P接受更新,概率P与温度正相关。
其意义是,先大步搜索可行,以期跳出局部最优,再精细搜索,找到全局最优


1、融化:设定初始温度,温度越高,效果越好,但运行时间越长;
2、退火:逐步降低温度,随着温度的下降,接受非优解的概率逐渐下降;
3、固化:当温度逐渐接近0度, 最优解将收敛;


关键步骤:
非优解的接受与否:计算概率p=exp(-Δf / t),Δf两次迭代目标函数的减少值,t为当前温度,然后生成[0, 1]的随机数,如果p大于该随机数则接受;
温度下降的控制:一般采用等距或者等比的方式;
每一温度下迭代次数的控制:固定迭代步数,或者迭代步数随温度降低而增加。
终止条件:终止温度达到某一限制如0度;温度下降的迭代次数达到设定限制;在某个温度内多次迭代或者在多个温度的最优解无变化;接受非优解的概率已经很小。


重要参数:较高的初始温度,较慢的降温速率,较低的终止温度,各温度下足够的抽样。