凯鲁嘎吉
用书写铭记日常,最迷人的不在远方

模拟退火算法及模型

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

一、算法的提出 

    模拟退火算法最早的思想由Metropolis等(1953)提出,1983年Kirkpatrick等将其应用于组合优化

二、算法的目的

    1.解决NP复杂性问题

    2.克服优化过程陷入局部极小

    3.克服初值依赖性

三、物理退火过程

    1.加温过程 -- 增强粒子的热运动,消除系统原先可能存在的非均匀态;

    2.等温过程 -- 对于与环境换热而温度不变的封闭系统,系统状态的自发变化总是朝自由能减少的方向进行,当自由能达到最小时,系统达到平衡态;

    3.冷却过程 -- 使粒子热运动减弱并渐趋有序,系统能量逐渐下降,从而得到低能的晶体结构。

四、组合优化与物理退火的相似性

五、数学表述

    1.在温度 T ,分子停留在状态 r 满足波尔兹曼概率分布

        E 表示分子能量的一个随机变量,E(r) 表示状态 r 的能量,kb为Boltzmann常数。Z(T)为概率分布的标准化因子

    2.Metropolis准则 - 以概率接受新状态

        假设在状态xold时,系统受到某种扰动而使其状态变为xnew。与此相对应,系统的能量也从E(xold)变为E(xnew) ,系统由xold状态变为xnew状态的接受概率p为

六、状态产生函数

1. 原则

    产生的候选解应遍布全部解空间(保证全局最优解)

2. 方法

    在当前状态的邻域结构内以一定概率方式(均匀分布、正态分布、指数分布等)产生

七、状态接受函数

1. 原则

    (1)在固定温度下,接受使目标函数下降的候选解的概率要大于使目标函数上升的候选解概率;

    (2)随着温度的下降,接受使目标函数上升的解的概率要逐渐减小;

    (3)当温度趋于零时,只能接受目标函数下降的解。

2. 方法

    具体形式对算法影响不大, 一般采用min[1,exp(-∆C/t)]

八、初温

1. 收敛性分析

    通过理论分析可以得到初温的解析式,但解决实际问题时难以得到精确的参数;

     初温应充分大;

2. 实验表明

    初温越大,获得高质量解的机率越大,但花费较多的计算时间。

3. 方法

    (1)均匀抽样一组状态,以各状态目标值的方差为初温;

    (2)随机产生一组状态,确定两两状态间的最大目标值差,根据差值,利用一定的函数确定初温;

    (3)利用经验公式。

九、温度更新函数

    若固定每一温度,算法均计算至平稳分布,然后下降温度,则称为时齐算法;

    若无需各温度下算法均达到平稳分布,但温度需按一定速率下降,则称为非时齐算法。

十、内循环终止准则 

1. 非时齐模拟退火算法

    每个温度下只产生一个或少量候选解

2. 时齐算法—常用的Metropolis抽样稳定准则

    (1)检验目标函数的均值是否稳定;

    (2)连续若干步的目标值变化较小;

    (3)按一定的步数抽样。  

十一、外循环终止准则 

常用方法

    (1)设置终止温度的阈值;

    (2)设置外循环迭代次数;

    (3)算法搜索到的最优值连续若干步保持不变;

    (4)概率分析方法。

十二、算法描述

    (1)随机产生一个初始解 x0 ,令xbest = x0 ,并计算目标函数值E( x0 );

    (2)设置初始温度T = T0,迭代次数 i = 1 ;

    (3)do while T > Tmin

            1) for j = 1 ~ k

            2) 对当前最优解 xbest 按照某一邻域函数, 产生一新的解 xnew 。计算新的目标函数值E(xnew ),并计算目标函数值的增量∆E= E(xnew )- E(xbest );

            3) 如果 ∆E <0 , 则 xbest = xnew ;

            4) 如果 ∆E >0, 则 p = exp (- ∆E / T(i));

                і) 如果 c = random[0,1]<p, xbest = xnew;

                ii) 否则 xbest = xbest

            5) End for

    (4)update T, i = i+1;

    (5)End Do

    (6)输出当前最优点,计算结束。

 1 给定初温t=t0,随机产生初始状态s=s0,令k=0 2 Repeat
 3    Repeat
 4       产生新状态sj=Genete(s);
 5         if min{1,exp[-(C(sj)-C(s))/tk]}>=randrom[0,1]             
 6               s=sj;
 7    Until 抽样稳定准则满足;
 8    退温tk+1=update(tk)并令k=k+1 9 Until 算法终止准则满足; 
10 输出算法搜索结果。

十三、模拟退火算法的优缺点

    1.模拟退火算法的优点

        (1)质量高;

        (2)初值鲁棒性强;

        (3)简单、通用、易实现;

        (4)能获得全局最优。

    2.模拟退火算法的缺点

        由于要求较高的初始温度、较慢的降温速率、较低的终止温度,以及各温度下足够多次的抽样,因此优化过程较长。

posted on 2018-09-14 20:56  凯鲁嘎吉  阅读(5277)  评论(0编辑  收藏  举报