安徽大學 田野老師 platEMO 平台代碼網址:https://github.com/BIMK/PlatEMO
NSGA2 MOEA/D NSGA3 網上寫的較好的單獨代碼分享,供大家學習調試理解:
鏈接:https://pan.baidu.com/s/1Y-rJWaHODdObiDO4BzuJrg
提取碼:mdyb
網上查閱很多資料,基於分解的MOEA的理解匯總(當做自己的筆記記錄下)如下:
基於分解的MOEA有三類聚合函數,如下
對於權重聚合方法,jinTester 給出的解釋可能更容易理解,參見https://blog.csdn.net/jinjiahao5299/article/details/76045936
首先,λ被稱之為權重向量,觀察和式,這完全就是m維向量的點乘公式嘛。具體的說,在目標空間中,把算法求出的一個目標點和原點相連構造成一個向量,此時,該方法的做法是將該向量與對應權重向量點乘,由向量點乘的幾何意義可知,所得的數為該向量在權重向量方向上的投影長度,因為權重向量不變,最大/小化該長度值其實就是在優化該向量。可知若要增大該向量在權重向量上投影的長度,一方面可以增大/減小與權重向量的夾角,另一方面可以增大/減小該向量的長度。樣例圖如下圖。
圖中:考慮紅色權重向量,因為是最小化問題,所以減小長度,增大夾角都是可行的方案,綠色為等高線,垂直於權重向量。
對於切比雪夫聚合方法,Erpim 給出的解釋可能更容易理解,參見https://blog.csdn.net/qq_35414569/article/details/79655400
理解為啥f′1λ1>f′2λ2,這個需要看前提條件的,如果在λ左上方,只有f1和f2發生了變化。你可以移位一下,看作是兩個斜率的比較。注意,λ是針對某一個的,是不變的。
jinTester的解釋:https://blog.csdn.net/jinjiahao5299/article/details/76045936
該方法給出的表達式為:
注意該方法中不再含有Σ符號,故不能再從向量點乘的角度理解。該方法大致思想是減少最大差距從而將個體逼近PF。等高線示意圖如下:
首先解釋等高線為什么是這樣的。單看f1函數,即只考慮縱坐標,若兩點等值,必然是 式中f1的函數值相等(因為另外兩個量是不變的),即縱坐標相等,所以f1函數的等高線是一組平行於橫軸的直線。f2類似,為一組平行於縱軸的直線。
那么,圖中的等高線是橫豎相交且剛好交在權重向量的方向上的,這是巧合嗎?可以稍微來證明一下,可知,對於任何一個可行的切比雪夫值(自己叫的),我們從f1的角度上可以得到一個f1的值y,從f2的角度上可以得到一個f2的值x,他們的切比雪夫值是相等的,自然想到,點(x,y)(圖中紫色點)為該切比雪夫值得橫縱兩條等值線的交點,那么有:λ1*(y-z1)= λ2*(x-z2),化簡的(y-z1)/(x-z2)= λ2/λ1,可知該交點位於權重向量的方向上。
需要注意一點,這里的權重向量起點是Z*,不再是原點。
此時可知,若某個個體位於其權重向量方向的上部,則max得到的一定是其f1部分,故優化也需要減小其f1的值,即個體向下移動,相反,若在權重向量方向的下部,則應像左移動。以此來保證個體目標值落在黃點附近。
一種可能的個體運動路線如下圖橘黃色所示:
這里λ和權重聚合方法以及切比雪夫中的定義一致,也即滿足λ¡≥0,¡=1,…,m且。既然λ是各分量和為1的向量,而不是單位向量,我認為d2的求解式應該是有問題的,應該是
另外我查閱有些博主也是這么認為的,比如愛吃米飯的小希,https://blog.csdn.net/zp18355435850/article/details/80501324
各個參數含義如下圖:
參見jinTester,https://blog.csdn.net/jinjiahao5299/article/details/76045936
可知算法放寬了對算法求出的解得要求,但加入了一個懲罰措施,說白了,就是你可以不把解生成在權重向量的方向上,但如果不在權重向量方向上,你就必須要接收懲罰,你距離權重向量越遠,受的懲罰越厲害,以此來約束算法向權重向量的方向生成解。
接下來是關於d1和d2兩個參數的計算表達式的含義說明,我依然是從幾何角度理解的。
d1——觀察d1的計算表達式,Z*-F(x)可以看做原點到Z*點的向量減去原點到F(x)的向量,得到的是從F(x)出發指向Z*的一個向量,暫且命名為μ,之后μ與λ相乘得到μ在λ方向上的投影,這個長度值與λ的長度值之比為d1。
d2——其表達式的含義其實也無非就是利用向量運算構造出d2所表示的向量,取模即可得到d2.構造過程如下:
Z*表紅色向量,d1*λ表藍色向量(因為減法,所以方向取反),紅色減藍色得紫色向量,F(x)表綠色向量,綠色減紫色得黃色向量,即d2表黃色向量的長度。
輔助理解MOEA/D算法的
https://www.docin.com/p-1627227465.html [感覺翻譯了論文的絕大部分]
MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition
中文鏈接:https://wenku.baidu.com/view/d163a04d915f804d2a16c102.html
文檔下載:
鏈接:https://pan.baidu.com/s/1l5_Eq9ODlYov4XtEK2unsQ
提取碼:na3t
Chithon http://blog.csdn.net/qithon/article/details/72885053#comments
jinTester http://blog.csdn.net/jinjiahao5299/article/details/76045936
https://blog.csdn.net/sinat_33231573/article/details/80271801
多目標優化_學習筆記(三)MOEA/D https://blog.csdn.net/qq_35414569/article/details/79655400 [對這三種方法的解釋比較好]
一種基於支配和分解的多目標優化進化算法學習筆記 :https://blog.csdn.net/zp18355435850/article/details/80501324