演算法 模擬退火演算法

2021-08-26 17:38:23 字數 3835 閱讀 2457

模擬退火演算法

一、簡單介紹

**於固體退火原理,是一種基於概率的演算法。

物理學解釋:

將固體加溫至充分高,再讓其徐徐冷卻,加溫時,固體內部粒子隨

溫公升變為無序狀,內能增大,而徐徐冷卻時粒子漸趨有序,在每個溫度都達到

平衡態,最後在

常溫時達到基態,內能減為最小。模擬退火演算法從某一較高初溫出發,伴隨溫度引數的不斷下降,結合

概率突跳特性在

解空間中隨機尋找

目標函式

的全域性最優解,即在區域性最優解能概率性地跳出並最終趨於全域性最優。

基本原理:

其目標是要找到函式的最大值,若初始化時,初始點的位置在c處,則會尋找到附近的區域性最大值a點處,由於a點出是乙個區域性最大值點,故對於爬山法來講,該演算法無法跳出區域性最大值點。若初始點選擇在d處,根據爬山法,則會找到全部最大值點b。這一點也說明了這樣基於貪婪的爬山法是否能夠取得全域性最優解與初始值的選取由很大的關係。

模擬退火演算法(simulated annealing, sa)的思想借鑑於固體的退火原理,當固體的溫度很高的時候,內能比較大,固體的內部粒子處於快速無序運動,當溫度慢慢降低的過程中,固體的內能減小,粒子的慢慢趨於有序,最終,當固體處於常溫時,內能達到最小,此時,粒子最為穩定。模擬退火演算法便是基於這樣的原理設計而成。

模擬退火演算法從某一較高的溫度出發,這個溫度稱為初始溫度,伴隨著溫度引數的不斷下降,演算法中的解趨於穩定,但是,可能這樣的穩定解是乙個區域性最優解,此時,模擬退火演算法中會以一定的概率跳出這樣的區域性最優解,以尋找目標函式的全域性最優解。如上圖中所示,若此時尋找到了a點處的解,模擬退火演算法會以一定的概率跳出這個解,如跳到了d點重新尋找,這樣在一定程度上增加了尋找到全域性最優解的可能性。

固體退火模擬組合優化問題,將內能e模擬為

目標函式

值f,溫度t演化成控制引數t,即得到解組合優化問題的模擬退火演算法:由初始解i和控制引數初值t開始,對當前解重複「產生新解→計算目標函式差→接受或捨棄」的迭代,並逐步衰減t值,演算法終止時的當前解即為所得近似

最優解,這是基於

蒙特卡羅

迭代求解法的一種啟發式

隨機搜尋

過程。退火過程由冷卻進度表(cooling schedule)控制,包括控制引數的初值t及其衰減因子δt、每個t值時的迭代次數l和停止條件s。

二、模擬退火演算法的模型

1模擬退火演算法可以分解為解空間目標函式和初始解三部分。

2模擬退火的基本思想(步驟):

(1)初始化:初始溫度t(充分大),初始解狀態s(是演算法迭代的起點),每個t值的迭代次數l

(2)對k=1, …, l做第(3)至第6步:

(3)產生新解s′

(4)計算增量δt=c(s′)-c(s),其中c(s)為評價函式

(5)若δt<0則接受s′作為新的當前解,否則以概率exp(-δt/t)接受s′作為新的當前解.

(6)如果滿足終止條件則輸出當前解作為最優解,結束程式。

終止條件通常取為連續若干個新解都沒有被接受時終止演算法。

(7) t逐漸減少,且t->0,然後轉第2步。

三、模擬退火演算法的步驟

模擬退火演算法新解的產生和接受可分為如下四個步驟:

第一步:由乙個產生函式從當前解產生乙個位於解空間的新解;為便於後續的計算和接受,減少演算法耗時,通常選擇由當前新解經過簡單地變換即可產生新解的方法,如對構成新解的全部或部分元素進行置換、互換等,注意到產生新解的變換方法決定了當前新解的鄰域結構,因而對冷卻進度表的選取有一定的影響。

第二步:是計算與新解所對應的目標函式差。因為目標函式差僅由變換部分產生,所以目標函式差的計算最好按增量計算。事實表明,對大多數應用而言,這是計算目標函式差的最快方法。

第三步:判斷新解是否被接受,判斷的依據是乙個接受準則,最常用的接受準則是metropolis準則: 若δt<0則接受s′作為新的當前解s,否則以概率exp(-δt/t)接受s′作為新的當前解s。

第四步:是當新解被確定接受時,用新解代替當前解,這只需將當前解中對應於產生新解時的變換部分予以實現,同時修正目標函式值即可。此時,當前解實現了一次迭代。可在此基礎上開始下一輪試驗。而當新解被判定為捨棄時,則在原當前解的基礎上繼續下一輪試驗。

模擬退火演算法與初始值無關,演算法求得的解與初始解狀態s(是演算法迭代的起點)無關;模擬退火演算法具有漸近收斂性,已在理論上被證明是一種以概率l 收斂於全域性

最優解的全域性優化演算法;模擬退火演算法具有並行性。

四、模擬退火演算法的應用

模擬退火演算法作為一種通用的隨機搜尋演算法,現已廣泛用於

vlsi

設計、影象識別和神經網計算機的研究。模擬退火演算法的應用如下:

[2]

1、模擬退火演算法在vlsi設計中的應用

利用模擬退火演算法進行

vlsi

(超大規模積體電路

)的最優設計,是目前模擬退火演算法最成功的應用例項之一。用模擬退火演算法幾乎可以很好地完成所有優化的

vlsi

設計工作。如全域性佈線、布板、布局和邏輯最小化等等。

2、模擬退火演算法在神經網計算機中的應用

模擬退火演算法具有跳出區域性最優陷阱的能力。在

boltzmann

機中,即使系統落入了區域性最優的陷阱,經過一段時間後,它還能再跳出來,再系統最終將往全域性最優值的方向收斂。

3、模擬退火演算法在影象處理中的應用

模擬退火演算法可用來進行影象恢復等工作,即把一幅被汙染的影象重新恢復成清晰的原圖,濾掉其中被畸變的部分。因此它在影象處理方面的應用前景是廣闊的。

4、模擬退火演算法的其他應用

除了上述應用外,模擬退火演算法還用於其它各種組合優化問題,如

tsp和

knapsack

問題等。大量的模擬實驗表明,模擬退火演算法在求解這些問題時能產生令人滿意的近似最優解,而且所用的時間也不很長。

模擬退火演算法

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

模擬退火演算法

一些求解極值的問題不能通過函式特性直接求解,只能暴力列舉,但是單純的列舉效率不高,通過模擬退火演算法可以高效的找到答案。學習好博文 最小圓覆蓋 hdu 3007 buried memory 大意 給出一些點,求出能覆蓋他們的最小的圓。輸出圓心和半徑 include include include i...

模擬退火演算法

1.模擬退火演算法認識 爬山演算法也是乙個用來求解最優化問題的演算法,每次都向著當前上公升最快的方向往上爬,但是初始化不同可能 會得到不同的區域性最優值,模擬退火演算法就可能跳出這種區域性最優解的限制。模擬退火演算法是模擬熱力學系統 中的退火過程。在退火過程中是將目標函式作為能量函式。大致過程如下 ...