1
模式识别与智能计算的MATLAB实现
1.11.4.2 9.4.2 模拟退火算法的基本过程
9.4.2 模拟退火算法的基本过程

设优化问题的一个解i及其目标函数f(i)分别与固体的一个微观状态i及能量等价Ei,令算法进程递减的控制参数t对应于固体退火过程的温度T,则对于控制参数t的每一步取值,算法持续进行“产生新解—判断—接受/舍弃”的迭代过程就对应于固体在某一恒定温度下趋于热平衡的过程,也就执行了一次Metropolis算法。

模拟退火算法由解空间、目标函数和初始解三部分组成:

解空间:对所有可能解均为可行解的问题定义为可能解的集合;对存在不可行解的问题,则需限定空间为所有可能解的集合,或者允许包含不可行解但在目标函数中用罚函数处罚以致最终完全排除不可行解。

目标函数:对优化目标的量化描述,是解空间到某个数集的一个映射,通常表示为若干优化目标的一个和式,应正确体现问题的整体优化要求且较易计算,当解空间包含不可行解时还应包含罚函数项。

初始解:是算法迭代的起点。因为模拟退火算法不十分依赖于初始解,所以可任意选取一个初始解。

模拟退火算法的基本过程如下:

①初始化。给定初始温度T0及初始解a0,计算解对应的目标函数值f(a0)。初始解一般用随机的方法产生。

②模型扰动(一般为随机)产生新解alt及对应的目标函数值alt

③计算函数差值alt

④如果∆f≤0,则接受新解为当前解。

⑤如果∆f>0,则以概率p接受新解。

alt

⑥对当前温度T降温,对第②~⑤步骤迭代N次,即一个马尔可夫链LN

⑦如果满足终止条件,则输出当前解为最优解,结束算法;否则降低温度,继续迭代。