1.模擬退火法簡介
模擬退火法是一種狀態空間的局部搜索算法,它屬於比較通用的尋找最優解的算法。
模擬退火算法從某一較高初溫出發,伴隨溫度參數的不斷下降,結合概率突跳特性在解空間中隨機尋找目標函數的全局最優解,即在局部最優解能概率性地跳出並最終趨於全局最優。
2.模擬退火法算法描述
function Simulated-Annealing(problem, schedule) returns a solution state
inputs: problem, a problem schedule, a mapping from time to “temperature”
local variables: current, a node next, a node T, a “temperature” controlling prob. of downward steps
current←Make-Node(Initial-State[problem])
for t← 1 to ∞ do
T←schedule[t]
if T = 0 then return current
next←a randomly selected successor of current
ΔE←Value[next] – Value[current]
if ΔE > 0 then current←next
else current←next only with probability p
注:
①p =
3.模擬退火法的優勢
模擬退火算法的主要優點之一就是能以一定的概率接受目標函數值不太好的狀態, 這使得該算法即便落入局部最優的陷阱中,理論上經過足夠長的時間也可以跳出局部最優
4.模擬退火法初始溫度的重要性
由模擬退火法的優勢可以知道,模擬退火算法相對於爬山法來說,它可以從局部最優的陷阱中走出來,形象點說就是它可以“智能地下山”。從算法描述可以看出,該算法由一個概率決定該算法是否會選擇”下山”, 這個概率就是p=
5.模擬退火法初始溫度值的計算方法
從google學術中找到關於模擬退火法的論文,它們多數都是優化退火策略的研究。其中一篇論文(作者是Hajek), 他提出要保證找到全局最優解所需要的迭代次數是很多的。在迭代的過程中,從一個狀態i到一個狀態j的轉換概率可以表示如下:
在這篇論文中, 作者給出了
通俗點講,
對於
其中,N(i)表示狀態i附近的狀態數目
根據Hajek的這篇論文,WALID BEN-AMEUR給出了一個對於在溫度T下面計算狀態轉換可以接受的概率公式:
根據概率估計的方法,可以得出下面的公式:
有了可接受概率的近似估計公式之後,我們使用可接受概率的近似值替代複雜的可接受概率計算公式,從而簡化初始溫度值的計算複雜度。
計算模擬退火法溫度值的方法
Step 1
(a)爲了計算χˆ (T ) ,估算樣本||s||的數目
(b)隨機產生並存儲||s||的正變換(正變換意思是說變換後的狀態值要比變換前的狀態值要大,即Δ E > 0)
(c)設定T1,T1是嚴格的正數,設置n=1(T1可能會比初始溫度T0離得很遠,但最後還是可以通過溫度迭代的計算不斷逼近T0)
Step 2
(a) 計算χˆ (Tn)
(b)If
otherwise
-
-n = n + 1
-go to Step2 (a)
End