• 沒有找到結果。

第三章 基於參考點的高目標演化演算法與探討

3.1 NSGA-III

NSGA-III 的基本流程如演算法 1 所示,首先進行族群與參考點的初始化,

族群數量與參考點的數目皆為 N,在演算法的終止條件滿足之前,每一代都由親 代交配產生 N 個子代,由親代與子代組成大小為 2N 的族群。接著對其進行非 凌越排序,從優先度最高的階層開始加入下一代的族群,最後一個有機會加入的 階層為 Fl 。Fl 透過利基保存機制從中挑選存活到下一代的解,為了幫助利基保 存機制進行比較,NSGA-III 用族群建構超平面 (hyperplane) 來對解進行適應性 正規化 (adaptive normalization),正規化完成之後將 Fl 中的所有解與參考點進行 關連,最後在利基保存機制的過程中會優先考慮關連的解數量,即利基計數 (niche count) 最少的參考點,如果利基計數的值為零,從 Fl 裡與該參考點關連 的解中挑選離該參考點垂直距離最小的解加入 S;如果利基計數的值不為零,則 從 Fl 裡與該參考點關連的解中隨機挑選一個解加入下一代的族群,若 Fl 中已經 沒有與該參考點關連的解,則排除此參考點,重複此動作直到族群的數量達到 N 為止,底下將詳細介紹演算法的各個步驟。

3.1.1 初始化階段

(1) 族群初始化

初始族群 P 使用均勻分布 (uniform distribution) 的隨機取樣產生 N 個隨機 的初始解,每一個解的決策變數都必須滿足問題的下邊界 (lower bound) 與上邊 界 (upper bound) 的方塊限制 (box constraints)。

演算法 1 NSGA-III 基本流程

1: Initialize population P, reference points Z 2: Gen = 1

3: While Gen  Genmax do 4: Q = Reproduction(P) 5: U = P ∪ Q

6: S = Non_dominated_sort(U) 7: Adaptive_Normalization(S) 8: Association(S, Z)

9: P = Environmental_selection(S, Z) 10: Gen = Gen + 1

11: End While 12: Return P

(2) 參考點初始化

參考點 Z 的生成使用 Das 與 Dennis [33] 的對稱法 (symmetric approach),

在目標數為 m 時,此方法從 m1 維的單位單形 ((m1)-dimensional unit simplex) 中均勻取樣產生參考點,得出的參考點數目如下:

𝑁 = (𝐻 + 𝑚 − 1𝑚 − 1 ). (5)

H > 0 代表在每一個目標方向上的分割數,每一份分割的大小皆為 1/H,以

目標數為 3 且分割數為 4 為例:𝑁 = (4 + 3 − 1

3 − 1 ) = 15,總共會生成 15 個參考 點,圖 3 為這個例子所產生的參考點的分布狀況。

這種一層式參考點的方法為了使中央區域 (以圖 3 為例就是中央區域的三 個點) 能夠有參考點分布在此,H 的數值必須大於等於 m,但是當目標數多的時 候算式 (5) 所求得的參考點數目會變得很大,使得演化演算法的計算負擔大幅增 加;然而將 H 的數值設定得比 m 小的話,中央區域部分就不會有參考點產生,

除此之外,每一個目標方向上的間距過大也會影響到族群的分散程度的維護。一 種解決方法是使用兩層式參考點產生法,分為外層 (boundary layer) 參考點 B = {b1, … , bN1} 與內層 (inside layer) 參考點 I ={i1, … , iN2},使得 N1 + N2 = N。外 層的 N1 個參考點與內層的 N2 個參考點產生方法與一層式參考點相同,但是內 層 N2 個 參 考點 的值 還會 經過 一 個收 縮 (shrink) 的計 算 。假 設內 層 參 考點 𝑖𝑘 = (𝑖1𝑘, … , 𝑖𝑚𝑘)𝑇, 𝑘 ∈ {1, … , 𝑁2},則 𝑖𝑘 第 j 項的數值會被重新計算如下:

圖 3:m = 3, H = 4 所產生的 15 個參考點

𝑖𝑗𝑘 = 1 − 𝜏

𝑚 + 𝜏 × 𝑖𝑗𝑘, 𝑗 ∈ {1, … , 𝑚}. (6) τ  [0, 1] 為一個收縮因子 (shrinkage factor),這裡不失一般性將其設定為 0.5,最後將 B 與 I 合併起來即為最後得到的參考點 Z;兩層式參考點生成法可 以在 H 值小的情況下依然不失去中央區域的參考點,可以避免參考點數量過於 龐大並且同時產生均勻的參考點,圖 4 為兩層式參考點的示意圖。

