通俗解釋模擬退火演算法

2021-08-22 16:39:30 字數 1301 閱讀 9763

介紹模擬退火前,先介紹爬山演算法。

一. 爬山演算法 ( hill climbing )

爬山演算法是一種簡單的貪心搜尋演算法,該演算法每次從當前解的臨近解空間中選擇乙個最優解作為當前解,直到達到乙個區域性最優解。

爬山演算法實現很簡單,其主要缺點是會陷入區域性最優解,而不一定能搜尋到全域性最優解。如圖1所示:假設c點為當前解,爬山演算法搜尋到a點這個區域性最優解就會停止搜尋,因為在a點無論向那個方向小幅度移動都不能得到更優的解。

二. 模擬退火(sa,simulated annealing)思想

爬山法是完完全全的貪心法,每次都鼠目寸光的選擇乙個當前最優解,因此只能搜尋到區域性的最優值。模擬退火其實也是一種貪心演算法,但是它的搜尋過程引入了隨機因素。模擬退火演算法以一定的概率來接受乙個比當前解要差的解,因此有可能會跳出這個區域性的最優解,達到全域性的最優解。以圖1為例,模擬退火演算法在搜尋到區域性最優解a後,會以一定的概率接受到e的移動。也許經過幾次這樣的不是區域性最優的移動後會到達d點,於是就跳出了區域性最大值a。

模擬退火演算法描述:

若j( y(i+1) )>= j(y(i) )  (即移動後得到更優解),則總是接受該移動

若j( y(i+1) )< j(y(i) )  (即移動後的解比當前解要差),則以一定的概率接受移動,而且這個概率隨著時間推移逐漸降低(逐漸降低才能趨向穩定)

這裡的「一定的概率」的計算參考了金屬冶煉的退火過程,這也是模擬退火演算法名稱的由來。

根據熱力學的原理,在溫度為t時,出現能量差為de的降溫的概率為p(de),表示為:

p(de) = exp( de/(kt) )

其中k是乙個常數,exp表示自然指數,且de<0。這條公式說白了就是:溫度越高,出現一次能量差為de的降溫的概率就越大;溫度越低,則出現降溫的概率就越小。又由於de總是小於0(否則就不叫退火了),因此de/kt < 0 ,所以p(de)的函式取值範圍是(0,1) 。

隨著溫度t的降低,p(de)會逐漸降低。

我們將一次向較差解的移動看做一次溫度跳變過程,我們以概率p(de)來接受這樣的移動。

關於爬山演算法與模擬退火,有乙個有趣的比喻:

爬山演算法:兔子朝著比現在高的地方跳去。它找到了不遠處的最高山峰。但是這座山不一定是珠穆朗瑪峰。這就是爬山演算法,它不能保證區域性最優值就是全域性最優值。

模擬退火:兔子喝醉了。它隨機地跳了很長時間。這期間,它可能走向高處,也可能踏入平地。但是,它漸漸清醒了並朝最高方向跳去。這就是模擬退火。

通俗理解模擬退火演算法

模擬退火演算法 模 擬退火演算法是是爬山演算法的改進演算法,演算法過程中是以一定的概率接受乙個比當前解更差的解,故有可能跳出區域性最優解從而達到全域性最優解。更新解的情況如下 1.移動後得到更優解,則總是接受該移動 2.移動後比當前解要差,則以一定概率接受該移動 模擬退火演算法解決旅行商問題 旅行商...

通俗理解 模擬退火演算法

相比於傳統貪心演算法,模擬退火演算法最大的改進就是對於非最優解系統能夠以一定的概率接受,下邊通過公式具體說明 假設前乙個狀態為x n 系統根據某一指標 梯度下降 狀態變為x n 1 相應的,系統的能量 全域性最優解的函式值 由e n 變為e n 1 定義系統由x n 變為x n 1 的接受概率p為 ...

模擬退火演算法

w 模擬退火演算法的基本思想 將乙個優化問題比擬成乙個金屬物體,將優化問題的目標函式比擬成物體的能量,問題的解比擬成物體的狀態,問題的最優解比擬成能量最低的狀態,然後模擬金屬物體的退火過程,從乙個足夠高的溫度開始,逐漸降低溫度,使物體分子從高能量狀態緩慢的過渡到低能量狀態,直至獲得能量最小的理想狀態...