模擬退火原理

鴨脖發表於2013-01-30
1.1  演算法簡介
模擬退火演算法得益於材料的統計力學的研究成果。統計力學表明材料中粒子的不
同結構對應於粒子的不同能量水平。在高溫條件下,粒子的能量較高,可以自由運動和
重新排列。在低溫條件下,粒子能量較低。如果從高溫開始,非常緩慢地降溫(這個過
程被稱為退火),粒子就可以在每個溫度下達到熱平衡。當系統完全被冷卻時,最終形
成處於低能狀態的晶體。
如果用粒子的能量定義材料的狀態,Metropolis演算法用一個簡單的數學模型描述了
退火過程。假設材料在狀態i之下的能量為 ) (i E ,那麼材料在溫度T時從狀態i進入狀
態j就遵循如下規律:
(1)如果 ) ( ) ( i E j E ≤ ,接受該狀態被轉換。
(2)如果 ) ( ) ( i E j E > ,則狀態轉換以如下概率被接受:
KT
j E i E
e
) ( ) ( −
其中K是物理學中的波爾茲曼常數,T是材料溫度。
在某一個特定溫度下,進行了充分的轉換之後,材料將達到熱平衡。這時材料處
於狀態i的概率滿足波爾茲曼分佈:




= =
S j
KT
j E
KT
i E
T
e
e
i x P
) (
) (
) (
其中x表示材料當前狀態的隨機變數,S表示狀態空間集合。
顯然
| |
1
lim
) (
) (
S
e
e
S j
KT
j E
KT
i E
T
=




∞ →
-272-其中 | | S 表示集合S中狀態的數量。這表明所有狀態在高溫下具有相同的概率。而當溫
度下降時,
∑ ∑ ∑















+
=
min
min
min
min
min
min
min
) ( ) (
) (
0
) (
) (
0
lim lim
S j
KT
E j E
S j
KT
E j E
KT
E i E
T
S j
KT
E j E
KT
E i E
T
e e
e
e
e






= =







其它

0
| |
1
lim
min
min ) (
) (
0
min
min
min
S i
S
e
e
S j
KT
E j E
KT
E i E
T
其中 ) ( min min
j E E
S j∈
= 且 } ) ( | {
min min E i E i S = = 。
上式表明當溫度降至很低時,材料會以很大概率進入最小能量狀態。
假定我們要解決的問題是一個尋找最小值的優化問題。將物理學中模擬退火的思
想應用於優化問題就可以得到模擬退火尋優方法。
考慮這樣一個組合優化問題:優化函式為
+ →R x f : ,其中 S x∈ ,它表示優化
問題的一個可行解, } 0 , | { > ∈ =
+
y R y y R ,S表示函式的定義域。 S x N ⊆ ) ( 表示x
的一個鄰域集合。
首先給定一個初始溫度0 T和該優化問題的一個初始解 ) 0 ( x ,並由 ) 0 ( x 生成下一個
解 )) 0 ( ( ' x N x∈ ,是否接受' x作為一個新解 ) 1 ( x 依賴於下面概率:




⎧ <
= → −

其它

)) 0 ( ( ) ' (
0
)) 0 ( ( ) ' (       1
) ' ) 0 ( (
T
x f x f
e
x f x f
x x P
換句話說,如果生成的解' x的函式值比前一個解的函式值更小,則接受 ' ) 1 ( x x = 作為
一個新解。否則以概率 0
)) 0 ( ( ) ' (
T
x f x f
e


接受' x作為一個新解。
泛泛地說,對於某一個溫度i T和該優化問題的一個解 ) (k x ,可以生成' x。接受' x
作為下一個新解 ) 1 ( + k x 的概率為:




⎧ <
= → −

其它

)) ( ( ) ' (
0
)) ( ( ) ' (       1
) ' ) ( (
T
k x f x f
e
k x f x f
x k x P   (1)
在溫度i T下,經過很多次的轉移之後,降低溫度i T,得到 i i T T < +1 。在 1 + i T 下重複上述
過程。因此整個優化過程就是不斷尋找新解和緩慢降溫的交替過程。最終的解是對該問
題尋優的結果。
我們注意到,在每個i T下,所得到的一個新狀態 ) 1 ( + k x 完全依賴於前一個狀態
) (k x ,可以和前面的狀態 ) 1 ( , ), 0 ( − k x x L 無關,因此這是一個馬爾可夫過程。使用馬
爾可夫過程對上述模擬退火的步驟進行分析,結果表明:從任何一個狀態 ) (k x 生成' x的
概率,在 )) ( ( k x N 中是均勻分佈的,且新狀態' x被接受的概率滿足式(1),那麼經過
有限次的轉換,在溫度i T下的平衡態i
x的分佈由下式給出: 
-273-∑



=
S j
T
x f
T
x f
i i
i
i
i
e
e
T P
) (
) (
) (   (2)
當溫度T降為0時,i
x的分佈為:






=
其它

0
| |
1
min
min
*
S x
S P
i
i
並且
1
min
*
= ∑
∈S x
i
i
P
這說明如果溫度下降十分緩慢,而在每個溫度都有足夠多次的狀態轉移,使之在每一個
溫度下達到熱平衡,則全域性最優解將以概率1被找到。因此可以說模擬退火演算法可以找
到全域性最優解。
在模擬退火演算法中應注意以下問題:
(1)理論上,降溫過程要足夠緩慢,要使得在每一溫度下達到熱平衡。但在計算
機實現中,如果降溫速度過緩,所得到的解的效能會較為令人滿意,但是演算法會太慢,
相對於簡單的搜尋演算法不具有明顯優勢。如果降溫速度過快,很可能最終得不到全域性最
優解。因此使用時要綜合考慮解的效能和演算法速度,在兩者之間採取一種折衷。
(2)要確定在每一溫度下狀態轉換的結束準則。實際操作可以考慮當連續m次的
轉換過程沒有使狀態發生變化時結束該溫度下的狀態轉換。最終溫度的確定可以提前定
為一個較小的值e T,或連續幾個溫度下轉換過程沒有使狀態發生變化演算法就結束。
(3)選擇初始溫度和確定某個可行解的鄰域的方法也要恰當

相關文章