日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

多目标进化算法(二)——非支配排序/NSGA-II

發(fā)布時(shí)間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多目标进化算法(二)——非支配排序/NSGA-II 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

多目標(biāo)進(jìn)化算法(二)——非支配排序/NSGA-II

上一節(jié)闡述了多目標(biāo)優(yōu)化問(wèn)題及相關(guān)的基礎(chǔ)知識(shí)。并且舉例說(shuō)明了什么是Pareto最優(yōu)解,也叫非支配解或非劣解。如何比較哪個(gè)解優(yōu)秀是上一節(jié)拋出的話(huà)題,本節(jié)致力于解決這一問(wèn)題。

目錄

  • 多目標(biāo)進(jìn)化算法(二)——非支配排序/NSGA-II
    • 基礎(chǔ)知識(shí)
      • pareto最優(yōu)邊界(PF)
      • 舉例說(shuō)明:非支配關(guān)系和支配區(qū)域
    • 如何構(gòu)造Pareto最優(yōu)解集:非支配排序
      • 快速排序構(gòu)造Pareto最優(yōu)解集
      • 提示
      • 簡(jiǎn)單做個(gè)總結(jié)
      • 舉例闡述排序流程
      • 非支配層次關(guān)系
      • 拓展

經(jīng)典論文NSGA-II鏈接

基礎(chǔ)知識(shí)

一個(gè)多目標(biāo)優(yōu)化問(wèn)題(MOP)可以被描述如下:
minF(x)=(f1(x),…,fm(x))TΩ=x?Rn∣hj(x)≤0,j=1,…,k設(shè)x=(x1,…,xn)是決策變量,Ω=Π[li,ui]?Rn,i=0,...,n為決策空間;n為決策變量的個(gè)數(shù),li和ui分別為第i個(gè)決策變量的下限和上限。式中有m個(gè)目標(biāo)等待優(yōu)化,表示為f(x)=(f1(x),…,fm(x));f(x)將決策空間Ω映射到目標(biāo)空間Π。min~~F(x) = (f_1 (x),…,f_m (x))^T\\Ω = {x?R^n |h_j (x)≤0,j=1,…,k} \\設(shè)x=(x_1,…,x_n)是決策變量,Ω=Π[l_i,u_i ]?R^n,i=0,...,n為決策空間;\\n為決策變量的個(gè)數(shù),l_i和u_i分別為第i個(gè)決策變量的下限和上限。\\式中有m個(gè)目標(biāo)等待優(yōu)化,表示為f(x)=(f_1 (x),…,f_m (x));f(x)將決策空間Ω映射到目標(biāo)空間Π。 min??F(x)=(f1?(x),,fm?(x))TΩ=x?Rnhj?(x)0,j=1,,k設(shè)x=(x1?,,xn?)Ω=Π[li?,ui?]?Rn,i=0,...,nn個(gè)數(shù)li?ui?i個(gè)m個(gè)標(biāo)優(yōu)f(x)=(f1?(x),,fm?(x));f(x)Ω標(biāo)Π

pareto最優(yōu)邊界(PF)

回顧一下上一節(jié)提到的Pareto最優(yōu)解與Pareto最優(yōu)解集。若決策空間中沒(méi)有解能夠支配xa,則稱(chēng)xa是一個(gè)Pareto最優(yōu)解。所有的Pareto最優(yōu)解構(gòu)成Pareto最優(yōu)解集(Pareto-optimal set, PS)。

而Pareto最優(yōu)邊界又是什么?實(shí)際上就是上節(jié)提到的Pareto最優(yōu)前沿PF。提到這個(gè)概念是因?yàn)楹芏喽ɡ矶己推溆嘘P(guān)。多目標(biāo)優(yōu)化是從決策空間到目標(biāo)空間的一個(gè)映射。PS是決策向量空間的一個(gè)子集(也就是可行域中最優(yōu)的那部分),PF是目標(biāo)向量空間的一個(gè)子集。

定理:在目標(biāo)空間中,最優(yōu)解是目標(biāo)函數(shù)的切點(diǎn),它總是落在搜索區(qū)域的邊界上。

舉例說(shuō)明:非支配關(guān)系和支配區(qū)域

簡(jiǎn)單說(shuō)明,我們的目標(biāo)就是找到圖中的A,B,C,D,E,F這幾個(gè)最優(yōu)解,一般利用非支配排序。需要引入幾個(gè)概念輔助講解。

