啟發式演算法 模擬退火演算法

2021-08-27 18:14:18 字數 897 閱讀 1365

爬山演算法:

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

該演算法實現簡單,其主要缺點是會陷入區域性最優解。如,按箭頭的方向搜尋,當達到a點時,無論朝哪個方向小幅度移動都不能得到更優的解。

模擬退火演算法

模擬退火演算法**於固體退火原理,是一種基於概率的演算法,將固體加溫至充分高,再讓其冷卻,加溫時,固體內部粒子隨溫公升變為無序狀,內能增大,而逐漸冷卻時粒子漸趨有序,在每個溫度都達到平衡態,最後在常溫時達到基態,內能減為最小。

模擬退火是基於monte-carlo迭代求解策略的一種隨機尋優演算法,其出發點是基於物理中固體物質的退火過程與一般組合優化問題之間的相似性。模擬退火演算法從某一較高初溫出發,伴隨溫度引數的不斷下降,結合概率突跳特性在解空間中隨機尋找目標函式的全域性最優解,即在區域性最優解處能夠概率性地跳出並最終趨於全域性最優。

模擬退火演算法是一種通用的優化演算法,理論上演算法具有概率的全域性優化效能。

爬山演算法完全是一種貪心演算法,每次都是選擇乙個當前的最優解,因此只能搜尋到區域性的最優值。模擬退火演算法其實也是一種貪心演算法,但在搜尋過程中引入了隨機因素。模擬退火演算法以一定的概率來接受乙個比當前解要差的解,因此有可能會跳出這個區域性的最優解,到達全域性的最優解。仍以上圖為例,當搜尋到區域性最優解a後,會以一定的概率跳到e點,這樣便有機會找到全域性最優值b點。

以最小化目標函式 f (x) 為例:

啟發式演算法 模擬退火演算法

執行環境 windows10,python3.7 1.問題模型 y x 7 x 2 x 6 x 9 s in x si n 0.5 x y x 7 x 2 x 6 x 9 sin x sin 0.5 x y x 7 x 2 x 6 x 9 sin x s in 0 5 x x 10 10 x in ...

現代啟發式演算法(二) 模擬退火演算法

繼續我們在遺傳演算法求解tsp問題中所說的,遺傳演算法具有很強的全域性搜尋能力,但由於 早熟 問題使得區域性搜尋能力不足,模擬退火演算法雖然全域性搜尋能力不強,但具有很強的區域性搜尋能力,混合使用遺傳演算法和模擬退火演算法可以解決很多np hard問題,即由遺傳演算法提供問題的較優解,然後由模擬退火...

啟發式演算法之蟻群演算法 模擬退火演算法

啟發式演算法 heuristic algorithm 是相對於最優化演算法提出的。乙個問題的最優演算法求得該問題每個例項的最優解。啟發式演算法可以這樣定義 乙個基於直觀或經驗構造的演算法,在可接受的花費 指計算時間和空間 下給出待解決組合優化問題每乙個例項的乙個可行解,該可行解與最優解的偏離程度一般...