• 沒有找到結果。

第三章 研究方法

3.1 動態維度搜尋法介紹

本研究應用動態維度搜尋法於地下水模式參數檢定問題上,首先 於 3.1 節概述動態維度搜尋法的發展與特點,而後介紹其演算機制與 步驟;接著 3.2 節則是說明修正其演算法的原因與方法,主要有兩大 修正方案,分別是檢定時選取待定參數的標準,與待定參數更新的修 正方向;最後加上兩階段檢定流程建立,使得檢定結果更精進。本章 最後 3.3 節說明應用修正型動態維度搜尋法於自動化參數檢定系統之 開發流程。

3.1 動態維度搜尋法介紹

3.1.1 動態維度搜尋法的發展與特點

動態維度搜尋法是由 Bryan Tolson 於 2007 年所發表的新型態全 域式搜尋演算法,屬於一種啟發式演算法(Heuristic Algorithm),其中 Bryan Tolson 的個人網頁上尚有自撰的動態維度搜尋法程式碼可供學 者下載,分別是 Fortran 與 Matlab 版本,並附上簡易說明文件以利本 研究實作應用。以下先說明 Bryan Tolson 於上述的說明文件中,所敘 述動態維度搜尋法的特點。

一、 動態維度搜尋法是一項求解率定問題的檢定工具,其檢定概念 是基於使用者自行設定的最大迭代次數下,以找到良好的解(而 非全域最佳解)為目的。

二、 動 態 維 度 搜 尋 法 唯 一 要 設 置 的 控 制 參 數 為 鄰 近 擾 動 參 數 (Neighborhood size perturbation parameter),其意義為選取待定參 數更新的修正量大小;經過許多案例測試之後,發現其值等於 0.2 時,其檢定過程中不但可以輕易地避開局部最佳解,且檢定 後的目標函數值為穩健的(Robust)。

三、 本 演 算 法 會 在 設 定 最 大 迭 代 次 數 下 改變 搜 尋 解 的 範 圍 大 小 (Scale the search),而沒有其他用以判斷的檢定停止機制。對於 演算法來說,最大迭代次數是輸入資料(input)而非控制參數,通 常是由使用者考量計算成本之後而決定。

3.1.2 動態維度搜尋法的演算機制與步驟

動態維度搜尋法的演算機制說明如下:不論使用者設定的最大迭 代次數多少為何,在候選解(Candidate Solution)的搜尋上,均可由全域 式(globally)的搜尋朝向區域式(locally)的搜尋方向進行;而此項調整機 制為隨著迭代次數的增加,待定參數被選取的數量會逐漸下降,並以 隨機方式選取待定參數進行修正,此即為其「動態維度」之意義。而 每一次迭代所產生的候選解,則是根據截至目前迭代次數為止的最佳

解(以下簡稱現有解)進行調整而得,之後再將候選解與現有解代入目 標函數式後進行比較,若候選解能求得較現有解更小之目標函數值(假 設求解最小值問題),則候選解將取代現有解,成為下一次搜尋時的現 有解,反過來說,則不接受此次的搜尋結果,再由原本的現有解產生 另一組新的候選解,如此反覆執行直到到達最大迭代次數為止。最後 一次迭代的最佳目標函數值與其對應的待定參數,即是 DDS 的檢定 結果。

DDS 的演算步驟如圖 3-2 所示,可分為三個主要步驟,依序是初 始解設定、選取參數維度的決定、更新現有解;而其所需設定之參數 分別為鄰近擾動參數(r)、最大迭代次數(m)、以及待定參數之上下限 (𝑥𝑚𝑎𝑥與𝑥𝑚𝑖𝑛)。以下依序說明各演算步驟。

1. 初始解設定

初始解產生方式可分為兩種,第一種是系統本身利用隨機變數產 生初始解。第二種是使用者自行給定待定參數產生初始解。最後將初 始解代入目標函數式中即可求得目標函數值,即為本研究的初始目標 函數值,如式3-1 所示,其中𝑥0是初始解,F 為目標函數。

𝑥0 = [𝑥1, 𝑥2, 𝑥3… 𝑥𝐷]

Set 𝐹𝑏𝑒𝑠𝑡 = 𝐹(𝑥0),𝑥𝑏𝑒𝑠𝑡 = 𝑥0 (3-1)

2. 選取參數維度的決定

以下是動態維度搜尋法的參數維度選取法則:

於鄰近解空間的 D 個待定參數中,按照機率 P(i)選取 J 個,如 3-2 式所示,其中 i 為目前迭代次數,其選取法則以 0-1 的隨機變數與機 率P(i)相比,若小於 P(i)值則選取,若隨著迭代次數的增加,每個獲選 的參數個數將逐次減少,相當於由一開始的全域式搜尋,慢慢的朝區 域式搜尋移動,直到到達最大迭代次數為止,才停止演算。

P(i)=1-[ln(i)/ln(m)] (3-2)

例如假設本研究求解的是待定參數維度(個數)為 20,最大迭代次 數為 1000 的參數檢定問題,目前迭代次數為 1,代入式(3-2)中,

P(1)=100%,亦即第一次搜尋過程中,所有 20 個待定參數均會被挑選 進行更新,而第二次搜尋過程中,被選取出來更新的參數個數之「期 望值」等於 P(2)乘上 20;依此類推,之後的每個迭代次數被挑選到的 待定參數將持續減少。若在某幾次迭代中沒有挑選到任何一個待定參 數,則系統會隨機給定其中一個去更新。

3. 更新待定參數

將第二步驟後獲選的待定參數,依照式(3-3)式進行更新。

For j=1,2,…J

𝑥𝑗𝑛𝑒𝑤=𝑥𝑗𝑏𝑒𝑠𝑡+𝛿𝑗 × 𝑁(0,1) (3-3)

其中𝛿𝑗 = 𝑟(𝑥𝑗𝑚𝑎𝑥 − 𝑥𝑗𝑚𝑖𝑛),即鄰近擾動參數(r)與待定參數上下區間大 小的乘積。而 N(0,1)則是以μ =0 為平均數,σ =1 為標準偏差的常態 分布亂數,又稱標準常態分布亂數(如圖 3-1 所示)。補充說明,J 等於 總待定參數個數,j 則是代表被選取的參數;而鄰近擾動參數的意義 為待定參數之修正量相對大小。

圖 3-1 常態分布亂數

接著必須修正更新之後的解,使其同樣滿足於待定參數的上下區 間內,分別依照 3-4 式與 3-5 式去調整。其中 3-4 式為針對更新過後 的參數超出了下邊界的情況,3-5 式則反之。

If 𝑥𝑗𝑛𝑒𝑤 < 𝑥𝑗𝑚𝑖𝑛,Then 𝑥𝑗𝑛𝑒𝑤 = 𝑥𝑗𝑚𝑖𝑛 + (𝑥𝑗𝑚𝑖𝑛 − 𝑥𝑗𝑛𝑒𝑤) (3-4)

If 𝑥𝑗𝑛𝑒𝑤 > 𝑥𝑗𝑚𝑎𝑥,Then 𝑥𝑗𝑛𝑒𝑤 = 𝑥𝑗𝑚𝑎𝑥 − (𝑥𝑗𝑛𝑒𝑤 − 𝑥𝑗𝑚𝑎𝑥) (3-5)

最後將更新且經過上述調整後之參數代入目標函數式中,與上一 階段的現有解相比較,若目標函數值獲得改善,即取代成為新的現有 解;若否,則沿用上一階段的現有解重覆第二與第三步驟繼續檢定,

直到滿足最大迭代次數為止。

圖3-2 動態維度搜尋法的演算步驟流程圖