模拟退火算法详解
模拟退火属于搜索算法。搜索算法包括盲目搜索和启发式搜索,按照预定的控制策略实行搜索,在搜索控制中获取的中间信息不用来改进控制搜索,称为盲目搜索,反之,称为启发式搜索。关于“启发式”有两种看法:(1)任何有助于找到问题的解,但不能保证找到解的方法均是启发式方法;(2)有助于加速求解过程和找到较优解的方法是启发式方法。
盲目搜索有深度优先、广度优先、代价优先、向前、向后、双向。。。
启发式搜索有爬山法、模拟退火法、遗传算法、粒子群算法、蚁群算法。。。
贪心算法:
随机选定一个初始解x0;
Do while(终止条件不满足)
在某个领域函数所定义的领域范围内,按照某个(随机)扰动▲产生策略,得到一个新解xi’;
对新解心境评估,得到f(xi’);
如果如果f(xi’)>f(xi)或者f(xi’)<f(xi),即新解比老解好,则令xi+1=xi’;
否则xi+1=xi;
End do
爬山算法:
随机选定一个初始解x0;
Do While(终止条件不满足)
在某个领域函数所定义的领域范围内,按照某个(随机)扰动产生策略,得到多个新解Xnew={xi1,xi2,…,xik};
对这组新解进行评估,的{f(xi1),f(xi2),…,f(xik)};
xi+1=xi’,xi’属于Xnew,对任意xij,f(xi’)>f(xi)且f(xi’)>f(xij),即当新的当前解比老解好,并且是所有新解中最好的一个;
如果对任意xij,f(xi)<f(xij),则xi+1=xi;
End do
算法设计要素:
编码策略(个体表示与问题解的映射关系)
初始解的产生(从什么位置开始搜索)
领域函数的设计(下一个解的产生概率与当前解之间的距离的关系)
新解产生策略(随机、确定)
接受策略(贪心,总是接受比当前解更好的解)
存在问题:贪心算法和爬山算法的缺点是只能收敛于局部最优解,遇到平台则无以事从。因此需要设计新的搜索算法。
模拟退火算法起源于锻造过程(加热金属,在温度下降的过程中,使进入产生想要的形态)
物理退火过程:加温过程、等温过程、冷却(退火)过程
等温下热平衡过程可用MonteCarlo方法模拟,计算量大。
1953年Metropolis提出重要性采样方法,即以概率接受新状态,称Metropolis准则,计算量相对Monte Carlo方法显著减少。
1983年Kirkpatrick等提出模拟退火算法,并将其应用于组合优化问题的求解,比如tsp。
Metropolis准则:
假设在状态xold时,系统受到某种扰动而使其状态变为xnew。于此相对应,系统的能量也从E(xold)变成E(xnew),系统由状态xold变为状态xnew的接受概率p。
模拟退火算法的流程如下:
1)随机产生一个初始解x0,令xbest=x0,并计算目标函数值E(x0);
2)设置初始温度T(0)=To,迭代次数i=1;
3)Do while T(i)>Tmin
1)for j=1~k
2)对当前最优解xbest按照某一领域函数,产生一新的解xnew。计算新的目标函数值E(xnew),并计算目标函数值的增量▲E=E(xnew)-E(xold)。
3)如果▲E<0,则xbest=xnew;
4)如果▲E>0,则p=exp(-▲E/T(i));
1)如果c=random(0,1)<p,xbest=xnew;否则xbest=xbest;
5)End for
4)i=i+1;
5)End do
6)输出当前最有点,计算结束
模拟退火算法要素
1、状态空间与状态生产函数(领域函数)
搜索空间也称为状态空间,他由经过编码的可行解的集合所组成。
状态产生函数(领域函数)应尽可能保证产生的候选解遍布全部解空间。通常由两部分组成,即产生候选解的方式和候选解产生的概率分布。
候选解一般采用按照某一概率密度函数对解空间进行随机采样获得。
概率分布可以是均匀分布、正态分布、指数分布等。
2、状态转移概率(接受概率)p
状态转移概率是从一个状态xold向另一个状态xnew的转移概率;
通俗的理解是接受一个新解为当前解的概率;
它与当前的温度参数T有关,随温度下降而减小。
一般采用metropolis准则
3、冷却精度表T(t)
冷却进度表是从某一高温状态To向低温状态冷却时的降温管理表。
假设时刻t的温度用T(t)来表示,则经典模拟退火算法的降温方式为:
T(t)=To/lg(1+t),而快速模拟退火算法的降温方式为:T(t)=To/(1+t)。
这两种方式都能够使模拟退火算法收敛于全局最小点。
4、初始温度To
实验表明,初温越大,获得高质量解的几率越大,但花费的计算时间将增加。因此,初温的确定应折中考虑优化质量和优化效率,常用的方法包括:
(1)均匀抽样一组状态,一各状态目标值的方差为初温。
(2)随机产生一组状态,确定两两状态的最大目标值差,然后依据差值,利用一定的函数确定温度。
(3)利用经验函数给出。
5、内循环终止准则
或称Metropolis抽样稳定准则,用于决定在各温度下产生候选解的数目。常用的抽样稳定准则包括:
(1)检验目标函数的均值是否稳定;
(2)连续若干步的目标值变化较小;
(3)按一定的步数抽样。
6、外循环终止准则
即算法终止准则,常用的包括:
(1)设置终止温度的阀值
(2)设置外循环迭代次数
(3)算法搜索到的最优值连续若干步保持不变
(4)检验系统熵是否稳定
模拟退火算法的改进
(1)设计合理的状态产生函数,使其根据搜索进程的需要表现出状态的全空间分散性或局部区域性
(2)设计高效的退火策略
(3)避免状态的迂回搜索
(4)采用并行搜索结构
(5)为避免陷入局部极小,改进对温度的控制方程
(6)选择合适的初始状态
(7)设计合适的算法终止准则
算法实现与应用
用模拟退火求解TSP问题。一般情况下,TSP问题用动态规划法计算,但对于大规模的TSP问题,动态规划法效率低,采用模拟退火法可以解决。
模拟退火法解决TSP问题的基本过程是:
(1)编码(城市编号顺序编码)
(2)状态产生函数(逆转算子)
(3)状态接受函数
(4)初温与初始状态
(5)降温函数设计
(6)温度修改准则和算法终止准则
参考资料
https://wenku.baidu.com/view/ea521c06804d2b160b4ec0d1.html
http://blog.csdn.net/acdreamers/article/details/10019849