模拟退火算法应用方法,模拟退火算法的改进方法

首页 > 教育 > 作者:YD1662024-05-12 17:55:07

一、定义

模拟退火算法(Simulated Annealing,SA)是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解。“模拟退火”算法是源于对热力学中退火过程的模拟,在某一给定初温下,通过缓慢下降温度参数,使算法能够在多项式时间内给出一个近似最优解。最早的思想是由Metropolis在1953年提出,Kirkpatrick等人把模拟退火思想与组合最优化的相似点进行类比,将模拟退火算法引入到组合优化领域。模拟退火算法是解决传统方法难处理的NP完全问题(Nondeterministic Polynomial Complete Problem),TSP(Traveling Salesman Problem)货郎担问题的有效方法之一。

模拟退火算法是一种高效、通用、易实现的优化算法,适合于解决大规模组合优化问题的通用而有效的近似算法。

模拟退火算法是一种贪心算法,也是一种随机算法,它有较强的局部搜索能力,对参数依赖性较强,并不一定能找到全局的最优解,但可以比较快的找到问题的近似最优解。

SA特别适合并行运算,描述简单、初始条件限制少、使用灵活且效率高,所以被广泛应用。

二、与贪心算法、爬山算法、 梯度下降算法的比较

爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。

爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如图2-1所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方向小幅度移动都不能得到更优的解。

模拟退火算法应用方法,模拟退火算法的改进方法(1)

图2-1

模拟退火其实也是一种贪心算法,与爬山算法不同,它是下降寻找谷底,并且它的搜索过程引入了随机因素。模拟退火算法以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。如图2-2所示,它的搜索路径是A->B->C->D->E->F-G, 最终找到了G这个全局最优解。

模拟退火算法应用方法,模拟退火算法的改进方法(2)

图2-2

关于普通贪心算法与模拟退火,有一个有趣的比喻:

普通贪心算法:兔子朝着比现在低的地方跳去。它找到了不远处的最低的山谷。但是这座山谷不一定最低的。 它不能保证局部最优值就是全局最优值。

模拟退火:兔子喝醉了。它随机地跳了很长时间。这期间,它可能走向低处,也可能踏入平地。但是,它渐渐清醒了并朝最低的方向跳去。

梯度下降法和模拟退火算法都是求最优解的方法,但它们也有所不同。利用一阶导数去求极值的梯度下降法,可以求得局部最优解,但不能直接搜索到全局最优解;由于退火算法加入了候选解,候选解由一定的概率密度分布从解空间随机采样获得,故可以取到全局最优解。

三、基本原理

模拟退火算法的出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。物理中固体物质的退火过程由加温阶段、平衡阶段、冷却阶段这三部分组成。加温阶段对应算法的设定初温,平衡阶段对应算法的采样过程,该过程须遵循Metropolis准则,冷却阶段对应算法控制参数下降。模拟退火基本原理如图3-1与图3-2所示。

模拟退火算法应用方法,模拟退火算法的改进方法(3)

图3-1 固体退火过程示意图

模拟退火算法应用方法,模拟退火算法的改进方法(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.