模擬退火演算法是啟發式演算法的一種,啟發式演算法就是從對自然現象的直觀感覺或人類的工作經驗中啟發出來的演算法。有些實際問題根本就沒有最優解,或者最優解幾乎是不可能被求出來,這種情況使用啟發式演算法可以求得較優解,或者是與最優解差別不是很大的較優解,然後由於最優解是無法得知的,所以啟發式演算法也就無法描述所求解與最優解的差別。啟發式演算法所求得解無法保證可行性和最有性,這是啟發式演算法的特點。
模擬退火演算法是一種概率演算法,也就是它依概率求得最優解。退火**於冶金學的專有名詞退火。它主要是模擬這樣的一種過程:將金屬材料加熱後,再經緩慢速率冷卻,這樣粒子就可以在特定的溫度下,達到熱平衡狀態。金屬材料經過加熱後,粒子會離開原來的使內能具有區域性最小值的狀態,然後達到一種比較內能比較高的狀態,在冷卻的過程中,溫度退卻速度較慢,那麼粒子就會有更多的機會停留在使得內能更低的位置,最終達到內能更低的晶體。
演算法思想
模擬退火演算法主要的步驟:
將實際問題抽象到解空間中,解空間一般是離散的一些點。
初始化變數:包括初始溫度,特定溫度下的迭代次數,結束溫度,α
\alpha
α,隨機生成乙個初始解,初始解對演算法的結果沒有影響。
計算初始解的目標函式值,可以理解為初始解的代價
對初始解進行擾動,生成乙個新解(鄰解),計算鄰解的代價,並跟原解進行比較。
如果代價變小,則接受新解,並且代價更新為新解的代價。如果代價變大,則依據metropolis準則接受新解,這是乙個依概率接受的過程。
在特定的溫度下迴圈一定的次數。迴圈結束後進行一次降溫。
溫度不滿足結束條件時,繼續迴圈。
模擬退火演算法的核心是新解的產生和接受,幾乎在任何時候,演算法都在進行這樣的工作。也就是鄰解生成函式,接受準則。
主要元素
注意問題!(
模擬退火玄學演算法學習小計
嗯,頹了一早上 呸 於是去看了一下模擬退火,首先先要講一下辣雞的爬山演算法 這是乙個很顯然會錯的貪心,給出乙個模型 平面上有很多山,一開始有只小張俊在某個點上 嗯沒錯就是乙隻小張俊 然後小張俊比較蠢,他只會看相鄰的點是否比他高,如果比他高那他就走過去。顯然他不一定會跑到最高的點上去因為他只關心相鄰的...
機器學習 模擬退火演算法
爬山演算法 爬山演算法是一種貪心搜尋演算法,該演算法每一步從當前解的臨近解空間中選擇乙個最優解作為當前解,直至達到某個區域性最優解。模擬退火演算法 模擬退火演算法也是一種貪心演算法,但在它的搜尋過程中引入了乙個隨機因素 以一定的概率來接受乙個比當前解要差的解。故而模擬退火演算法有可能跳出區域性的最優...
模擬退火演算法
w 模擬退火演算法的基本思想 將乙個優化問題比擬成乙個金屬物體,將優化問題的目標函式比擬成物體的能量,問題的解比擬成物體的狀態,問題的最優解比擬成能量最低的狀態,然後模擬金屬物體的退火過程,從乙個足夠高的溫度開始,逐漸降低溫度,使物體分子從高能量狀態緩慢的過渡到低能量狀態,直至獲得能量最小的理想狀態...