多目標進化演算法 MOEAs 概述

2021-08-07 14:55:46 字數 2884 閱讀 9995

對於大多數多目標優化問題,其各個目標往往是相互衝突的,因此不可能使得所有的目標同時達到最優,而是一組各個目標值所折衷的解集,稱之為pareto最優集。以下為一些基本定義(以最小化優化問題為例):

definition 1: 多目標優化問題(multi-objective optimization problem(mop))f(

x)=(

f1(x

),…,

fm(x

))s.

t.x∈

ω definition 2: pareto支配(pareto dominance)

x支配y

,記為 x≺

y ,當且僅當∀i

∈ ,fi

(x)≤

fi(y), 且∃j

∈ , s.t. fj(x)

(y) 。

definition 3: pareto最優解(pareto optimal solution)

如果乙個解x∗

被稱之為pareto optimal solution, 當且僅當 x∗

不被其他的解支配。

definition 4: pareto 集(pareto set)

乙個mop,對於一組給定的最優解集,如果這個集合中的解是相互非支配的,也即兩兩不是支配關係,那麼則稱這個解集為pareto set 。

definition 5: pareto 前沿(pareto front)

pareto set 中每個解對應的目標值向量組成的集合稱之為pareto front, 簡稱為pf

definition 8: 分布性(diversity)

現在來講講主流的多目標進化演算法。 

從進化演算法的角度來講,目前已有遺傳演算法(ga),粒子群演算法(pso),蟻群演算法(aco)等一系列演算法用來解決多目標優化問題,但用的比較多的還是遺傳演算法,粒子群演算法也有。 

從多目標問題本身來說,主要分類如下: 

- 基於pareto支配關係 

- 基於分解的方法 

- 基於indicator方法

先來介紹下基於遺傳演算法的多目標優化演算法的一些基本引數: 

種群大小:每次迭代都需保證種群大小是一致的,且其大小應由初始化設定。 

交叉概率:用於衡量兩個個體交叉的概率。 

突變率:交叉產生的解發生突變的概率。 

標準的遺傳演算法每次迭代都會將上一代的個體丟棄,雖然這符合自然規律,但對於遺傳演算法來說,這樣效果不是特別好,因此,精英保留策略將上一代個體和當前個體混合競爭產生下一代,這種機制能較好的保留精英個體。 

基於pareto支配關係

最經典的方法是nsga-ii,該方法由kalyanmoy deb等人於2023年提出(a fast and elitist multiobjective genetic algorithm: 

nsga-ii),該方法主要包括快速非支配排序,將每次交叉突變產生的解和前一代的解合併,然後利用非支配排序分層,其偽**如下: 

再就是把每層相加直到超過種群個體,再在最後一層基於擁擠距離來選擇解,擁擠距離偽**如下: 

具體來說,nsga-ii使用快速非支配排序來保證收斂性,並且利用擁擠距離來保證分布性。特別說下,在迭代後期,大多數解都是非支配的,也即大多數解都在第一層。 

當然,隨著nsga-ii的提出,很多基於此的演算法如雨後春筍般大量湧現,特別是在處理高維多目標優化問題時這種想法得到很多的應用,如vaea,rvea,nsga-iii等。 

同時,spea2也是基於pareto支配關係的一種較為流行的演算法(spea2: improving the strength pareto evolutionary algorithm),該演算法使用乙個外部儲存集來儲存較為優秀的解,同時,對每乙個解,利用其支配的解的數量和基於knn的鄰近解的距離來給每乙個解打分,得分越小的解更優。

基於分解的方法mi

ngws

(x|λ

)=∑m

i=1λ

ifi(

x)其中λm

ingt

e(x|

λ,z∗

)=ma

x 其中λ

λ∗=(

1λ1∑

mi=1

1λi,

....

,1λm

∑mi=

11λi

) ,通過這個參照向量的轉換即可得到分布均勻的解。mi

如上圖所示。一般來說,θ=

5 是比較常用的,yuan yuan等人提出的θ−

dea 演算法對

θ 的取值有較為詳細的討論(a new dominance relation-based evolutionary algorithm for many-objective optimization)。 

基於分解的進化方法框架如下: 

基於indicator方法

相比於igd指標,hypervolume更容易用來作為乙個測度在種群進化過程中用來選擇個體,因為igd需要知道真實的pareto front資料,而這對於乙個未知多目標優化問題是相當困難的。

至於具體的多目標進化演算法後續將會詳細介紹。

參考文獻

進化多目標優化演算法學習綜述

最初,多目標優化問題 通過加權等方式轉化為單目標問題 用數學規劃求解。這樣每次只能得到一種權值下的最優解。而且mop的目標函式 約束函式可能是非線性 不可謂 不連續的,傳統的數學規劃效率低,並且它們對於權值或目標給定的次序比較敏感。進化演算法 通過代與代之間維持由潛在解組成的種群來實現全域性搜尋。第...

多目標進化演算法基礎知識整理

特意整理一些多目標進化演算法的基礎知識點,盡量用通俗易懂的語言進行描述,希望對入門多目標演算法的同學和對優化演算法有興趣的朋友有所幫助。使多個目標在給定區域同時盡可能最佳,多目標優化的解通常是一組均衡解 即一組由眾多 pareto最優解組成的最優解集合 集合中的各個元素稱為 pareto最優解 因此...

多目標進化優化(MOEA)方法

二.moea演算法 2.基於支配的moea 三.moea具體工作 四.moea需要考慮的問題 五.moea研究成果 在生活中的優化問題,往往不只有乙個優化目標,並且往往無法同時滿足所有的目標都最優。例如工人的工資與企業的利潤。多目標進化優化演算法即利用進化演算法結合多目標優化策略來求解多目標優化問題...