模擬退火算法及模型


模擬退火算法及模型

作者:凱魯嘎吉 - 博客園 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.模擬退火算法的缺點

        由於要求較高的初始溫度、較慢的降溫速率、較低的終止溫度,以及各溫度下足夠多次的抽樣,因此優化過程較長。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM