模拟退火算法(SAA)简介
模拟退火算法(SAA,Simulated Annealing Algorithm)的灵感来源于工艺铸造流程中的退火处理,随着铸造温度升高,分子运动趋于无序,徐徐冷却后,分子运动趋于有序。这是一种基于概率突跳特性(取决于温度状态)的算法,在解空间中概率寻找(或趋近于)最优解。它是跳出局部最优解的一个常用解决办法。在超大规模集成电路(Very Large Scale Integration Circuit,VLSI)、神经网计算机、计算机视觉、TSP和Knapsack问题等有重要且广泛的应用。
模拟退火算法采用了串行结构。
SAA步骤
模拟退火算法的三要素是解空间,目标函数和初始解。它的基本思想是:
- 初始化
首先确定一个初始温度T,初始解状态S,每个T值的迭代次数L。 - 迭代
在1-L次数中做这些操作:(2)
产生新解S’。
计算温度增量△t’=C(S’)-C(S)。(C(S)为评估函数)
若Δt′<0则接受S′作为新的当前解,否则以概率exp(-Δt′/(KT))接受S′作为新的当前解(k为波尔兹曼常数)
如果终止条件已经满足,则接受当前解作为最优解,并停止迭代计算。如果不是,则继续。
T逐渐减少,且t趋近于0,则转到2.迭代。(1)

SAA原理
模拟退火算法包含两个部分,即Metropolis和退火过程,分别对应着内循环和外循环。外循环将固体加热至较高的温度(初始温度T0),然后按照降温系数alpha使温度按照一定的比例下降,当达到终止温度Tf时,冷却结束,退火过程结束,对应上述的(1)过程。
Metropolis算法是内循环,即在每次更新的温度下迭代L次,并寻找该温度下能量的最小值(最优解)。对应的是上述的(2)过程。
用能量变化来解释模拟退火算法接受新解的情况:
Metropolis准则:
1953年提出。若在温度T时,由状态i转变为状态j,那么若Ej<Ei,则接受j状态为新状态。否则,进入新一轮判断:若概率P=exp(-(Ej-Ei)/KT)大于[0,1]区间的随机数,则接受j为新状态;若不成立,则保留i为新状态。
Metropolis算法是退火算法的基础,同样是在局部最优中选取全局最优。
在“退火”过程中,铸件徐徐冷却,分子运动趋于有序,每个分子都趋于平衡态,最终温度下降到常温时,达到基态,内能减为最小,能量减小原子趋于稳定。
在一定的某温度T0T_0T0下,存在状态变换(由一个波谷变化至下一个波谷),那么如果下一个波谷能量E(n+1)E(n+1)E(n+1)<

模拟退火算法是一种概率性搜索方法,源自金属铸造,用于在解空间中找到最优解。文章介绍了算法的基本思想、步骤、原理,以及参数选择和改进方向,包括并行化、快速退火等。举例展示了如何用模拟退火求解二次函数最小值。
最低0.47元/天 解锁文章
7万+

被折叠的 条评论
为什么被折叠?