(1)支配區(qū)域:對(duì)于解C,它的的目標(biāo)空間向量與目標(biāo)空間的坐標(biāo)軸的所圍成的區(qū)域即為它的支配區(qū)域,此區(qū)域中的任意解都支配C,如上圖A1區(qū)域所示。同理,A2區(qū)域的所有解都被C所支配。

(2)強(qiáng)非支配和弱非支配:當(dāng)然還存在一些強(qiáng)非支配(比如解B和C)和弱非支配(比如和解C在圖中同橫或豎紅線(xiàn)的解,圖中沒(méi)有哈)的概念區(qū)別,一般用得比較少。

如何構(gòu)造Pareto最優(yōu)解集:非支配排序

構(gòu)造Pareto解集的方法有很多:莊家法,擂臺(tái)賽法,遞歸方法以及用快速排序的方法。前面三種方法都比較好理解,而快速排序的方法是目前普遍使用的算法,本節(jié)主要對(duì)其進(jìn)行分析。

快速排序構(gòu)造Pareto最優(yōu)解集

定義:個(gè)體中非支配關(guān)系用符號(hào)?表示,X支配Y,表示為Y?X。如果互不支配,則兩個(gè)個(gè)體是不相關(guān)的,用符號(hào)?d表示,X?dY。

如果不太清楚快速排序可以參考這個(gè)blog:十大排序算法及優(yōu)化 ( C++簡(jiǎn)潔實(shí)現(xiàn))

提示

特別說(shuō)明“比x小”的含義:個(gè)人喜歡這樣來(lái)理解,在目標(biāo)空間中其適應(yīng)度比x小(在進(jìn)化算法尤其是遺傳算法中,會(huì)按照適應(yīng)度優(yōu)選),當(dāng)然也可以理解成它們?cè)谀繕?biāo)空間中比x差。簡(jiǎn)單來(lái)說(shuō),就是個(gè)體處在x的支配區(qū)域中
判斷是否存在支配關(guān)系需要從每一維目標(biāo)向量空間進(jìn)行比較。例如,在上述最小化問(wèn)題中,J點(diǎn)的f1和f2都大于x點(diǎn),因此它被x所支配。B點(diǎn)的f1x點(diǎn),但是f2小于x點(diǎn),因此兩者之前不存在支配關(guān)系,值得注意的是這并不代表它們兩個(gè)都是非支配解,是否是非支配解需要和所有的解進(jìn)行比較。

簡(jiǎn)單做個(gè)總結(jié)

(1) 第一輪比較:隨機(jī)選擇一個(gè)個(gè)體X作為基準(zhǔn)數(shù),使用快排根據(jù)支配關(guān)系(相關(guān)性,X?dY)進(jìn)行比較后,即可將種群分成支配(D集合)和非支配(non-dominant,ND集合)的兩個(gè)子種群

**(2) 第二輪比較:在第一輪比較的基礎(chǔ)上,只用選擇非支配的子種群進(jìn)行排序。**如果X于所有個(gè)體都不相關(guān)那X必然是非支配解,而其他個(gè)體不一定是非支配解。為什么?

因?yàn)?#xff1a;從快排排序原理來(lái)看,我們僅知道經(jīng)過(guò)第一輪排序后,D集合中的個(gè)體一定是被X或者ND集合中的某些個(gè)體所支配(從上圖和支配區(qū)域也可理解)。注意:并不是ND中的所有解都支配D中的解,后面會(huì)舉例說(shuō)明。而ND集合中的元素互相之間的關(guān)系并不清楚,因此還需要進(jìn)行比較,如上圖解A就支配E和F

(3) 如上圖經(jīng)過(guò)一整輪快速排序后即可知道解之間的支配關(guān)系。

舉例闡述排序流程

我們假設(shè)初始種群為:{X,A,E,F,B,G,H,C,I,J,K,D}。每次以集合第一個(gè)元素為基準(zhǔn)數(shù)進(jìn)行排序。基準(zhǔn)數(shù)左邊表示“小”的個(gè)體。集合中的個(gè)體并沒(méi)有順序(支配關(guān)系)。

第一輪排序:D1集合:{K,J,D} X ND1集合:{A,E,F,B,G,H,C,I}。我們僅知道{K,J,D} 這些個(gè)體被其他所支配。X {A,E,F,B,G,H,C,I}之間的支配關(guān)系并不清楚。

