模擬退火演算法

2021-09-23 19:35:52 字數 1478 閱讀 6559

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

模擬退火演算法(simulated annealing,sa)最早由kirkpatrick等應用於組合優化領域,它是基於monte-carlo迭代求解策略的一種隨機尋優演算法,其出發點是基於物理中固體物質的退火過程與一般組合優化問題之間的相似性。模擬退火演算法從某一較高初溫出發,伴隨溫度引數的不斷下降,結合概率突跳特性在解空間中隨機尋找目標函式的全域性最優解,即在區域性最優解能概率性地跳出並最終趨於全域性最優。模擬退火演算法是一種通用的優化演算法,理論上演算法具有概率的全域性優化效能,目前已在工程中得到了廣泛應用,諸如vlsi、生產排程、控制工程、機器學習、神經網路、訊號處理等領域。

模擬退火演算法是通過賦予搜尋過程一種時變且最終趨於零的概率突跳性,從而可有效避免陷入區域性極小並最終趨於全域性最優的序列結構的優化演算法。

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

(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步。

/* j(y):在狀態y時的評價函式值

* y(i):表示當前狀態

* y(i+1):表示新的狀態

* r: 用於控制降溫的快慢

* t: 系統的溫度,系統初始應該要處於乙個高溫的狀態

* t_min :溫度的下限,若溫度t達到t_min,則停止搜尋*/

while( t > t_min )

t = r * t ; //降溫退火 ,0/* 若r過大,則搜尋到全域性最優解的可能會較高,但搜尋的過程也就較長。

若r過小,則搜尋的過程會很快,但最終可能會達到乙個區域性最優值*/

i ++ ;

}

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

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

模擬退火演算法是一種隨機演算法,並不一定能找到全域性的最優解,可以比較快的找到問題的近似最優解。 如果引數設定得當,模擬退火演算法搜尋效率比窮舉法要高。

模擬退火演算法

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

模擬退火演算法

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

模擬退火演算法

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