羅 校 清
(湖南軟件職業(yè)學院 湖南 湘潭 411100)
進化算法能夠不受問題性質(zhì)(如連續(xù)性和非連續(xù)性,凹、凸問題,多目標、多約束問題)的限制,有效地處理傳統(tǒng)優(yōu)化算法(如微分法和窮舉法)難以解決的復雜問題。在解決只有單個目標的復雜系統(tǒng)優(yōu)化問題時,進化算法的優(yōu)勢得到了充分展現(xiàn)[1]。在有多個沖突的目標情況下,通常要使得所有的目標都達到最好是不可能的,多目標進化算法MOEA(Multi-Objective Evolutionary Algorithm)[2-3]就是在多個有沖突的目標情況下,尋求一個或者一組折衷解。通常情況下,這種折衷解的集合不唯一,那么如何使求得解的集合盡量好且分布均勻廣泛十分重要。
進化優(yōu)化過程中,獲得的解集同時具有好的收斂性和分布性是研究進化算法的目的[4-5],其中,分布性包括分布均勻性和分布廣泛性。20世紀末的一些對于進化多目標優(yōu)化的研究重點在低維目標的優(yōu)化問題上,研究出了一些非常適用于解決低維問題的MOEAs,如NSGA-II[6]、SPEA2[7]、ε-MOEA[8]、PAES[9]等,這些算法都是基于Pareto支配關(guān)系的。基于Pareto支配的MOEA的選擇標準主要是以Pareto支配排序為第一個選擇標準,以分布性保持機制為第二個選擇標準。其中最為廣泛使用的是由Deb等[6]提出的NSGA-II。NSGA-II首先將個體按照Pareto支配排序分層,同一層中的個體都是非支配個體,在臨界層中使用基于聚集距離的分布性保持機制選取個體填滿歸檔集。由Zitzler[7]提出的第二代Pareto強度進化算法SPEA2與NSGA-II一樣使用兩個選擇標準。SPEA2將個體的分布信息和Pareto支配關(guān)系結(jié)合到了個體的適應(yīng)度中,選擇適應(yīng)度大的個體留下,在臨界層使用一個修剪方法保持種群的分布性。由Deb提出的ε-MOEA[8]將目標空間劃分為網(wǎng)格,使用了基于網(wǎng)格的ε支配方法。這些經(jīng)典的低維多目標優(yōu)化算法都使用了Pareto支配關(guān)系,并且其提出的分布性保持機制僅僅考慮到了種群的分布性,并沒有結(jié)合收斂性。
21世紀初,基于分解的多目標進化算法MOEA/D[10]的提出是多目標進化算法研究領(lǐng)域的里程碑。該算法首先將目標分解到不同的方向上,并對應(yīng)于預(yù)先設(shè)定的權(quán)重向量,由權(quán)重的方向來引導個體向不同的方向進化。該算法能獲得低維上分布十分均勻的解集。但是,該算法具有以下3點不足:第一,該算法需要提前設(shè)置好分布均勻廣泛的權(quán)重,當目標的數(shù)目增加時,如何設(shè)置分布性好的權(quán)重是一大難點;第二,當目標的個數(shù)增加時,設(shè)置合適的權(quán)重數(shù)目是較難斟酌的;第三,該算法選擇的個體更加偏向于權(quán)重的分布方向,因此在具有退化特性的優(yōu)化問題上的效果不好。盡管如此,MOEA/D是非常有效的多目標進化算法。自該算法提出以來,受到了國內(nèi)外學者的廣泛關(guān)注。
本文針對低維優(yōu)化問題,提出一種基于角度選擇的改進的SPEA2,即SPEA2+。提出包含了個體之間分布性和收斂性的角度選擇的分布性保持機制,在臨界層中選擇個體時,進一步地加強種群的收斂性,同時保持種群的分布性。實驗結(jié)果表明,當測試問題的目標個數(shù)大于3個時,SPEA2+比SPEA2具有更強的收斂性和更好的分布性,且在低維上的綜合性能(收斂性和分布性)明顯優(yōu)于其他4個比較的算法。
多目標優(yōu)化通常涉及到多個目標的同時優(yōu)化。多目標優(yōu)化與單目標優(yōu)化不同,它通常有多個符合條件的最優(yōu)解,為了說明如何處理多個最優(yōu)解,首先給出多目標優(yōu)化問題的數(shù)學模型[2]。
給出決策向量x=(x1,x2,…,xn)T,它滿足式(1)、式(2)中的約束。
gi(x)≥0i=1,2,…,k
(1)
hj(x)=0j=1,2,…,l
(2)
設(shè)有m個優(yōu)化目標,則優(yōu)化目標最小化為:
minf(x)=(f1(x),f2(x),…,fm(x))T
(3)

