模拟退火算法得益于材料统计力学的研究成果。统计力学表明,材料中粒子的不同结构对应于粒子的不同能量水平。在高温条件下,粒子的能量较高,可以自由运动和重新排列。在低温条件下,粒子能量较低。如果从高温开始,非常缓慢地降温(这个过程被称为退火),粒子就可以在每个温度下达到热平衡。当系统完全被冷却时,最终形成处于低能状态的晶体。
如果用粒子的能量定义材料的状态,模拟退火算法则用一个简单的数学模型描述了退火过程。假设材料在状态i之下的能量为E(i),那么材料在温度T时从状态i进入状态j就遵循如下规律:
(1)如果E (j)≤E (i),接受该状态被转换。
(2)如果E (j)>E (i),则状态转换以如下概率被接受:
其中:K表示物理学中的波尔兹曼常数;T表示材料温度。
在某一个特定温度下,进行了充分的转换之后,材料将达到热平衡。这时,材料处于状态i的概率满足波尔兹曼分布
其中:X表示材料当前状态的随机变量;S表示状态空间集合。
显然
其中:|S|表示集合S中状态的数量。这表明所有状态在高温下具有相同的概率。而当温度下降时,有
上式表明当温度降至很低时,材料会以很大概率进入最小能量状态。
假定要解决的问题是一个寻找最小值的优化问题,将物理学中模拟退火的思想应用于优化问题就可以得到模拟退火寻找最优结果的方法。(www.xing528.com)
考虑这样一个优化组合问题:优化函数为f :x→R+,其中x∈S,它表示优化问题的一个可行解,R+={y |y∈R,y≥0},S表示函数的定义域。N(x)∈S表示x的一个邻域集合。
首先给定一个初始温度T0和该优化问题的一个初始解x(0),并由x(0)生成下一个解x′∈N [(x)],是否接受x′作为一个新解x(1)依赖于如下概率:优的结果。
注意到,在每个Ti下,所得到的一个新状态x(k+1)完全依赖于前一个状态x(k),和前面的状态x(0),…,x (k-1)无关,因此这是一个马尔可夫过程。使用马尔可夫过程对上述模拟退火的步骤进行分析,结果表明:从任何一个状态x(k)可以生成下一个解x′的概率,在N[x(k)]中是服从均匀分布的,且新状态x′被接受的概率满足式(2.1),那么经过有限次的转换,在温度Ti下的平衡态xi的分布由下式给出:
温度T降为0时,ix的分布为
这说明如果过程温度下降十分缓慢,而在每个温度都有足够多次的状态转换的情况下,使之在每一个温度下达到热平衡,则全局最优解将以概率1被找到。因此,模拟退火算法可以找到全局最优解。
在模拟退火算法中应注意以下问题:
(1)从理论上讲,降温过程要足够缓慢,要使得在每一温度下达到热平衡。 但在计算机模拟实现中,如果降温速度过缓,所得到的解的性能会令人较为满意,但是算法会太慢,相对于简单的搜索算法不具有明显优势。如果降温速度过快,很可能最终得不到全局最优解。因此使用时要综合考虑解的性能和算法速度,在两者之间采取折中方式。
(2)要确定在每一温度下状态转换的结束准则。实际操作可以考虑当连续m次的转换过程没有使状态发生变化时结束该温度下的状态转换。最终温度可以提前确定为一个较小的值eT,或连续几个温度下转换过程没有使状态发生变化算法就结束。
(3)选择初始温度和确定某个可行解的邻域的方法也要恰当。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。