本文来自论文《模拟退火算法综述》–谢云。
1. 问题由来
在自然科学、 管理科学和工程技术等科技领域, 存在着大量的组合优化问题(Combinatorialoptimiza- tion Problem),其中的NP完全问题(Nondeterministie polynomialComplete problem), 其求解时间随问题规 模呈指数级增长, 当规模稍大时就会因时间限制而失去可行 (Feasibility)。 如著名的货郎担问题 (TravelingSalesman Problem,简记为TSP),即在n 个顶点的完全图中找一条最小 Hamliton 回路 , 当图为 对称图时, 要从(n一1!) /2 个可能解中找出最优者, 需进行(n, 1)! /2一1次比较, 若用每秒运算一亿次的计 算机,n=10时只需0. 0018秒,n=20 就需19年,n =30时则猛增为1. 4X1015年。 显然,如此求其精确解是不可行的 。为解决这类问题, 人们提出了许多近似算法, 但这些算法或因过于注意个别问题的特征 而缺乏通用性, 或因所得解强烈地依赖初始解的选取而缺乏实用 性。模拟退火算法(SimulatedAnnealingAlgorithm)就 是对其中的局部搜索算法(Loeal Sea reh Algo rithm) 改进而提出的。
2. 模拟退火算法
模拟退火算法提出于本世纪 80 年代初, 其思想源于固体退火过程: 将固体加温至充分高, 再让其徐徐冷却。 加温时, 固体内部粒子随温升变为无序状, 内能增 大, 而徐徐冷却时粒子渐趋有序, 在每个温度都达到平 衡态, 最后在常温时达到基态 , 内能减为最小。 根据 MterooPlis准则,粒子在温度T时趋于平衡的几率为 e一△E/(kT,其中E为温度T时的内能,△E为其改变 量, k 为Boltzman 常数。
用固体退火模拟组合优化问题, 将内能 E 模拟为 目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法。由初始解 i i i和控制参数初值 t t t开始,对当前解重复“产生新解->计算目标函数差-> 判断是否接受->接受或舍弃” 的迭代 , 并逐步衰减t 值 , 算法终止时的当前解即为所得近似最优解。 退火过程由冷却进度表(CohngSlcedlue)控制,包括控制 参数的初值 t 及其衰减因子△t 、 每个 t 值时的迭代次数(称为一个MaPokb链的长度)L 和停止条件S。
3. 实现形式
从如下几个方面描述:
数学模型
数学模型:由解空间、目标函数和初始解三部分组成。
- 解空间:对所有可能解均为可行解的问题定义为可能解的集合,对存在不可行解的问题,或限定解空间为所有可行解的结合,或允许包含不可行解但在目标函数中用罚函数 惩罚以至最终完全排除不可行解。
- 目标函数:对优化目标的量化描述,是解空间到某个数集的一个映射,通常表为若干优化目标的一个和式,应正确体现问题的整体优化要求且较易计算,当解空间包含不可行解时还应包括罚函数项。
- 初始解:是算法迭代的起点,实验表明,模拟退火算法是Robust, 即最终解的求得不十分依赖初始解的选取,从而可任意选取一个初始解
新解的产生和接受机制
由4个步骤构成一轮试验
- 首先,按某种随机机制由当前解产生一个新解,通常通过简单变换(如 对部分元素的置换、互换或反演等)产生,可能产生的新解构成当前解的邻域
- 其次,计算新解伴随的目标函数差,一般由变换的改变部分直接求得
- 第三,由接受准则,即新解更优,或恶化但满足Metropolis准则,判断是否接受新解,对有不可行解而限定解空间仅包含可行解时,还需先判断其可行性
- 最后,满足接受准则时进行当前解和目标函数值的迭代,否则舍弃新解
未完待续