當有多個目標時,通常存在一些無法簡單比較的解。這種解通常稱作非支配解或Pareto最優(yōu)解。首先給出決策空間和目標空間的定義。
定義1決策變量空間(簡稱決策空間)的定義:
Ω={x∈Rn|gi≥0,hj(x)=0;(i=1,2,…,k;j=1,2,…,k)}
定義2目標函數(shù)空間(簡稱目標空間)的定義:
Π={f(x)|x∈Ω}
目標函數(shù)f(x)將Ω映射到集合Π。
定義3Pareto支配關(guān)系
設(shè)xa和xb是兩個不同的解,稱xa支配xb,則必須滿足式(4)和式(5)兩個條件。
對所有的子目標,xa不比xb差,即:
?i∈{1,2,…,m}fi(xa)≤fi(xb)
(4)
至少存在子目標,使xa比xb好,即:
?j∈{1,2,…,m}fj(xa) (5) 式中:m為子目標的數(shù)量。Pareto支配關(guān)系表示為xa?xb,其中“?”表示支配關(guān)系。 第二代Pareto強度進化算法SPEA2(Strength Pareto Evolutionary Algorithm)相比于SPEA[11]在3個方面進行了改進:一個改進的適應(yīng)度分布策略,其考慮了每個個體支配的個體數(shù)目和每個個體被多少個個體支配;第k個鄰近個體密度評估機制;一個新的歸檔集修剪策略用來保留邊界個體。 種群中的每個個體分布了一個強度值(strength value),表示個體i在進化群體P和歸檔集A中支配的個體數(shù),計算公式如下: S(i)=|{j|j∈P+A∧i?j}| (6) 在強度值S的基礎(chǔ)上,個體i的原始適應(yīng)度值(raw fitness)表示個體i的支配者在進化群體P和歸檔集A中的強度值之和,計算公式如下: R(i)=∑j∈P+A,j?iS(j) (7) (8) 當個體i到其第k個鄰近個體之間的距離越大,表示個體i的分布性較好,得到的D(i)越小,個體i最終的適應(yīng)度值也越小(SPEA2的個體適應(yīng)度越小越好),則該個體被選中進入下一次進化的可能性更大。算法1描述了適應(yīng)度計算步驟的偽代碼。CalculateStrength(P)函數(shù)表示計算種群P的強度值S,CalculateRawFitness(P)函數(shù)用來計算種群P的原始適應(yīng)度值R,CalculateKthDistance(P)函數(shù)用來計算種群P中的每一個個體的密度值D。rawfitness(x)和KthDistance(x)分別表示個體x的原始適應(yīng)度值R和密度值D,fitness(x)表示個體x的最終適應(yīng)度值。 算法1個體適應(yīng)度賦值的偽代碼 輸入:種群P={x1,x2,…,xl} 輸出:適應(yīng)度{fitness(x1),fitness(x2),…,fitness(xl)} CalculateStrength(P); CalculateRawFitness(P); CalculateKthDistance(P); FORι=1 TOlDO fitness(xι)=rawFitness(xι)+1/(KthDistance(xι)+2); END FOR 當歸檔集中的非支配個體超過預(yù)設(shè)的歸檔集大小時,使用修剪操作剔除歸檔集中的非支配個體,使得剩余個體保持較好的分布性。首先計算歸檔集中每兩個個體之間的距離(如函數(shù)CalculateDistancetoOthers()),找到最小距離對應(yīng)的兩個個體i、j(函數(shù)FindMinDistPoints()),分別找出這兩個個體到其他個體之間最小的距離為di、dj(secondMinDist1值和secondMinDist2值),刪除這兩個距離中較小距離對應(yīng)的個體i或者j(函數(shù)Delete())。循環(huán)以上過程,直到歸檔集中的非支配個體等于預(yù)設(shè)的歸檔集大小。修剪操作的流程如算法2所示。 算法2修剪操作的偽代碼 輸入:歸檔集A={B;x1,x2,…,xl},歸檔集大小n 輸出:歸檔集A={x1,x2,…,xn} disMatrix=CalDistancetoOthers(A); WHILE |A|>nDO pair secondMinDist1=FindSecondMinDist(distMartix,first); secondMinDist2=FindSecondMinDist(distMartix,second); IF secondMinDist1 Delete(first); ELSE Delete(second); END IF END WHILE 環(huán)境選擇是選出進化種群P和歸檔集A中的精英個體進入下一代進化。首先將進化種群P和歸檔集A中的所有非支配個體復制到進入下一代進化的歸檔集A中(函數(shù)SelectNondominatedIndividuals()),如果新的歸檔集A中的非支配個體數(shù)目超過了預(yù)設(shè)的歸檔集大小,則采用修剪操作(函數(shù)Truncate())。如果,歸檔集中的非支配個體數(shù)目不足,則繼續(xù)從進化種群P和歸檔集A中選取第一層非支配個體填充滿歸檔集(函數(shù)SelectDominatedIndividuals())。環(huán)境選擇的算法流程如算法3所示。 算法3環(huán)境選擇的偽代碼 輸入:種群P={x1,x2,…,xl},歸檔集大小n≤l 輸出:歸檔集A={x1,x2,…,xn} A=SelectNondominatedIndividuals(P); IF |A|>nTHEN Truncate(A,n); ELSE P*=SelectDominatedIndividuals(P,n-|A|); A=A∪P*; END IF SPEA2算法首先隨機產(chǎn)生一個初始化種群(RandomInitiate()),創(chuàng)建一個空的歸檔集(CreatEmpty()),設(shè)置進化代數(shù)為0。計算進化群體P和歸檔集A中所有個體的適應(yīng)度值(AssignFitness())。對P和A中個體進行環(huán)境選擇(EnvironmentSelection()),產(chǎn)生子代精英個體,對其進行二進制錦標賽選擇(MatingSelection())、交叉(Crossover())、變異(Mutation()),將產(chǎn)生的子代個體放到進化群體P中參與下一代進化。在終止條件滿足前循環(huán)該過程。SPEA2算法的總體框架如算法4所示。 算法4SPEA2算法流程的偽代碼 輸入:種群大小n,歸檔集大小n,終止運行代數(shù)τ 輸出:歸檔集A={x1,x2,…,xn} P=RandomInitiate(n); A=CreatEmpty(n); M=P∪A; AssignFitness(M); A=EnvironmentSelection(M,|A|); P=MatingSelection(A); P=Crossover(P); P=Mutation(P); END WHILE 在分布性保持策略中結(jié)合收斂性信息,能進一步地提高算法的全局搜索能力。提出使用角度選擇策略的第二代Pareto強度進化算法(SPEA2+),該算法保留了SPEA2的總體框架,提出了基于角度選擇的分布性保持策略,并將其應(yīng)用到SPEA2中的環(huán)境選擇。基于角度選擇的分布性保持策略計算種群中每兩個個體的夾角,將該夾角作為這兩個個體的角度距離。設(shè)兩個個體為p、q,則它們之間的夾角計算公式如下: (9) 基于角度選擇的分布性保持策略的偽代碼如算法5所示。函數(shù)CalAngletoOthers(A)計算種群A中每兩個個體之間的角度距離,函數(shù)findMinAnglePoints()找到最小角度距離對應(yīng)的兩個個體,函數(shù)findSecondMinAngle()找到某個個體與其他個體的最小角度距離。 算法5基于角度選擇的分布性保持策略的偽代碼 輸入:歸檔集A={x1,x2,…,xl},歸檔集大小n 輸出:歸檔集A={x1,x2,…,xn} angleMatrix=CalAngletoOthers(A); WHILE |A|>n DO pair secondMinAngle1=findSecondMinAngle(angleMatrix,first); secondMinAngle2=findSecondMinAngle(angleMatrix,second); IF secondMinAngle1 delete(first); ELSE delete(second); END IF END WHILE SPEA2中的修剪操作計算每兩個個體之間的歐氏距離。基于歐氏距離得到的兩個個體之間的距離僅僅反映了個體之間的距離的長短(即分布情況),而基于個體之間的夾角計算得到角度距離還能反映個體的收斂情況。例如,當兩個個體之間的歐幾里得距離較大時,它們之間的夾角很可能較小,因此,使用角度距離能剔除收斂較差,離種群中心點較遠的個體,從而增加收斂壓力,保持好的分布性。同時,基于角度選擇的分布性保持機制能夠保留種群中的邊界個體,從而保持種群的分布廣泛性。 在種群進化過程中,廣泛存在圖1中的個體分布情況。利用圖1來分析基于角度選擇的分布性保持機制和使用歐幾里得距離的修剪操作刪除種群中多余個體的過程。種群中有A、B、C、D和E五個個體,現(xiàn)在需依次從種群中刪除兩個個體。使用基于角度選擇的方法剔除個體的過程是:首先計算五個個體中每兩個個體之間的夾角,得到最小的夾角對應(yīng)的兩個個體為D和E;計算與D個體組成的最小的夾角是∠COD,與E組成的最小夾角是∠COE,因為∠COD<∠COE,所以剔除個體D;同樣,再剔除個體B。SPEA2中使用歐幾里得距離剔除的兩個個體為C、B。可以從圖1中看到,C個體的收斂性好于D個體,但是SPEA2中的修剪操作將C個體剔除了,而角度選擇策略能將其保留,說明該策略具有更強的收斂壓力。同時,這兩種策略都保留了最靠近邊界的兩個個體A和E,這樣保持了解集的分布廣泛性。當優(yōu)化目標的數(shù)目增加時,臨界層中的個體數(shù)目指數(shù)增加,有越來越多的個體需要通過分布性保持策略被選擇,因此在分布性保持策略中引入少量的收斂性信息能有效地促進算法的收斂,同時保持較好的分布性。 圖1 基于角度選擇的分布性保持策略和 SPEA2中修剪操作比較 本節(jié)分析SPEA2+的時間復雜度的上界,該算法在每次迭代的過程中,主要有3個操作:1) 匹配選擇;2) 重組;3) 環(huán)境選擇。設(shè)定種群的大小為N,需要優(yōu)化的問題的目標個數(shù)為M,則匹配選擇的時間復雜度為O(NM),其中兩個個體之間比較支配關(guān)系的時間復雜度為O(M)。重組過程采用模擬二進制交叉[21]和多項式變異[22],時間復雜度為O(DM),D為決策變量的維數(shù)。環(huán)境選擇包含2個部分:非支配排序選擇,角度修剪策略。非支配排序選擇的時間復雜度為:O(MN2),角度修剪策略的時間復雜度為O(N2)。因此,環(huán)境選擇過程的時間復雜度為O(MN2)。可以得出,SPEA2+的時間復雜度為O(GMN2),G是迭代次數(shù)。 本文選取了4個經(jīng)典的多目標進化算法ε-MOEA、NSGA-II、SPEA2、MOEA/D和一個高維多目標進化算法AR[12]與SPEA2+進行對比,來驗證SPEA2+的有效性。 在進化多目標優(yōu)化領(lǐng)域,已有許多研究標準測試集的成果[13-15]。本文選取常用的測試集DTLZ系列測試函數(shù)[17]和ZDT系列測試函數(shù)(目標數(shù)目為2)[14]對6個多目標進化算法進行測試,得到這些算法對特定優(yōu)化問題的性能。DTLZ系列測試函數(shù)選取其中7個測試問題(DTLZ1至DTLZ7),測試函數(shù)的目標個數(shù)為2和3個;ZDT系列測試函數(shù)選取ZDT1、ZDT2、ZDT3、ZDT4和ZDT6這5個測試函數(shù),測試的目標個數(shù)為2個。同時,選取了一個帶有3個決策變量、5個目標和7個約束的實際應(yīng)用問題,即雨水排放系統(tǒng)優(yōu)化問題[16]。該問題描述了一個城市中的雨水排放系統(tǒng)的優(yōu)化項目。這個問題一般被用來檢驗多目標進化算法處理高維帶約束優(yōu)化問題的能力[17-18]。該問題的公式如式(10),f1(x)-f5(x)表示5個目標的最小化,g1(x)-g7(x)表示7個約束,其詳細的描述可參考文獻[14]。 (10) 決策變量的范圍:0.01≤x1≤0.45,0.01≤x2,x3≤0.1。 MOEA性能評價指標用來評價MOEA的收斂效果和所求解集的分布效果。本文選擇1個被廣泛使用的MOEA性能評價指標IGD(inverted generational distance)[19]來評價6個算法的綜合性能,即IGD指標能同時評價算法的收斂性和分布性。IGD的定義如下: (11) 式中:n是獲得的解集的大小。di=minj∈P|i-j|表示真實Pareto前沿面PF*上的點i到獲得的解集P之間的最小歐式距離,j表示該解集中的某個解。IGD指標的值越小,說明獲得的解集越靠近真實Pareto面,且分布性好,綜合性能越好。IGD的值在閉區(qū)間[0,1],說明算法進化得到的種群能夠較均勻地逼近真實Pareto前沿面,且收斂。選取經(jīng)典的評價多目標算法的收斂性的指標generational distance(GD)[20]來評價SPEA2+和SPEA2的收斂性。GD是IGD的逆映射。GD值越小,說明獲得的解集越靠近真實Pareto面。GD的值在閉區(qū)間[0,1],說明解集已經(jīng)收斂到真實Pareto前沿面。 本文比較的每個算法在每個測試用例上獨立重復運行30次獲得最終的實驗數(shù)據(jù)。種群和歸檔集中的個體數(shù)目設(shè)置為100。使用實數(shù)模擬二進制交叉(SBX)[21]和多項式變異(PM)[22]。交叉概率為1,變異概率為1/n(n表示種群大小)。 特別地,MOEA/D中選擇的聚合函數(shù)為weight sum函數(shù)[10],鄰居種群的大小設(shè)置為初始種群數(shù)目的10%,懲罰參數(shù)設(shè)置為5。 本節(jié)給出6個多目標進化算法在DTLZ1至DTLZ7的7個測試問題上的IGD指標值,如表1所示。表中單元格中的數(shù)據(jù)分別為30次獨立重復實驗的均值和標準差(括號內(nèi)),加粗的數(shù)據(jù)表示在每個測試用例上表現(xiàn)性能最好的指標值。 表1 6個多目標進化算法在DTLZ測試集上的IGD指標值 根據(jù)表1分析6個多目標進化算法在低維測試問題上的性能。SPEA2+的綜合性能最好,其中它的IGD值在6個測試用例上排第一;其次是SPEA2和ε-MOEA;其他3個算法表現(xiàn)一般。SPEA2在2目標測試問題上的綜合性能優(yōu)于SPEA2+,但是SPEA2+在3目標測試問題上的綜合性能更好,這是因為隨著目標數(shù)目的增加,SPEA2+的收斂性更好。ε-MOEA尤其在混合的非連續(xù)性問題DTLZ7上表現(xiàn)最佳。雖然MOEA/D已經(jīng)收斂,但是由于weight sum聚合函數(shù)的使用,算法的分布性不好,導致綜合性能表現(xiàn)不佳。AR是一個高維多目標優(yōu)化算法,其不適用于解決低維問題。 解集可視化圖能夠直觀地給出解集的收斂性,特別是分布均勻性和分布廣泛性。圖2給出了6種多目標進化算法在DTLZ3的3目標上的最優(yōu)解集可視化圖,該圖坐標軸上的標示f1、f2和f3分別表示第一個、第二個和第三個目標。從圖2中可以看出6個算法的解集都收斂在Pareto前沿面上。SPEA2+和SPEA2的分布性最好,最優(yōu)解集均勻且廣泛地分布在整個Pareto前沿面上。ε-MOEA的解集分布較均勻,但是某些區(qū)域沒有解。NSGA-II的解集有重疊,且部分區(qū)域沒有解。MOEA/D和AR的分布性最差,解集都集中在3個區(qū)域。 (a) AR (b) ε-MOEA (c) MOEA/D (d) NSGA-II (e) SPEA2 (f) SPEA2+ 圖2 6種多目標進化算法在DTLZ2的 3目標上的解集可視圖 本節(jié)分析6個多目標進化算法在ZDT系列5個測試問題上的IGD指標值,如表2所示。SPEA2+在5個測試用例上的綜合性能均最好,比SPEA2稍好,因為在2目標優(yōu)化問題上,Pareto支配關(guān)系能挑選出表現(xiàn)優(yōu)秀的個體進入下一次迭代,所以分布性保持機制的優(yōu)勢并不明顯。NSGA-II的綜合性能稍差于NSGA-II,其他3個算法ε-MOEA、AR和MOEA/D效果一般。 表2 6個多目標進化算法在ZDT測試集上的IGD指標值 圖3給出了6種多目標進化算法在ZDT1的2目標上的最優(yōu)解集可視化圖。可以看出6個算法獲得的解集均收斂。SPEA2+和SPEA2的分布性很好,解集都均勻廣泛地分布在整個Pareto前沿面上。其次是NSGA-II和ε-MOEA,它們分布都很廣泛,但是不夠均勻。MODA/D和AR在某些區(qū)域沒有解分布。 (a) AR (b) ε-MOEA (c) MOEA/D (d) NSGA-II (e) SPEA2 (f) SPEA2+ 圖3 6種多目標進化算法在ZDT1的 2目標上的解集可視圖 本節(jié)分析6個多目標進化算法在雨水排放系統(tǒng)優(yōu)化問題上的實驗結(jié)果,采用IGD指標來評價算法進化后獲得的最終解集的綜合性能,如表3所示。SPEA2+在該實際應(yīng)用問題上的綜合性能最好,比經(jīng)典的MOEA/D和SPEA2都好。從而可以驗證,SPEA2+在帶有約束的5目標測試問題上的綜合性能并沒有隨著目標個數(shù)的增加而顯著下降。 表3 6個多目標進化算法在雨水排放系統(tǒng)優(yōu)化問題上的IGD指標值 在2目標的測試問題上,SPEA2+中的基于角度選擇的分布性保持機制的在增加收斂壓力方面的優(yōu)勢并不能完全體現(xiàn)出來。因此,將SPEA2+與SPEA2在DTLZ2測試問題的3目標和5目標上比較其收斂性,使用GD指標進行評價,如圖4所示。S表示SPEA2,S*表示SPEA2+。橫軸是運行的代數(shù),縱軸是GD指標值。GD值越小越好。 圖4 SPEA2+與SPEA2的收斂性比較 在3目標測試問題上,SPEA2+的收斂性稍優(yōu)于SPEA2。當目標個數(shù)從3個增加到5個時,SPEA2+的收斂性明顯優(yōu)于SPEA2。因此可以證明SPEA2+中基于角度選擇的分布性保持機制的在增加收斂性方面的有效性。 本文介紹了一種基于角度選擇的第二代Pareto強度進化算法,此算法比SPEA2在收斂性方面更加有效,且同時能保持種群很好的分布性。將同時包含了個體的收斂性和分布性的角度信息引入了分布性保持機制,提出了一種基于角度選擇的分布性保持機制。基于12個國際標準測試問題及一個帶約束的高維實際應(yīng)用問題,對比了本算法與其他5個經(jīng)典的多目標進化算法,實驗結(jié)果表明提出的算法在低維問題上具有很好的收斂性和分布性,具有很強的全局搜索能力,且在5目標問題上的綜合性能仍然較好。 未來的工作可以在以下兩方面展開:1) 將提出的基于角選擇的分布性保持機制應(yīng)用到高維多目標進化算法中;2) 將本文提出的算法應(yīng)用于更多的實際工程問題,來驗證算法的有效性。3 第二代Pareto強度進化算法
3.1 個體適應(yīng)度賦值

3.2 修剪操作
3.3 環(huán)境選擇
3.4 SPEA2
4 使用角度選擇策略的第二代Pareto強度進化算法

5 時間復雜度分析
6 實驗設(shè)計
7 實驗結(jié)果分析
7.1 DTLZ系列測試問題比較







7.2 ZDT系列測試問題比較







7.3 雨水排放系統(tǒng)優(yōu)化問題的實驗結(jié)果及分析

7.4 SPEA2+與SPEA2的收斂性比較

8 結(jié) 語