第二輪排序首先可知ND1集合中的任何一個(gè)個(gè)體不被X支配,但是并不代表ND1中不存在支配X的個(gè)體(比如以I為基準(zhǔn)數(shù),只能得到J為支配解,并且可以發(fā)現(xiàn)B,C,G這些個(gè)體都是支配I的)。通過(guò)X和所有集合ND1中的個(gè)體比較后,發(fā)現(xiàn)X就是非支配解。然后,我們選取ND1集合中的第一個(gè)元素為基準(zhǔn)數(shù)排序:D2集合:{E,F} A ND2集合:{B,G,H,C,I}。

第三輪排序:和第二輪排序操作類(lèi)似,先將A和所有ND2中的個(gè)體比較。然后,選取ND2集合中的第一個(gè)元素為基準(zhǔn)數(shù)排序:D3集合:{G,H,I} B ND3集合:{C},集合中只有一個(gè)元素即可停止

經(jīng)過(guò)三輪排序?qū)嶋H上Pareto最優(yōu)解集就找到了,即{A,B,C,X},它們?yōu)榈谝粚哟畏侵鋫€(gè)體,從圖中也可以看出。在排序的同時(shí)實(shí)際上D集合也在同時(shí)進(jìn)行排序(操作和上述流程相同),因?yàn)樽罱K我們想要得到的種群個(gè)體的非支配層次關(guān)系

D集合排序

D1集合:{K,J,D}排序后:{J},K,{D} ;

D2集合:{E,F}排序后:E,{F} ;

D3集合:{G,H,I}排序后:{H,I},G。由于一個(gè)集合中存在兩個(gè)個(gè)體且并不知道支配關(guān)系,因此需要繼續(xù)排序:H,{I}。

對(duì)于D集合的排序是否正確?

看起來(lái)似乎沒(méi)有什么問(wèn)題,但是注意相關(guān)性并不存在數(shù)學(xué)的“傳遞性”的特征(具體可以參照《多目標(biāo)進(jìn)化優(yōu)化》一書(shū)),不能這樣簡(jiǎn)單進(jìn)行排序。
比如J是第幾層的非支配解?通過(guò)上述比較并不知道。究其原因就是因?yàn)樯鲜雠判虻幕鶞?zhǔn)數(shù)不同。因此,需要按照上面找非支配解的流程將集合進(jìn)行整合,重新排序。

:放在基準(zhǔn)數(shù)的左邊集合為支配解,被基準(zhǔn)數(shù)所支配,但是不一定被右邊集合中的個(gè)體所支配(比如在第一輪排序中,左邊集合的K并不被右邊集合的A支配),不存在傳遞性。

非支配層次關(guān)系

由于我們選擇個(gè)體是按照非支配層次關(guān)系進(jìn)行優(yōu)選的,因此,需要按層次進(jìn)行分類(lèi)。顯而易見(jiàn),同一層中的個(gè)體互不支配。

通過(guò)上述比較可知,第一層非支配解集:P1= {A,B,C,X};

繼續(xù)比較D集合:{K,J,D,E,F,G,H,I},尋找第二層非支配解,請(qǐng)讀者自行推導(dǎo)。

第二層非支配解集:P2= {E,F,G,K,D};可以知道排除第一層次個(gè)體,它們就是非支配解;

第三層非支配解集:P3= {H,I};

第四層非支配解集:P4= {J};

拓展

下節(jié)進(jìn)行代碼實(shí)現(xiàn)。有算法基礎(chǔ)的同學(xué)可能會(huì)思考時(shí)間復(fù)雜度或者說(shuō)是否存在冗余比較。確實(shí)可以?xún)?yōu)化,田野老師團(tuán)隊(duì)提出了改進(jìn)算法,有興趣可以閱讀相關(guān)文獻(xiàn)。

一種用于進(jìn)化多目標(biāo)優(yōu)化的非支配排序的有效方法

多目標(biāo)優(yōu)化的基于樹(shù)的高效非支配排序方法的實(shí)證分析

注:本文圖片摘自《多目標(biāo)進(jìn)化優(yōu)化》一書(shū),其他的排序方法可以查閱此書(shū)。

總結(jié)

以上是生活随笔為你收集整理的多目标进化算法(二)——非支配排序/NSGA-II的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。