優化演算法1:模擬退火演算法思想解析
1.演算法簡介
模擬退火演算法得益於材料的統計力學的研究成果。統計力學表明材料中粒子的不同結構對應於粒子的不同能量水平。在高溫條件下,粒子的能量較高,可以自由運動和重新排列。在低溫條件下,粒子能量較低。如果從高溫開始,非常緩慢地降溫(這個過程被稱為退火),粒子就可以在每個溫度下達到熱平衡。當系統完全被冷卻時,最終形成處於低能狀態的晶體。
如果用粒子的能量定義材料的狀態,Metropolis 演算法用一個簡單的數學模型描述了退火過程。假設材料在狀態i之下的能量為E(i),那麼材料在溫度T 時從狀態i進入狀態j 就遵循如下規律:
(1)如果E( j) ≤ E(i),接受該狀態被轉換。
(2)如果E( j) > E(i),則狀態轉換以如下概率被接受:
總結:
(1)在某一個特定溫度下,進行了充分的轉換之後,材料將達到熱平衡。
(2)當溫度降至很低時,材料會以很大概率進入最小能量狀態。
2.模擬退火思想最小值尋優問題
假設目標函式為
給定一個初始溫度
泛泛地說,對於某一個溫度
我們注意到,在每個i T 下,所得到的一個新狀態x(k +1)完全依賴於前一個狀態x(k),可以和前面的狀態x(0),…, x(k −1)無關,因此這是一個馬爾可夫過程。
如果溫度下降十分緩慢,而在每個溫度都有足夠多次的狀態轉移,使之在每一個溫度下達到熱平衡,則全域性最優解將以概率1 被找到。因此可以說模擬退火演算法可以找到全域性最優解。
在模擬退火演算法中應注意以下問題:
(1)理論上,降溫過程要足夠緩慢,要使得在每一溫度下達到熱平衡。但在計算機實現中,如果降溫速度過緩,所得到的解的效能會較為令人滿意,但是演算法會太慢,相對於簡單的搜尋演算法不具有明顯優勢。如果降溫速度過快,很可能最終得不到全域性最優解。因此使用時要綜合考慮解的效能和演算法速度,在兩者之間採取一種折衷。
(2)要確定在每一溫度下狀態轉換的結束準則(實即接受概率計算方法)。實際操作可以考慮當連續m 次的轉換過程沒有使狀態發生變化時結束該溫度下的狀態轉換。最終溫度的確定可以提前定為一個較小的值
(3)選擇初始溫度和確定某個可行解的鄰域的方法也要恰當。
3.演算法步驟
(1)目標函式確定(即代價函式確定)
(2)尋找解空間,並給出一個較好的初始解(Monte Carlo方法),選擇初始溫度(通常選擇為1)
(3)新解的產生:2變換法或者3變換法
(4)代價函式差(新解與舊解之差)
(5)接受準則(接受新解的概率計演算法則)
(6)降溫:利用選定的降溫係數α 進行降溫即:T ←αT ,得到新的溫度,如取α =0.999
(7)結束條件:用選定的終止溫度e =