從NSGA到 NSGA II
轉載出處:https://www.cnblogs.com/bnuvincent/p/5268786.html
NSGA(非支配排序遺傳演算法)、NSGAII(帶精英策略的非支配排序的遺傳演算法),都是基於遺傳演算法的多目標優化演算法,都是基於pareto最優解討論的多目標優化,遺傳演算法已經做過筆記,下面介紹pareto(帕累託)最優解的相關概念。本文是基於參考文獻做的讀書筆記。
1 NSGA演算法
1.1 Paerot支配關係
1.2 Pareto最優解定義
多目標優化問題與單目標優化問題有很大差異。當只有一個目標函式時,人們尋找最好的解,這個解優於其他所有解,通常是全域性最大或最小,即全域性最優解。而當存在多個目標時,由於目標之間存在衝突無法比較,所以很難找到一個解使得所有的目標函式同時最優,也就是說,一個解可能對於某個目標函式是最好的,但對於其他的目標函式卻不是最好的,甚至是最差的。因此,對於多目標優化問題,通常存在一個解集,這些解之間就全體目標函式而言是無法比較優劣的,其特點是:無法在改進任何目標函式的同時不削弱至少一個其他目標函式。這種解稱作非支配解(nondominated soluitons)或Pareto最優解(Pareto optimal Soluitons),定義如下:
也即沒有其他值可以支配Xu。
2、NSGA一般流程
NSGA採用的非支配分層方法,可以使好的個體有更大的機會遺傳到下一代;適應度共享策略則使得準Pareto面上的個體均勻分佈,保持了群體多樣性,克服了超級個體的過度繁殖,防止了早熟收斂。流程圖如下:
NSGA與簡單的遺傳演算法的主要區別在於:該演算法在選擇運算元執行之前根據個體之間的支配關係進行了分層。其選擇運算元、交叉運算元和變異運算元與簡單遺傳演算法沒有區別。
從圖中可以看到,演算法首先判斷種群是否全部分級,如果已經全部分級,則在分級的基礎上,使用基於擁擠策略的小生境(NIChe)技術對虛擬適應度值進行調整,並確定每個種群的虛擬適應度值,然後根據虛擬適應度值的大小,確定優先選擇進行處理的種群(遺傳演算法)。
2.1 非支配排序
考慮一個目標函式個數為K(K>1)、規模大小為N的種群,通過非支配排序演算法可以對該種群進行分層,具體的步驟如下:
通過上述步驟得到的非支配個體集是種群的第一級非支配層;然後,忽略這些標記的非支配個體,再遵循步驟(1)一(4),就會得到第二級非支配;依此類推,直到整個種群被分類。
2.2 虛擬適應度值的確定
在對種群進行非支配排序的過程中,需要給每一個非支配層指定一個虛擬適應度值。級數越大,虛擬適應度值越小;反之,虛擬適應度值越大。這樣可以保證在選擇操作中等級較低的非支配個體有更多的機會被選擇進入下一代,使得演算法以最快的速度收斂於最優區域。另一方面,為了得到分佈均勻的Pareto最優解集,就要保證當前非支配層上的個體具有多樣性。NSGA中引入了基於擁擠策略的小生境(NIChe)技術,即通過適應度共享函式的方法對原先指定的虛擬適應度值進行重新指定。
3、NSGAII演算法
NSGA一II演算法的基本思想為:首先,隨機產生規模為N的初始種群,非支配排序後通過遺傳演算法的選擇、交叉、變異三個基本操作得到第一代子代種群;其次,從第二代開始,將父代種群與子代種群合併,進行快速非支配排序,同時對每個非支配層中的個體進行擁擠度計算,根據非支配關係以及個體的擁擠度選取合適的個體組成新的父代種群;最後,通過遺傳演算法的基本操作產生新的子代種群:依此類推,直到滿足程式結束的條件。相應的程式流程圖如下圖所示。
3.1 快速非支配排序演算法
3.2 擁擠度和擁擠度比較運算元
擠度是指種群中給定個體的周圍個體的密度,直觀上可表示為個體。周圍僅僅包含個體。本身的最大長方形的長,用nd表示,
擁擠度的演算法如下:
3.3擁擠度比較運算元
3.3 兩種演算法對比及II代的改進:
非支配排序遺傳演算法(NSGA)在許多問題上得到了應用,但NSGA仍存在一些問題:
)a計算複雜度較高,為O(mN3)(m為目標函式個數,N為種群大小),所以當種群較大時,計算相當耗時。
b)沒有精英策略;精英策略可以加速演算法的執行速度,而且也能在一定程度上確保己經找到的滿意解不被丟失。
)c需要指定共享半徑。
而NSGA一II針對以上的缺陷通過以下三個方面進行了改進:
)a提出了快速非支配排序法,降低了演算法的計算複雜度。由原來的O(mN3)降到O(mN2),其中,m為目標函式個數,N為種群大小。
b)提出了擁擠度和擁擠度比較運算元,代替了需要指定共享半徑的適應度共享策略,並在快速排序後的同級比較中作為勝出標準,使準Paroet域中的個體能擴充套件到整個Pareto域,並均勻分佈,保持了種群的多樣性。
)c引入精英策略,擴大采樣空間。將父代種群與其產生的子代種群組合,共同競爭產生下一代種群,有利於保持父代中的優良個體進入下一代,並通過對種群中所有個體的分層存放,使得最佳個體不會丟失,迅速提高種群水平。
參考文獻:
1、帶精英策略的非支配排序遺傳演算法的研究與應用_鄭強
2、非支配排序遺傳演算法_NSGA_的研究與應用_高媛