童曉斌,范平清,劉天宏,李 聰
(上海工程技術大學機械與汽車工程學院,上海201620)
為了解決現實中的優化問題,經常需要使用各種現代智能算法如:遺傳算法(GA),差分算法(DE),模擬退火算法(SA),粒子群算法(PSO)等。其中,遺傳算法在工程和科學應用中頻繁的作為一種搜索和優化工具[1-2-3]。
遺傳算法的主要問題是早熟算法和收斂速度較慢。同步器零部件的設計需要很高的精度。而一般的遺傳算法很難達到這樣的精度。收斂到全局最優解需要大量的遺傳代數、種群數和計算時間。影響遺傳算法(GA)搜索效率的主要因素有兩個:種群多樣性和選擇壓力。如果選擇壓力不足,會產生很多無效搜索,搜索空間中優秀的區域不會優先搜索。種群多樣性對于遺傳算法的全局搜索能力至關重要。
選擇壓力與種群多樣性呈負相關。選擇壓力的增加導致種群多樣性的損失更快,而保持種群多樣性抵消了選擇壓力增加的影響。控制這兩個因素,使其同時達到較好的值,能使算法更加有效。
為了使兩者兼顧,人們嘗試從不同的角度去改善遺傳算法—編碼策略、選擇策略、交叉策略,變異策略。
該改進遺傳算法,通過結合目標函數值與它們和當前最優染色體之間的差異,得到一個新的適應度函數。在該基礎上使用競標賽的方式進行選擇操作,使與當前最優染色體差異較大的染色體得到更高的錄取機會,保證了種群的多樣性,減少了陷入局部優值的概率。
論文的內容安排如下。在第二節中,我們將詳細描述如何改進選擇策略。在第三節中,我們研究了兩個重要常量對改進遺傳算法結果的影響。在第四節中,改進算法與另外兩種遺傳算法進行了比較(只有選擇策略不同)。在第五節中,將該算法應用于實際情況,并證明了其實用性。最后,得出一些結論。
遺傳算法傳統的選擇策略使用輪盤賭策略和錦標賽策略。這兩種選擇策略都會大量復制適應度值較高的個體。在較優解越來越多后,會直接控制算法的優化方向,使算法陷入局部最優解。在這兩種選擇策略中,適應度函數等價于目標函數,沒有照顧到目標函數值的變化趨勢,導致遺傳過程中的染色體在一個時期內雖然有較優的目標數值,但可能都是在較平坦的區域內徘徊。經多代遺傳后,目標函數值依舊無法擺脫局部最優值的陷阱,從而導致“早熟”現象[4]。
文獻[5]中把Hamming距離引入二進制遺傳算法,使算法得到了一定的提升。該方法以兩個體染色體中不同字符的數量為兩個染色體的Hamming距離。距離越大,則兩個染色體體間所包含的不相同模的數量就越多,種群中的模式也越多,兩個個體所對應的參數差別也越大。然而,該算法依舊有一定的不足之處。第一,二進制遺傳算法的表現不直觀。相比于十進制,表達相同大小、精度的數字需要更長的染色體。其次,不相同字符在基因中所處位置不同時,影響效果大不相同。當兩條染色體的不同位發生在較低位時,即使海明距離較大,但實際兩條染色體之間的差異并不大。反之,當兩條染色體的不同位發生在較高位上時,即使海明距離較小,但實際上兩條染色體的差異卻很大。最后,該算法僅適用于多模態函數。若使用在單模態函數中,僅僅會增加無用的計算。即該算法的魯棒性不強。
該的改進遺傳算法以十進制進行編碼,能直觀反映不同染色體之間的差異大小。該算法需要考慮染色體目標函數值之間的差異和染色體位置的差異,所以當算法進入選擇操作,先使當代每條染色體的適應度值比上當代最優染色體的值即:

式中:fi—當代每條染色體的目標函數值。fbest—當代最優染色體的目標函數值。由于fbest不可為0,所以當fbest=0時,令fbest=1,即當最優染色體的目標函數值為0時,BL的值就是每條染色體自身的目標函數值。
第二步求出當代每條染色體與當代最優染色體的差異大小,并做歸一化處理得到每條染色體與當前最優染色體之間的位置差異:

式中:dij—當代第i條染色體上第j個基因的值。dbestj—當代最優染色體上的第j個基因的值。Dj—第j個基因的區間長度。m—染色體上的基因數。
第三步求出目標函數值差異與位置差異的比值BZ:

u—常數。當一個次好的染色體若與最優染色體很近,則其BZ的值將較大,則其被選中的幾率較小。當r=0時,即該染色體與最優染色體是基因完全相同的染色體。此時,BZ—無窮大,若是求最小值問題,則與最優染色體相同的染色體沒有被選中的機會,若是求最大值問題,則必會被選中。所以,r=0時,令r=Pt。通過Pt可以自由控制當前最優染色體進入子代的機會。
錦標賽選擇策略可以通用于最大化問題和最小化問題,不像輪盤賭選擇策略,在求解最小化問題的時候還需要將適應度值進行轉換且競標賽選擇策略的求解精度和收斂速度要優于賭盤選擇策略[6]。然而,經過多代選擇之后,競標賽選擇策略容易造成局部最優。改進適應度后,即使子代中存在較多相同的染色體,也可以通過Pt和u控制其再次進入子代的機會,能很好的克服錦標賽選擇策略的缺點。所以,得出適應度函數的之后,選用競標賽策略控制染色體的淘汰。
該算法有兩個重要的影響因子:r的指數u,以及當出現與最優染色體相同的染色時,r的取值Pt。Pt的值越大,當前最優染色體的適應度函數就越小,則最優染色體被選中的概率越小。這使算法的物種多樣性好,但收斂速度慢。該情況下要想得到較好的解需要較大的遺傳代數。反之,當Pt的值越小時,當前最優染色體被選中的概率越大。該情況下,算法收斂性較強,但容易陷入局部最優解。u為r的權重,能縮小或放大r的影響。在低緯度情況下r是一個小于1的數,則u的值小,r的影響被擴大。在高緯度情況下,r是一個大于1的數,則u的值大,r的影響被擴大。
為了探究這兩個影響因子的影響,引入以下兩個函數,分別從單模態與多模態和高緯度與低緯度的角度去實驗。

表1 對比試驗所用函數Tab.1 Functions Used in Comparative Experiments
對Pt進行測試時,Pt分別取5e-5、0.05、0.5、50,u取2。當對u進行測試時,u分別取0.02、0.2、2、20,Pt取0.05,對每一種取值試驗算法100次,得出其目標函數值變化對比圖和其尋到的最優值與最差值。
Rosenbrock函數是一個經典的優化問題,它的全局最優點位于一個平滑、狹長的拋物線形山谷內.由于函數僅僅為優化算法提供了少量信息,使算法很難辨別搜索方向,找到全局最小點的機會微乎其微,因此Rosenbrock函數通常用來評價優化算法的執行效率[7]。
由于變量變化區間較大,為了方便觀察,一部分圖片的縱坐標取的是目標函數值經過對數變換的結果。(a)、(b)為低、高緯度情況下pt對算法的影響。(c)、(d)為低、高緯度情況下u對算法的影響。所有的橫坐標都是算法的試驗次數。(a)、(b)、(d)的縱坐標為經過對數變換的優化結果。(c)的縱坐標為未處理的優化結果,如圖1所示。

圖1 單模態時示意圖Fig.1 Schematic diagram of single mode
在Pt較小時,最優解的波動很大,說明算法經常陷入局部最優值。Pt的值較大時,(因為測試時,進化代數是一樣的)最優解比較穩定,但其最好的解不如Pt取較小值時候的最優解。然而,在高緯度情況下,Pt的值大于一定值時算法得到結果不但波動大且總是無法得到較好的解。對比以上試驗結果可知,單模態情況下,Pt對算法結果的影響基本符合理論推測。雖然Pt較小時優化結果存在較大差異,但是還是要優于Pt值較大的時候。總的來說Pt取較小值比Pt取較大值好。u的值越大則算法的結果越穩定。然而對比其最優解的上限與下限卻發現當u=2時得到的結果最好。在高緯度情況,我們感覺不到u對算法穩定性的影響,但可以發現u取較小值時算法得到的結果較好。在低緯度情況下,r<1,即u越大,r的影響越大。在高緯度情況下,r>1,即u越小,r的影響越小。因此,初步得出結論,在高緯度情況下要減小r的影響,即減小染色體間差異的影響。而低緯度時,要在符合某個上限的情況下,擴大染色體間差異的影響
Rastrigrin函數是用來測試算法全局搜索性能典型函數,具有廣泛的搜索空間、大量的局部極小點和高大的障礙物,通常被認為是遺傳算法很難處理的復雜多模態問題[7]。(a)、(b)為低、高緯度下pt對算法的影響。(c)、(d)為低、高緯度下u對算法的影響。所有的橫坐標都是算法的試驗次數,縱坐標為經過對數變換的優化結果,如圖2所示。

