第三章 強化親代選擇機制之平行化演算法 ESP-NSGA-III
3.1 NSGA-III
3.1.2 環境選擇
在 NSGA-III 中,繁殖會使用到環境選擇中的一些資訊,因此這邊先介紹環 境選擇的機制。
在 NSGA-II 中,族群所繁殖的子族群數量為 N,也就是親代與子族群所組 成的混合族群,其族群大小為 2N,我們首先會評估此混合族群中各項個體的各 個目標值,並依照這些目標值來判斷個體間的凌越關係,給予族群中的各個個體 各自的階級,接著按照此階級順序來決定哪些個體能存活至下一代,階級越好的 個體則有越高的優先權可以存活,直到填滿下一代的族群大小 N 為止,當然,
在此機制下,最後被選到以填滿族群的階層,受到下一代族群大小的限制,沒有 辦法整個階層內的個體皆能存活,因此此階層內的個體必須互相比較擁擠距離,
而擁擠距離大的個體則會被選入,直到填滿族群大小 N 為止。
整理之後可列出以下的步驟:
(1) 計算個體的目標值。
(2) 計算個體的階層。
(3) 階層較好的個體優先存活至下一代。
(4) 遇到不能完整存活至下一代的階層,則計算該階層中個體的擁擠距離,
以該值作為存活順序的依據,直到填滿下一代的族群大小為止。
在 NSGA-III 中,與原版的差異只在步驟 (4) 的部分,NSGA-III 使用了超 平面與參考點的機制替換掉擁擠距離,以下將詳述 NSGA-III 之環境選擇過程。
20
假設在第 t 個演化世代 (generation),族群為 Pt,而產生的子代為 Qt,兩 者的混合族群為 R,大小為 2N,經過上述 (1) 與 (2) 的步驟後,可以得到 Rt t 中 含有 r1,r2,…rk,…,ru 共 u 個階層,假設第 k 個階層是正好橫跨或恰好填滿下一 代族群 Pt+1 大小 N 的階層,如圖 7 所示。
接著評判 rk 中哪些解可存活到下一代的方式就是與原版相異的部分,首先 由 r1,r2,…rk 組成一族群 St (N ≤ | St | ≤ 2N),並執行下列步驟:
(一) 建構超平面 (Creation of hyper-plane)
假設問題有 M 個目標,因此每個個體各自會有 f1, f2, …, fM 共 M 個目標值,
利用 St ,我們可以找到一個含有族群中各目標最小值的理想點 (ideal point) z* =
(f*1,
f
*2, …,f
*M) ,接著再將 St 中的全部個體對 z* 做正規化,得到 fi'(x) = fi(x)- f*i 最 後 再 對 經 過 目 標 值 被 正 規 化 的 St 以 ASF 函 式 (achievement scalarizing function, ASF) 找出 族群中 在 各個目 標方向上的 極端解 (extreme solution),並以此 M 個極端點形成一個超平面。此超平面由於是以族群內個體
r 1 r 2
…
r u
… r k
P t (size N)
Q t (size N)
圖 7:階層與選擇
N
21
分布的狀況來決定的,因此在每一個演化世代皆有可能變換,從而調適族群在目 標空間中的分散程度。
ASF(x, w) = max
Mi=1 fi' (x) / wi, for x ∈ St. (4) 在計算此 ASF 函式時,若其中的權重向量 wi 之值等於零,我們會將其替 換成 10-6,否則當分母代入零時,會造成計算上的困擾。此 ASF 函式,其用意 在於計算個體與此 w 方向的靠近程度。以三目標問題為例,我們將代入三組 w 值 (1, 10-6, 10-6)、(10-6, 1, 10-6) 以及 (10-6, 10-6, 1),分別代表 X、Y 與 Z 這三 軸的方向,找出族群在正規化後的座標系中,最靠近這三個軸的個體,假設圖 8 為已正規化後的目標空間,使用此機制後可找出最靠近三軸的極端解為點 A、點 C 以及點 D。
圖 8:使用 ASF 尋找極端解
(二) 依據超平面上的參考點評估族群分散程度
建構完超平面後,先將 St 中各點往理想點的方向投影在此平面上,如圖 9 所示。分割數 p 決定在此超平面上,每個邊要被分割為幾段。依照數學的重複
D
f
2f
1f
3C
B
A
22
組合概念,我們可以得到此超平面上會有 H 個平均散布的參考點,如圖 10 所 示。
H 的計算方法為
(M+p−1p ) =(M−1)!(p)!(M+p−1)!,M 為問題的目標數個數。由於各個參 考點皆是以一個 M 元的方向向量投影至超平面上所形成的,wi = (wi1, wi2, …,w
iM),i = 1, …, H,且 ∑Mj=1w
ij=1,又 wij 的值取決於 p 的大小,wij∈ {0, 1p, 2
p, …, p
p},
所有的參考點則為此種狀況下的所有可能的組合,故可視為 M-1 件相同物與
p 件相同物的相同物排列。
圖 9:超平面與投影 (Deb & Jain [8])
圖 10:參考點與投影點 (Deb & Jain [8])
23
對於每個參考點,都會有一組與其距離最近的投影點集,假設 St 在空間中 分布的非常均勻,我們可以假定每個參考點的理想投影點集大小應為 ρideal = N/H,
而欠乏值 deficient = ρideal - ρactual 的大小即可代表此參考點區塊的貧瘠程度
(ρactual 為該參考點的實際投影點集數量)。
為了保持族群的多樣性,NSGA-III 在計算完各參考點的欠乏值後,會優先 選擇該值最高的參考點 (若有多個參考點的欠乏值相同,則隨機選取其一),而 在此參考點的投影點集中,階層屬於 rk 的個體,將會互相比較彼此之間對於此 參考點的 ASF 值,此值最小的個體則可存活至下一代 Pt+1 (與原版的 NSGA-II 相同,優先權較 rk 高的階層皆早已確定可存活至下一代),而被選擇到的參考 點,其欠乏值會減 1,接著再重複此選取機制,直到填滿 Pt+1 為止。
整個 NSGA-III 評估族群與環境選擇的流程大致如下:
(1) 依照問題給予親代與子代的混合族群中每個個體對應的目標值。
(2) 將個體依照目標值間的凌越關係劃分階層。
(3) 階層較好的個體可以優先存活至下一代,直到遇到不能完整存活至下一 代的階層為止。
(4) 將步驟 (3) 所提到的階層與較其好的階層中的所有個體融合至一新的 混合族群 St。
(5) 繪製 St 所構成的超平面,將事先建構好的權重向量以及 St 中的個體投 影至該超平面上,並將這些投影點做叢集 (clustering)。
24
(6) 步驟 (3) 所提到之階層中的個體,依 (5) 之叢集結果做為存活順序的依 據,個體間先比較欠乏值,再比較 ASF 值,直到填滿下一代的族群大小為止。