第二章 動態維度搜尋法
2.1 動態維度搜尋法(Dynamically Dimensioned Search Algorithm)
2.1.1 動態維度搜尋法之概述
本節之內容,主要參考自“Dynamically dimensioned search algorithm for computationally efficient watershed model calibration " ( Tolson, B. A., and Shoemaker, C. A., 2007)。
動態維度搜尋法設計目的主要為解決多參數的率定問題,為了應用在需要龐 大計算時間的最佳化問題,此搜尋法沒有複雜的參數調整方式,即演算法中無需 另行調整的控制參數,例如:模擬退火法的起始溫度、溫度遞減因子;遺傳演算 法的突變機率、族群個數等,減少演算法中的不確定性因子,得以盡可能節省所 有計算時間於搜尋最佳解,此外,演算法的另一特點在於可依照使用者對計算時 間的要求而設定最大搜尋次數,並且依照所設定之最大搜尋次數調整搜尋範圍,
而此項設計卻也不會影響到搜尋解的多樣性與強健性,下節將詳細說明演算的機 制。
2.2.2 動態維度搜尋法演算機制
動態維度搜尋法的演算特點在於不論使用者設定搜尋次數的多寡為何,在候 選解(Candidate Solution)的搜尋上,均可由全域式(globally)的搜尋朝區域式
(locally)的搜尋方向進行。此項調整機制為隨著機率的變化,降低每一次搜尋 時待定參數之搜尋個數。而下一次所產生的候選解,則是根據前一次更新的解進
7
行調整而得,並將兩組解代入目標函數式中進行比較,若能降低目標函數值,候 選解將取代現有解,成為下一次搜尋時之現有解,反之,則不接受此次的搜尋結 果,再由現有解產生另一組新的候選解,如此反覆執行直到滿足收斂條件或是到 達最大搜尋次數。
動態維度搜尋法包含三項主要演算步驟:1. 初始解設定、2. 候選解選取、 3.
更新現有解。以下針對各個步驟詳細說明:
1. 初始解設定
在開始最佳解的搜尋之前,有三項參數需要先進行設定,分別是鄰近解擾動 參數(Neighborhood Perturbation Size Parameter, r 0.2)、最大搜尋次數(m)
與待定參數之上下界( , )。接著即可在可行解區域內,隨機產生一組解 做為整個率定過程之初始解,並將初始解代入目標函數式(F),完成初始解設定。
x , … , xD Set F F , and
(2-1)
2. 候選解選取
在最佳解搜尋過程中,將搜尋到的解稱作「現有解」。由現有解進行下一次 的搜尋時,必須依照各個演算法的演算機制改變現有解,在此過程中所有可能成 為下一階段現有解之可行解均稱作為「鄰近解」,所有鄰近解的集合則稱為「鄰 近解空間」(Neighborhood, N ),而獲選的解則暫時稱為「候選解」,如何在這 過程中同時滿足求解的多樣性與強健性,正是啟發式演算法的核心,同時也就是 不同演算法的差異所在。以下是動態維度搜尋法的候選解選取法則。
在鄰近解空間的 D 個待定參數中,按照機率P i 選取 J 個,如(2-2)式所 示,其中 i 為目前搜尋次數,隨著搜尋次數的增加,每次獲選的參數個數將逐次 減少,相當於由初始的全域式搜尋,逐漸朝區域式搜尋移動,直至滿足收斂條件 或是到達最大搜尋次數。
8
P i 1 ln i ln m⁄ (2-2)
Example:
待定參數個數, D 10 最大搜尋次數, m 1000
目前搜尋次數, i 1
P 1 1 ln 1 ln 1000⁄ 1
因此,在第一次搜尋過程中,每個待定參數被挑選出來進行更新的機率為100%,
以此類推。
3. 更新現有解
將上一步驟中所獲選的參數,以(2-3)式進行更新。
For j 1, 2, … J
x x σ N 0,1 Where σ r x x
N 0,1 :Standard normal random variable
(2-3)
若更新過後的參數超出了下邊界,則以(2-4)式調整。
If x x
x x x x
But if x x , set x x
(2-4)
若更新過後的參數超出了上邊界,則以(2-5)式調整。
If x x
x x x x
But if x x , set x x
(2-5)
9
參數更新後,再代入目標函數式中計算目標函數值,如(2-6)式所示。
If F F
F F , then (2-6)