• 沒有找到結果。

模擬退火演算法影響因子之探討

第二章 模擬退火演算法之理論

2.3 模擬退火演算法影響因子之探討

在模擬退火法中,各項參數值建立對最佳解之搜尋皆會直接影響其品質,若 是發生設定不恰當,即有可能造成搜尋時間上的增加或是降低最佳解之品質,因 此以下將針對各項參數值設定及影響因數作討論。然而並非同樣的退火時間表都 適用於每一種問題,須視其問題之尺度與規模而決定退火參數為何,以下為前人 針對退火參數設定之建議,但其適合之退火時間表,仍需要依照問題重新定義。

1. 初始溫度設定

起始溫度設定在模擬退火法中扮演著重要的角色,因溫度與目標函數差值變 化,決定劣解被接受機率之大小,因此溫度的變化在退火演算法中,佔有相當重 要的影響力,本研究利用波茲曼機率分佈公式(Boltzmann distribution),來決定是否 接受劣解。在整個搜尋過程中,從波茲曼機率分佈

P exp( )

i

F T

= −Δ

可得出,機率基本

上與溫度T 及目標函數之差值i Δ 相關,其中固定溫度F T 的條件下,劣解被接受的i 機率為P,與目標函數差值Δ 呈反比關係。一般來說,在退火程式開始前部分,F 起始溫度T 必需要夠大以確保搜尋初期時,對於所有鄰近解,有著相同的挑選機0 率,其溫度較高被接受機率值也相對提高,允許接受劣解機率較大,以避免落入 區域最佳解,雖然過高的溫度設定會造成計算上的浪費,不過設定高溫度的結果 普遍來說都優於設定過低的結果(Dougherty and Marryott, 1991),所以一般設定適

合溫度,就是讓初期鄰近解被接受率大約在 80%以上,期望搜尋過程中不要太快 收斂於某一區域最佳解中。隨著溫度降低至接近凝固點時,理論上此時已逼近全 域最佳解,達到最佳狀態,進而機率也隨著溫度而降低,無須再逆向搜尋。所以 在以模擬退火法解決一最佳化求解之問題時,不旦要定義出適當的限制式與目標 函數式,更要適時地調整其退火參數以及最重要之核心方程式,才能有效率地解 決問題(童慶斌,2008)。

2. 馬可夫鏈

馬可夫鏈的長度(length of Markov chain)(L)即為每一個溫度階段的最大搜尋次 數。模擬退火法可視為多階層之馬可夫鏈,每一溫度階段的搜尋次數長短,也將 影響到最佳解之品質,Kirkpatrcik et al. (1983) 建議搜尋次數為決策變數個數的倍 數;Arts and van Laarhoven (1985) 曾經證明只要搜尋次數夠多,模擬退火法最後 找到的最佳解,為全區域最佳解的機率可以高達百分之百,除此之外,一些前人 所建議每一溫度階段之搜尋次數:Huang et al. (1986) 則採用隨著不同溫度而改變 搜尋次數,當溫度愈降愈低時,接受鄰近解的機率已經大大的不如初始的接受機 率,便不再需要初期溫度階段的搜尋次數,而可以隨著溫度的降低減少搜尋次數,

以免造成效率上的浪費;Dougherty and Marryott (1991),實際將搜尋次數訂為決策 變數個數的 100 倍。不過,至今相關的報告,大多無法肯定共通的準則來決定每 一溫度階段的搜尋次數,還是要視問題的尺度大小與特性而定。

3. 降溫梯度

降溫梯度

k

是退火時間表中控制溫度參數從初始高溫度經過退火降溫之過 程,最後到達最終溫度Ti → 的參數(童慶斌,2008),其關係式如式(2.1)所示: 0

Ti+1 = ×k Ti , 0< <k 1 (2-1) 其中Ti+1代表降溫後溫度,T 代表降溫前溫度值,i

k

代表每次溫度改變速率。

上式2.1 中,其降溫梯度(

k

)為 0~1 之間係數值,而降溫梯度的高低會影響到 求解品質與其運算時間;由前一節中,可瞭解 Metropolis 程式接受鄰近解的機率 程度受到溫度影響;

k

值越大時,代表降溫速度越趨於緩慢,於整個退火過程有較 高接受率,能有足夠的空間搜尋,反之則代表降溫速度越快速,接受率較低,容 易導致陷入區域最佳解中。在各研究中,皆曾對於溫度下降速率與機制進行探討。

一般而言,設定

k

值介於0.80~0.99 之間 (Kirkpatrick et al.,1984),整個退火過程 皆有不錯的搜尋表現。

不過降溫梯度與每一溫度階段的搜尋次數是有相關的,當搜尋次數設定不夠 時,降溫梯度則會變的更加重要,也就是說可以將降溫梯度設定為較大的值(趨近 於 1),讓每一次降溫幅度不至於太大,不然的話,太快的降溫再加上每一個溫度 階段中搜尋次數又不夠多,這樣子所搜尋解空間範圍有限,無法有效的搜尋,而 且最後所收斂的結果也有可能不夠理想,所以在電腦運算合理時間內,設定最佳 的降溫梯度加上合適的馬可夫鏈長度,才能夠有效率的搜尋出最佳解(童慶斌,

2008)。

4. 停止條件

停止條件是判斷是否該終止演算法之搜尋,若設計不適宜,可能導致演算過 程中,結束時間過早或執行時間過長。一般設定的停止條件方式如下(Dougherty and Marryott, 1991):

(1) 達到終止溫度,當溫度低於終止溫度則停止演算。

(2) 當連續降溫 K 次始終無法改善最佳解,則停止演算。

(3) 當搜尋解之數量已達到最大迭代次數,則停止演算。