3.1.2 繁殖階段

此階段會進行親代選擇以及交配與突變,反覆執行直到產生 N 個子代,再 由親代與子代組成數量 2N 的族群 U。

(1) 親代選擇

NSGA-III 的親代選擇為隨機挑選兩個親代解進行交配。

(2) 交配與突變

交配方法使用模擬二進制交配法與多項式突變法 [4],如同第二章所提到的,

為了避免產生的子代距離親代太遠,NSGA-III 將模擬二進制交配法的分布指數 (distribution index) 設成很大的數值,如此可以讓產生的子代較為靠近其親代。

Boundary layer Inside layer

圖 4:兩層式參考點產生法,外層 H1 = 2,內層 H2 = 1

3.1.3 環境選擇

(1) 非凌越排序

對族群 U 進行非凌越排序,根據凌越關係將 U 分成多個階層 Fi,從最靠 近柏拉圖前緣的階層開始逐一加入族群 S 中,一次加入整個階層,如果在某一 階層的解加入之後 S 的數量剛好為 N,直接輸出 S 作為下一代的族群,除此之 外繼續直到某一階層的解加入後使 S 的數量超過 N (│S│  N),這個最後被加入 的階層 Fi 稱為 Fl

(2) 適應性族群正規化

NSGA-III 使用適應性的正規化方法,首先由族群 S 裡面的解在各目標方向 上最小的目標值組成理想點 (ideal point) 𝑍𝑚𝑖𝑛 = {𝑧1𝑚𝑖𝑛, 𝑧2𝑚𝑖𝑛, … , 𝑧𝑚𝑚𝑖𝑛}𝑇, 𝑧𝑖𝑚𝑖𝑛 = min𝑗=1~2𝑁𝑓𝑖(𝑥𝑗) , 𝑥𝑗 ∈ 𝑆 , 接 著 從 S 中 找 出 在 m 個 目 標 方 向 上 的 極 限 點

(extreme points) 𝑍𝑖𝑚𝑎𝑥 , 𝑖 = 1, … , 𝑚,極限點為使 m 個目標方向的向量 (1, 0, … , 0)、(0, 1, … , 0) … (0, 0, … , 1) 上成就標量化函數 (achievement scalarizing function, ASF) 值最小的解,ASF 函數的計算式如下:

ASF(𝑥, 𝑤) = max

𝑘=1:𝑚{(𝑓𝑘(𝑥) − 𝑧𝑘𝑚𝑖𝑛) 𝑤𝑘

⁄ } , 𝑘 = 1, 2, … , 𝑚. (7)

由此 m 個極限點構成一個超平面,接著可以計算出此超平面在各目標方向 上到原點的截距 ak。有了以上資訊,便可將 S 裡的解 xj 經由以下算式進行正規 化:

𝑓𝑘(𝑥𝑗) = 𝑓𝑘(𝑥𝑗) − 𝑧𝑘𝑚𝑖𝑛

𝑎𝑘− 𝑧𝑘𝑚𝑖𝑛 , 𝑘 = 1, 2, … , 𝑚. (8)

(3) 關連

經過正規化之後,為了在環境選擇中讓參考點輔助進行環境選擇,NSGA-III 將族群 S 與 Fl 中的解與參考點 Z 進行關連的動作。首先將參考點與原點連線 形成參考線,接著計算每一個解到每一條參考線的垂直距離,若有一個解 xi某條參考線的垂直距離為最短,代表解 xi 與形成該參考線的參考點相關連,同 時若 xi  S 且 xi  Fl ,則將該參考點的利基計數加一。

(4) 選擇

此步驟要挑選出 N 個解進入下一代,在非凌越排序的階段因為最後 Fl 的加 入使得 S 的數量超過 N,所以需要從 Fl 中挑選出 │S│  N 個解進入下一代。

NSGA-III 的選擇機制為利基保存機制,首先從 S 中去除 Fl 為 S',接著檢查每 個參考點的利基計數 j, j = 1, … , N,找出 j 值最小的參考點,如果有複數個存 在則隨機挑選其中之一,選定參考點之後按照以下規則挑選要加入的解:j = 0 的 情況,察看 Fl 中是否有解與這個參考點關連,有的話將與此參考點垂直距離最 小的解加入,將 j 的數目加一;沒有任何解與此參考點關連的話接下來的挑選 便不再考慮此參考點。j  1 的情況,一樣察看 Fl 中是否有解與此參考點關連,

有的話從中隨機選擇一個解加入;沒有的話接下來的挑選不再考慮此參考點。重 複以上步驟直到從 Fl 挑出 │S│  N 個解與 S' 組成下一代的族群 P。

相關文件