相比於傳統貪心演算法,模擬退火演算法最大的改進就是對於非最優解系統能夠以一定的概率接受,下邊通過公式具體說明:
假設前乙個狀態為x(n)
,系統根據某一指標(梯度下降),狀態變為x(n+1)
,相應的,系統的能量(全域性最優解的函式值)由e(n)
變為e(n+1)
,定義系統由x(n)
變為x(n+1)
的接受概率p
為:
p
=1, e(n+1)p=
⎩⎪⎪⎨
⎪⎪⎧
1,e(
n+1)
n)e−
te(n
+1)−
e(n)
,e(
n+1)
≥e(n
)通過上述公式可知,當當前狀態的能量優於前一狀態的能量(全域性最優解的函式值)時,演算法接受當前解(以概率1的概率接受);當當前狀態的能量差於前一狀態的能量時,系統會以一定概率接受當前解,
通過分析第二種情況下的接受概率公式可知:接受概率和兩次狀態的能量差呈負相關,和引數t呈正相關說明當前解和當前最優解的差距越大,接受當前解的概率越低;t引數越大,接受的概率越大。
在上面的公式中,可以調節的引數就是t,t如果過大,就會導致退火太快,達到區域性最優值就會結束迭代,如果取值較小,則計算時間會增加,實際應用中採用退火溫度表,在退火初期採用較大的t值,隨著退火的進行,逐步降低,具體如下:
t(0) 應選的足夠高,使的所有轉移狀態都被接受。初始溫度越高,獲得高質量的解的概率越大,耗費的時間越長。
最簡單的下降方式是指數式下降:
t (n
)=λt
(n),
n=1,
2,3,
....
.t(n) = \lambda t(n) ,n =1,2,3,.....
t(n)=λ
t(n)
,n=1
,2,3
,...
..其中 λ是小於1的正數,一般取值為0.8到0.99之間。使的對每一溫度,有足夠的轉移嘗試,指數式下降的收斂速度比較慢,
其他下降方式如下:
t (n
)=t(
0)lo
g(1+
t)
t(n) = \frac
t(n)=l
og(1
+t)t
(0)
t (n
)=t(
0)1+
tt(n) = \frac
t(n)=1
+tt(
0)t為迭代次數
如果在若干次迭代的情況下每有可以更新的新狀態或者達到使用者設定的閾值,則退火完成。
參考文章:深度學習 — 模擬退火演算法詳解(simulated annealing, sa)
通俗理解模擬退火演算法
模擬退火演算法 模 擬退火演算法是是爬山演算法的改進演算法,演算法過程中是以一定的概率接受乙個比當前解更差的解,故有可能跳出區域性最優解從而達到全域性最優解。更新解的情況如下 1.移動後得到更優解,則總是接受該移動 2.移動後比當前解要差,則以一定概率接受該移動 模擬退火演算法解決旅行商問題 旅行商...
通俗解釋模擬退火演算法
介紹模擬退火前,先介紹爬山演算法。一.爬山演算法 hill climbing 爬山演算法是一種簡單的貪心搜尋演算法,該演算法每次從當前解的臨近解空間中選擇乙個最優解作為當前解,直到達到乙個區域性最優解。爬山演算法實現很簡單,其主要缺點是會陷入區域性最優解,而不一定能搜尋到全域性最優解。如圖1所示 假...
模擬退火演算法
w 模擬退火演算法的基本思想 將乙個優化問題比擬成乙個金屬物體,將優化問題的目標函式比擬成物體的能量,問題的解比擬成物體的狀態,問題的最優解比擬成能量最低的狀態,然後模擬金屬物體的退火過程,從乙個足夠高的溫度開始,逐漸降低溫度,使物體分子從高能量狀態緩慢的過渡到低能量狀態,直至獲得能量最小的理想狀態...