模拟退火算法详解

模拟退火属于搜索算法。搜索算法包括盲目搜索和启发式搜索,按照预定的控制策略实行搜索,在搜索控制中获取的中间信息不用来改进控制搜索,称为盲目搜索,反之,称为启发式搜索。关于“启发式”有两种看法:(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

posted @ 2022-08-21 10:13  Oliver2022  阅读(408)  评论(0编辑  收藏  举报