圖2 多模態時示意圖Fig.2 Schematic diagram of multimodal
由圖多模態低緯度情況下,Pt對算法的影響與單模態情況相同。而在高緯度情況下,Pt=0.05時,雖然100次中最優結果要略次于Pt=5e-5,但從圖中發現其結果大部分要優于Pt=5e-5.低緯度情況下,u=0.02時的優化結果上限最好,但下限要略差于u=0.2.高緯度情況下,u=0.2時的優化結果上限最好,但下限要略差于u=0.02。但這兩種u值所得算法結果從整體分析并無明顯優劣。總的來說,算法結果都是隨著u的增大而變差。
綜上所述,我們可以得出以下結論。無論是單模態還是多模態,Pt對算法的影響都是相同的,僅受目標函數變量數目的影響。而u影響效果還受單模態與多模態區別的影響。單模態低緯度時,u要在符合某個上限的情況下取較大值;高緯度情況下u取較小的值更好。多模態情況下,無論是高緯度還是低緯度都要取較小的值。其次,Pt對算法的影響是單調的,都是在取較小值時得到較好的結果。而u的值對算法的影響并不是單調的,太大或太小都不好。
為了驗證改進算法收斂性和跳出局部最優解的能力,設置了一組對比測試。由于只是為了證明該選擇策略的優越性,所以只選擇標準遺傳算法(賭盤選擇式和競標賽式)進行選擇策略的比較。同樣使用上述兩個函數進行對比。所有實驗的種群規模均為30,每個函數獨立運行100次,每次運行2 000代。對于標準遺傳算法和改進的遺傳算法Pc=0.8,Pm=0.2。(a)、(b)為單模態低(高)緯度情況下三種選擇策略的對比結果。(c)、(d)為多模態低(高)緯度情況下三種選擇策略的對比結果。所有的橫坐標都是算法的試驗次數,(a)、(b)縱坐標為未處理的優化結果。(c)、(d)縱坐標為經過對數變換的優化結果,如圖3所示。

圖3 模態示意圖Fig.3 Modal diagram
觀察可知,無論是高緯度還是低緯度,紅色帶星號的直線都在另外兩條直接之下。所以,改進的選擇策略效果要比競標賽式選擇策略和賭盤式選擇策略更強的跳出局部最優值的能力。且改進選擇策略的結果在上限、下限、穩定性方面都要明顯優于常用的競標賽式選擇策略和賭盤式選擇策略。
縱坐標的值越小優化結果的值越接近0。明顯看出紅色帶星號直線在另外兩條曲線之下。即改進的選擇策略效果要比競標賽式選擇策略和賭盤式選擇策略的效果更好。因為log100沒有意義,所以代表改進選擇策略的線有許多斷點。這意味著該算法達到了理論最優值。
所以,改進適應度函數有很好適應性。無論是單模態還是多模態、高緯度還是低緯度,該選擇策略都要優于賭盤式選擇策略和競標賽式選擇策略。
(1)假設同步器磨損過程發生在穩定磨損階段。
(2)假設磨損過程中分形維數D保持不變。
(3)假設同步過程中換擋力保持不變。
查閱論文可得磨損深度率為

式中:Ar—真實接觸面積;Ke—彈性體摩擦磨損系數;G—表面輪廓分形參數;ψ—修正系數;δ—接觸面的切應力;L—兩接觸表面之間的滑動距離;E—復合材料彈性模量;Kp—塑性接觸磨損系數;D—表面輪廓分形維數[8]。
以同步環磨損量最少作為目標函數,兩摩擦錐面的接觸面積:

同步時間是指從鎖環與錐面接觸產生摩擦力矩到同步器輸出端與輸入端的角速度相等。同步時間公式為:

式中:J—離合器從動盤第一、二兩軸的轉動慣量,we—發動機轉子的角速度,ik,ik+1—變速器第k和k+1檔的傳動比,u—摩擦錐面間摩擦因數,F—摩擦錐面上的軸向力[9]。R—同步環摩擦錐面的平均半徑:

當鎖環材料為特種黃銅時,同步器壽命的目標函數為:

式中:ΔSm—后備余量;h*—鎖環的磨損深度率;tE—同步時間。

圖4 同步器磨損關系圖Fig.4 Synchronizer Wear Relationship Diagram
選取以下4個參數為設計變量:摩擦錐面的錐角α、摩擦錐面的平均半徑R1、鎖環鎖止面平均半徑R2、摩擦錐面寬度L。

則約束條件為:
(1)避免摩擦錐面的自鎖:tanα>μ
(2)摩擦錐面大端半徑取值范圍,小端取值范圍:
31≤R1≤35;36≤R2≤48
(3)摩擦錐面平均半徑R與錐面工作寬度L之比為:


表2 同步器優化模型部分參數[12]Tab.2 Synchronizer Optimization Model Partial Parameters
設置種群的規模為30,進化200次,Pm為0.2,Pc為0.8,自適應的(Pm/Pc)max=0.8,(Pm/Pc)min=0.2。
優化目標為同步器壽命N的最大值。由圖可知競標賽式、競標賽自適應、改進及改進自適應遺傳算法都要明顯優于標準賭盤式遺傳算法。而競標賽自適應、改進及改進自適應遺傳算法則略優于競標賽式遺傳算法。同時改進和改進自適應的收斂速度略快于,競標賽和競標賽自適應。

圖5 在同步器應用中的對比Fig.5 Comparison in the Synchronizer Application
為了進一步觀察競標賽式、競標賽自適應、改進及改進自適應遺傳算法優化結果的優劣,統計這四種算法在100次最優化結果中的最優值、下限值、與平均值。
結果的變化區間較大,且競標賽自適應(AGA)、改進(IGA)及改進自適應(IAGA)遺傳算法都要優于競標賽式遺傳算法。所以matlab畫圖時,將三種算法得到的值減去競標賽式遺傳算法所得的值。
從圖6可知,在運算100次過程中,上限排序為:改進自適應式遺傳算法>自適應式遺傳算法>改進的遺傳算法,下限排序為:改進自適應式遺傳算法>改進的遺傳算法>自適應式遺傳算法,平均值排序為:改進自適應式遺傳算法>自適應式遺傳算法>改進的遺傳算法。

圖6 三種算法對比圖Fig.6 Comparison of the Three Algorithms
由此,我們可以得出兩個結論。第一,在使算法只有選擇策略不同的情況下,改進的雙選擇因素式選擇策略要優于競標賽式選擇策略和賭盤式選擇策略。第二,該選擇策略具有魯棒性,可以與其他改進的遺傳算法結合,形成更加強大的遺傳算法。
適應度函數的選取直接影響遺傳算法的收斂速度以及能否找到最優解。針對遺傳算法適應度函數的不足,設計了結合染色體差異的適應度函數。并將該適應度函數應用于算法的選擇過程,得到了改進的遺傳算法。探究了其兩個影響因素Pt、u在單模態、多模態,高緯度、低緯度情況下的影響效果。將改進算法測試后發現在函數優化問題上的收斂性能和脫離局部最優解方面都有一定的提高。
由實驗結果得出的主要結論如下:
(1)Pt和u對算法的收斂速度和物種多樣性起到了調節作用。通過對Pt,u值的調整,可使算法在單模態情況下收斂速度更快;在多模態情況下物種多樣性更充足,避免“早熟”現象。
(2)通過與一般的兩種遺傳算法的對比,我們知道該選擇策略要比直接選用目標函數作為選擇標準要優秀的多。尤其是在變量范圍比較大的情況下有明顯提升,減少了搜索到最優解的迭代次數,而且穩定性更好。
(3)將該遺傳算法應用于一個實際問題——同步器的優化。證明該選擇策略不僅有效且具有良好的適應性,可以與其他改進策略想結合(比如文中結合自適應遺傳算法)。