• 沒有找到結果。

第三章 強化親代選擇機制之平行化演算法 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

2

f

1

f

3

C

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=1

w

ij=1,又 wij 的值取決於 p 的大小,wij∈ {0, 1

p, 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 值,直到填滿下一代的族群大小為止。