最優化算法-模擬退火(SA)

最優化問題

最優化問題,就是在解決問題的過程中,挑選最好的一種決策

全局最優

針對一定條件/環境下的一個問題/目標,若一項決策和所有解決該問題的決策相比是最優的,就可以被稱爲全局最優。

我們可以定義:在無限制環境集合R內,假設限制條件/環境爲集合D(D包含於R),問題代價或目標函數爲f(x),其中x指決策,那麼全局最優就是指決策滿足:

f(x_0)=min(f(x)),x_0\in D或者f(x_0)=max(f(x)),x_0\in D

針對一定條件/環境下的一個問題/目標,若一項決策和部分解決該問題的決策相比是最優的,就可以被稱爲局部最優。

將上述定義用數學公式表示爲:按照上一節的定義,對於D內的一個子集

局部最優

局部最優就是指決策滿足,對於D內的一個子集D_n

因此,根據全局最優和局部最優的概念可以得到:局部最優不一定是全局最優,全局最優一定是局部最優。

 

模擬退火算法(SA)

1.退火(annealing)

      退火指物體逐漸降溫的物理現象。

      物體溫度愈低,物體的能量狀態會越低,當溫度足夠低之後,液體開始冷凝與結晶,在結晶狀態時,系統的能量狀態達到最低。物體在緩慢退火時,可達到最低能量狀態。但是,如果退火過快(淬鍊,quenching)時,會達到不是最低能態的非晶態。

       因此,根據這個退火的物理過程,構思出來了一種基於模擬退火來尋找全局最優解的算法。(因此從原理上來看,模擬退火也可以算是一種貪心的方法)

 

想象一下如果我們現在有下面這樣一個函數,現在想求函數的全局最優解。如果採用Greedy策略,那麼從A點開始試探,如果函數值繼續減少,最終我們只能找到一個局部最後解B。 

  
  而以上圖爲例,模擬退火算法在搜索到局部最優解B後,會以一定的概率接受向右繼續移動。以一定概率跳到B 和C之間的峯點,於是就跳出了局部最小值B。 因此可以的得到以下結論:

若f( Y(i+1) ) <= f( Y(i) ) (即移動後得到更優解),則總是接受該移動;
若f( Y(i+1) ) > f( Y(i) ) (即移動後的解比當前解要差),則以一定的概率接受移動,而且這個概率隨着時間推移逐漸降低(逐漸降低才能趨向穩定)相當於上圖中,從B移向BC之間的小波峯時,每次右移(即接受一個更糟糕值)的概率在逐漸降低。如果這個坡特別長,那麼很有可能最終我們並不會翻過這個坡。如果它不太長,這很有可能會翻過它,這取決於衰減 t 值的設定。

流程圖:

模擬退火算法的優缺點

  • 迭代搜索效率高,並且可以並行化->(在迭代那一步可以通過並行進行處理)
  • 算法中有一定概率接受比當前解較差的解,因此一定程度上可以跳出局部最優;
  • 算法求得的解與初始解狀態S無關,因此有一定的魯棒性;
  • 具有漸近收斂性,已在理論上被證明是一種以概率收斂於全局最優解的全局優化算法(概率算法

模擬退火算法的參數控制問題

模擬退火算法的應用很廣泛,可以求解 NP 完全問題,但其參數難以控制,其主要問題有以下三點:

(1) 溫度 T 的初始值設置問題。
溫度T的初始值設置是影響模擬退火算法全局搜索性能的重要因素之一、初始溫度高,則搜索到全局最優解的可能性大,但因此要花費大量的計算時間;反之,則可節約計算時間,但全局搜索性能可能受到影響。實際應用過程中,初始溫度一般需要依據實驗結果進行若干次調整。
(2) 退火速度問題。
模擬退火算法的全局搜索性能也與退火速度密切相關。一般來說,同一溫度下的“充分”搜索(退火)是相當必要的,但這需要計算時間。實際應用中,要針對具體問題的性質和特徵設置合理的退火平衡條件。
(3) 溫度管理問題。
溫度管理問題也是模擬退火算法難以處理的問題之一。實際應用中,由於必須考慮計算複雜度的切實可行性等問題,常採用如下所示的降溫方式:T(t+1)=k×T(t)

式中 k 爲正的略小於 1.00 的常數, t 爲降溫的次數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章