第三章 基於參考點的高目標演化演算法與探討
3.2 VaEA
VaEA 的基本流程如演算法 2,首先初始化數量為 N 的族群,每一代交配 產生 N 個子代之後,與親代組成 2N 的族群,對其進行非凌越排序,依照凌越 關係分成多個階層,從優先度最高的階層開始加入下一代的族群,最後有機會加
入的階層 Fl 會將前面所有已經加入下一代族群的解作為參考點進行關連的動作,
並且計算 Fl 中的解與最近的參考點之間的夾角;如果所有的解皆為非凌越解,
意即 Fl 的大小為 2N 時,VaEA 會挑選出 m 個與各目標方向上的向量夾角最 小的解以及 m 個適應值最小的解加入下一代的族群,同時此 2m 個解也成為參 考點,接著計算 Fl 中解與最近的參考點之間的夾角。最後依照最大角度優先原 則以及較差淘汰原則從 Fl 中挑選剩餘所需的解,最大角度優先原則挑選經過關 連之後在 Fl 之中與參考點之間夾角最大的解;較差淘汰原則檢查所有已經加入 下一代族群的解與 Fl 中解的夾角,如果小於設定的閥值則依據解的適應值來刪 除較差的解。每當有新的解進入族群,演算法就會將更新後的族群作為新的參考 點與 Fl 關連,使族群發揮相當於動態參考點的作用,藉由最大角度優先原則與 較差淘汰原則,VaEA 在收斂程度與分散程度之間取得平衡,接下來將詳細介紹 演算法的各個階段。
3.2.1 初始化階段
VaEA 只需要初始化族群,初始族群 P 使用均勻分布的隨機取樣產生 N 個 隨機的初始解,並且滿足問題的方塊限制。
3.2.2 繁殖階段
此階段會進行親代選擇以及交配與突變,反覆執行直到產生 N 個子代,由 親代與子代組成數量 2N 的族群 U。
(1) 親代選擇
VaEA 的親代選擇為隨機挑選兩個親代進行交配。
演算法 2 VaEA 基本流程 1: Initialize population P 2: Gen = 1
3: While Gen Genmax do 4: Q = Reproduction(P) 5: U = P ∪ Q
6: Normalization(U)
7: P = Environmental_selection(U) 8: Gen = Gen + 1
9: End While 10: Return P (2) 交配與突變
交配方法使用模擬二進制交配法與多項式突變法 [4],與 NSGA-III 同樣為 了避免產生的子代距離親代太遠,將模擬二進制交配法的分布指數設為大的數值,
使產生的子代較為靠近其親代。
3.2.3 環境選擇
(1) 族群正規化
VaEA 採用一般的正規化方法,首先對族群 U 進行目標向量 (objective vector) 的正規化,由 U 裡面的解在各目標方向上的最小目標值組成理想點 𝑍𝑚𝑖𝑛= {𝑧1𝑚𝑖𝑛, 𝑧2𝑚𝑖𝑛, … , 𝑧𝑚𝑚𝑖𝑛}𝑇, 𝑧𝑖𝑚𝑖𝑛 = min𝑗=1~2𝑁𝑓𝑖(𝑥𝑗) , 𝑥𝑗 ∈ 𝑈,以相同的方法將 解 在 各 目 標 方 向 上 最 大 的 目 標 值 組 成 天 底 點 (nadir point) 𝑍𝑚𝑎𝑥 = {𝑧1𝑚𝑎𝑥, 𝑧2𝑚𝑎𝑥, … , 𝑧𝑚𝑚𝑎𝑥}𝑇,有了這二個參考點之後,所有在 U 裡的解 xj 的 目標向量中每個目標方向的目標值可以經由以下算式正規化:
𝑓𝑖′(𝑥𝑗) = 𝑓𝑖(𝑥𝑗) − 𝑧𝑖𝑚𝑖𝑛
𝑧𝑖𝑚𝑎𝑥− 𝑧𝑖𝑚𝑖𝑛 , 𝑖 = 1, 2, … , 𝑚. (9)
在正規化的過程中也一併計算解的適應值,計算方式如下:
𝑓𝑖𝑡(𝑥𝑗) = ∑ 𝑓𝑖′(𝑥𝑗)
𝑚
𝑖=1
. (10)
(2) 非凌越排序
經由非凌越排序將族群 U 分成多個階層 Fi,從最靠近柏拉圖前緣的階層開 始逐一加入族群 S 中,一次加入整個階層,如果在某一階層的解加入之後 S 的 數量剛好為 N,直接輸出 S 作為下一代的族群,除此之外繼續,直到某一階層 的解加入後 S 的數量超過 N (│S│ N),這個最後被加入的階層 Fi 稱為 Fl。
(3) 關連
由於沒有事先設定的參考點,VaEA 的關連方法與 NSGA-III 不同,是將已 經加入下一代的族群 S 作為參考點與 Fl 中的解進行關連。對 Fl 中的每一個解 xj 找出在 S 中與其夾角最小的解 xk,將兩個解建立關連並且記錄此最小夾角的 數值,對於解 xk 我們稱其為解 xj 的目標解 (target solution),標示為 T(xj)。夾角 的計算可經由以下算式求得:
𝑎𝑛𝑔𝑙𝑒(𝑥𝑗, 𝑥𝑘) ≜ arccos | 𝐹′(𝑥𝑗) ∙ 𝐹′(𝑥𝑘)
𝑛𝑜𝑟𝑚(𝑥𝑗)𝑛𝑜𝑟𝑚(𝑥𝑘)|. (11)
𝑛𝑜𝑟𝑚(𝑥𝑗) ≜ √∑ 𝑓𝑖′(𝑥𝑗)2
𝑚
𝑖=1
. (12)
𝐹′(𝑥𝑗) ∙ 𝐹′(𝑥𝑘) = ∑ 𝑓𝑖′(𝑥𝑗) ∙ 𝑓𝑖′(𝑥𝑘)
𝑚
𝑖=1
. (13)
如果非凌越排序的結果只有一個階層,即 Fl = U 的情況下,VaEA 會從 Fl 裡面挑出 m + m 個解形成族群 S ,前 m 個解選擇與 m 個目標方向的向量 (1, 0, … , 0)、(0, 1, … , 0) … (0, 0, … , 1) 擁有最小夾角的解,後 m 個選擇族群中適 應值最小的 m 個解,後 m 個解不與前 m 個解重複,大小為 2m 的 S 形成之 後同樣將這個族群 S 當作參考點與 Fl 中剩餘的解進行上述的關連操作。
(4) 選擇
此步驟需要從 Fl 中挑選出 │S│ N 個解,每一輪都會執行最大角度優先原 則演算法與較差淘汰原則演算法各一次,最大角度優先原則會將一個新的解加入 S,較差淘汰原則有機會取代 S 中一個解,重複執行直到 │S│ = N 為止。
最大角度優先原則會檢查 Fl 中所有解 xj 與其在 S 中關連的目標解 T(xj) 之間的最小夾角,選出擁有最大的最小夾角的解 x 加入 S 並且將其從 Fl 刪除。
當 S 與 Fl 各自被更新之後,需要重新計算兩邊的關連,由於這裡 S 只加入了 一個新的解 x,所以只需要計算 Fl 中解 xj 對於 x 的夾角,檢查這個新的夾角 angle(xj, x) 是否比 angle(xj, T(xj)) 小,如果比較小就將 xj 的目標解更新為 x 並且記錄新的最小夾角的數值。
較差淘汰原則會檢查所有 Fl 中的解 xj 與其在 S 中的目標解 T(xj) = xk 的 最小夾角數值,如果小於演算法設定的閥值 = ((/2)N+1),代表這二個解 x 與 T(x) = xr 在目標空間當中位於非常接近的搜尋方向上,這個情況下演算法會檢查 x 的適應值是否比 xr 好,如果比較好則讓 x 取代 xr,並將 x 從 Fl 移除。
取代結束之後需要對 S 與 Fl 進行關連的更新,更新的動作分為兩種情況:Fl 中 的解 xj 的目標解為被取代的 xr,此時由於 x 取代了 xr 的位置,目標解直接置
換成 x,所以只要計算 xj 與 x 的夾角數值並且更新最小夾角即可;如果 Fl 中 的解 xj 的目標解不為被取代的 xr,這種情況下需要檢查 xj 與 x 的夾角數值是 否小於 xj 與其目標解 T(xj) = xk 的夾角數值,如果比較小則需要將 xj 的目標解 更新為 x 並且記錄夾角數值。