童曉斌,范平清,劉天宏,李 聰
(上海工程技術(shù)大學(xué)機(jī)械與汽車工程學(xué)院,上海201620)
為了解決現(xiàn)實(shí)中的優(yōu)化問題,經(jīng)常需要使用各種現(xiàn)代智能算法如:遺傳算法(GA),差分算法(DE),模擬退火算法(SA),粒子群算法(PSO)等。其中,遺傳算法在工程和科學(xué)應(yīng)用中頻繁的作為一種搜索和優(yōu)化工具[1-2-3]。
遺傳算法的主要問題是早熟算法和收斂速度較慢。同步器零部件的設(shè)計(jì)需要很高的精度。而一般的遺傳算法很難達(dá)到這樣的精度。收斂到全局最優(yōu)解需要大量的遺傳代數(shù)、種群數(shù)和計(jì)算時(shí)間。影響遺傳算法(GA)搜索效率的主要因素有兩個(gè):種群多樣性和選擇壓力。如果選擇壓力不足,會(huì)產(chǎn)生很多無效搜索,搜索空間中優(yōu)秀的區(qū)域不會(huì)優(yōu)先搜索。種群多樣性對(duì)于遺傳算法的全局搜索能力至關(guān)重要。
選擇壓力與種群多樣性呈負(fù)相關(guān)。選擇壓力的增加導(dǎo)致種群多樣性的損失更快,而保持種群多樣性抵消了選擇壓力增加的影響??刂七@兩個(gè)因素,使其同時(shí)達(dá)到較好的值,能使算法更加有效。
為了使兩者兼顧,人們嘗試從不同的角度去改善遺傳算法—編碼策略、選擇策略、交叉策略,變異策略。
該改進(jìn)遺傳算法,通過結(jié)合目標(biāo)函數(shù)值與它們和當(dāng)前最優(yōu)染色體之間的差異,得到一個(gè)新的適應(yīng)度函數(shù)。在該基礎(chǔ)上使用競標(biāo)賽的方式進(jìn)行選擇操作,使與當(dāng)前最優(yōu)染色體差異較大的染色體得到更高的錄取機(jī)會(huì),保證了種群的多樣性,減少了陷入局部優(yōu)值的概率。
論文的內(nèi)容安排如下。在第二節(jié)中,我們將詳細(xì)描述如何改進(jìn)選擇策略。在第三節(jié)中,我們研究了兩個(gè)重要常量對(duì)改進(jìn)遺傳算法結(jié)果的影響。在第四節(jié)中,改進(jìn)算法與另外兩種遺傳算法進(jìn)行了比較(只有選擇策略不同)。在第五節(jié)中,將該算法應(yīng)用于實(shí)際情況,并證明了其實(shí)用性。最后,得出一些結(jié)論。
遺傳算法傳統(tǒng)的選擇策略使用輪盤賭策略和錦標(biāo)賽策略。這兩種選擇策略都會(huì)大量復(fù)制適應(yīng)度值較高的個(gè)體。在較優(yōu)解越來越多后,會(huì)直接控制算法的優(yōu)化方向,使算法陷入局部最優(yōu)解。在這兩種選擇策略中,適應(yīng)度函數(shù)等價(jià)于目標(biāo)函數(shù),沒有照顧到目標(biāo)函數(shù)值的變化趨勢(shì),導(dǎo)致遺傳過程中的染色體在一個(gè)時(shí)期內(nèi)雖然有較優(yōu)的目標(biāo)數(shù)值,但可能都是在較平坦的區(qū)域內(nèi)徘徊。經(jīng)多代遺傳后,目標(biāo)函數(shù)值依舊無法擺脫局部最優(yōu)值的陷阱,從而導(dǎo)致“早熟”現(xiàn)象[4]。
文獻(xiàn)[5]中把Hamming距離引入二進(jìn)制遺傳算法,使算法得到了一定的提升。該方法以兩個(gè)體染色體中不同字符的數(shù)量為兩個(gè)染色體的Hamming距離。距離越大,則兩個(gè)染色體體間所包含的不相同模的數(shù)量就越多,種群中的模式也越多,兩個(gè)個(gè)體所對(duì)應(yīng)的參數(shù)差別也越大。然而,該算法依舊有一定的不足之處。第一,二進(jìn)制遺傳算法的表現(xiàn)不直觀。相比于十進(jìn)制,表達(dá)相同大小、精度的數(shù)字需要更長的染色體。其次,不相同字符在基因中所處位置不同時(shí),影響效果大不相同。當(dāng)兩條染色體的不同位發(fā)生在較低位時(shí),即使海明距離較大,但實(shí)際兩條染色體之間的差異并不大。反之,當(dāng)兩條染色體的不同位發(fā)生在較高位上時(shí),即使海明距離較小,但實(shí)際上兩條染色體的差異卻很大。最后,該算法僅適用于多模態(tài)函數(shù)。若使用在單模態(tài)函數(shù)中,僅僅會(huì)增加無用的計(jì)算。即該算法的魯棒性不強(qiáng)。
該的改進(jìn)遺傳算法以十進(jìn)制進(jìn)行編碼,能直觀反映不同染色體之間的差異大小。該算法需要考慮染色體目標(biāo)函數(shù)值之間的差異和染色體位置的差異,所以當(dāng)算法進(jìn)入選擇操作,先使當(dāng)代每條染色體的適應(yīng)度值比上當(dāng)代最優(yōu)染色體的值即:
式中:fi—當(dāng)代每條染色體的目標(biāo)函數(shù)值。fbest—當(dāng)代最優(yōu)染色體的目標(biāo)函數(shù)值。由于fbest不可為0,所以當(dāng)fbest=0時(shí),令fbest=1,即當(dāng)最優(yōu)染色體的目標(biāo)函數(shù)值為0時(shí),BL的值就是每條染色體自身的目標(biāo)函數(shù)值。
第二步求出當(dāng)代每條染色體與當(dāng)代最優(yōu)染色體的差異大小,并做歸一化處理得到每條染色體與當(dāng)前最優(yōu)染色體之間的位置差異:
式中:dij—當(dāng)代第i條染色體上第j個(gè)基因的值。dbestj—當(dāng)代最優(yōu)染色體上的第j個(gè)基因的值。Dj—第j個(gè)基因的區(qū)間長度。m—染色體上的基因數(shù)。
第三步求出目標(biāo)函數(shù)值差異與位置差異的比值BZ:
u—常數(shù)。當(dāng)一個(gè)次好的染色體若與最優(yōu)染色體很近,則其BZ的值將較大,則其被選中的幾率較小。當(dāng)r=0時(shí),即該染色體與最優(yōu)染色體是基因完全相同的染色體。此時(shí),BZ—無窮大,若是求最小值問題,則與最優(yōu)染色體相同的染色體沒有被選中的機(jī)會(huì),若是求最大值問題,則必會(huì)被選中。所以,r=0時(shí),令r=Pt。通過Pt可以自由控制當(dāng)前最優(yōu)染色體進(jìn)入子代的機(jī)會(huì)。
錦標(biāo)賽選擇策略可以通用于最大化問題和最小化問題,不像輪盤賭選擇策略,在求解最小化問題的時(shí)候還需要將適應(yīng)度值進(jìn)行轉(zhuǎn)換且競標(biāo)賽選擇策略的求解精度和收斂速度要優(yōu)于賭盤選擇策略[6]。然而,經(jīng)過多代選擇之后,競標(biāo)賽選擇策略容易造成局部最優(yōu)。改進(jìn)適應(yīng)度后,即使子代中存在較多相同的染色體,也可以通過Pt和u控制其再次進(jìn)入子代的機(jī)會(huì),能很好的克服錦標(biāo)賽選擇策略的缺點(diǎn)。所以,得出適應(yīng)度函數(shù)的之后,選用競標(biāo)賽策略控制染色體的淘汰。
該算法有兩個(gè)重要的影響因子:r的指數(shù)u,以及當(dāng)出現(xiàn)與最優(yōu)染色體相同的染色時(shí),r的取值Pt。Pt的值越大,當(dāng)前最優(yōu)染色體的適應(yīng)度函數(shù)就越小,則最優(yōu)染色體被選中的概率越小。這使算法的物種多樣性好,但收斂速度慢。該情況下要想得到較好的解需要較大的遺傳代數(shù)。反之,當(dāng)Pt的值越小時(shí),當(dāng)前最優(yōu)染色體被選中的概率越大。該情況下,算法收斂性較強(qiáng),但容易陷入局部最優(yōu)解。u為r的權(quán)重,能縮小或放大r的影響。在低緯度情況下r是一個(gè)小于1的數(shù),則u的值小,r的影響被擴(kuò)大。在高緯度情況下,r是一個(gè)大于1的數(shù),則u的值大,r的影響被擴(kuò)大。
為了探究這兩個(gè)影響因子的影響,引入以下兩個(gè)函數(shù),分別從單模態(tài)與多模態(tài)和高緯度與低緯度的角度去實(shí)驗(yàn)。
表1 對(duì)比試驗(yàn)所用函數(shù)Tab.1 Functions Used in Comparative Experiments
對(duì)Pt進(jìn)行測(cè)試時(shí),Pt分別取5e-5、0.05、0.5、50,u取2。當(dāng)對(duì)u進(jìn)行測(cè)試時(shí),u分別取0.02、0.2、2、20,Pt取0.05,對(duì)每一種取值試驗(yàn)算法100次,得出其目標(biāo)函數(shù)值變化對(duì)比圖和其尋到的最優(yōu)值與最差值。
Rosenbrock函數(shù)是一個(gè)經(jīng)典的優(yōu)化問題,它的全局最優(yōu)點(diǎn)位于一個(gè)平滑、狹長的拋物線形山谷內(nèi).由于函數(shù)僅僅為優(yōu)化算法提供了少量信息,使算法很難辨別搜索方向,找到全局最小點(diǎn)的機(jī)會(huì)微乎其微,因此Rosenbrock函數(shù)通常用來評(píng)價(jià)優(yōu)化算法的執(zhí)行效率[7]。
由于變量變化區(qū)間較大,為了方便觀察,一部分圖片的縱坐標(biāo)取的是目標(biāo)函數(shù)值經(jīng)過對(duì)數(shù)變換的結(jié)果。(a)、(b)為低、高緯度情況下pt對(duì)算法的影響。(c)、(d)為低、高緯度情況下u對(duì)算法的影響。所有的橫坐標(biāo)都是算法的試驗(yàn)次數(shù)。(a)、(b)、(d)的縱坐標(biāo)為經(jīng)過對(duì)數(shù)變換的優(yōu)化結(jié)果。(c)的縱坐標(biāo)為未處理的優(yōu)化結(jié)果,如圖1所示。
圖1 單模態(tài)時(shí)示意圖Fig.1 Schematic diagram of single mode
在Pt較小時(shí),最優(yōu)解的波動(dòng)很大,說明算法經(jīng)常陷入局部最優(yōu)值。Pt的值較大時(shí),(因?yàn)闇y(cè)試時(shí),進(jìn)化代數(shù)是一樣的)最優(yōu)解比較穩(wěn)定,但其最好的解不如Pt取較小值時(shí)候的最優(yōu)解。然而,在高緯度情況下,Pt的值大于一定值時(shí)算法得到結(jié)果不但波動(dòng)大且總是無法得到較好的解。對(duì)比以上試驗(yàn)結(jié)果可知,單模態(tài)情況下,Pt對(duì)算法結(jié)果的影響基本符合理論推測(cè)。雖然Pt較小時(shí)優(yōu)化結(jié)果存在較大差異,但是還是要優(yōu)于Pt值較大的時(shí)候??偟膩碚fPt取較小值比Pt取較大值好。u的值越大則算法的結(jié)果越穩(wěn)定。然而對(duì)比其最優(yōu)解的上限與下限卻發(fā)現(xiàn)當(dāng)u=2時(shí)得到的結(jié)果最好。在高緯度情況,我們感覺不到u對(duì)算法穩(wěn)定性的影響,但可以發(fā)現(xiàn)u取較小值時(shí)算法得到的結(jié)果較好。在低緯度情況下,r<1,即u越大,r的影響越大。在高緯度情況下,r>1,即u越小,r的影響越小。因此,初步得出結(jié)論,在高緯度情況下要減小r的影響,即減小染色體間差異的影響。而低緯度時(shí),要在符合某個(gè)上限的情況下,擴(kuò)大染色體間差異的影響
Rastrigrin函數(shù)是用來測(cè)試算法全局搜索性能典型函數(shù),具有廣泛的搜索空間、大量的局部極小點(diǎn)和高大的障礙物,通常被認(rèn)為是遺傳算法很難處理的復(fù)雜多模態(tài)問題[7]。(a)、(b)為低、高緯度下pt對(duì)算法的影響。(c)、(d)為低、高緯度下u對(duì)算法的影響。所有的橫坐標(biāo)都是算法的試驗(yàn)次數(shù),縱坐標(biāo)為經(jīng)過對(duì)數(shù)變換的優(yōu)化結(jié)果,如圖2所示。
圖2 多模態(tài)時(shí)示意圖Fig.2 Schematic diagram of multimodal
由圖多模態(tài)低緯度情況下,Pt對(duì)算法的影響與單模態(tài)情況相同。而在高緯度情況下,Pt=0.05時(shí),雖然100次中最優(yōu)結(jié)果要略次于Pt=5e-5,但從圖中發(fā)現(xiàn)其結(jié)果大部分要優(yōu)于Pt=5e-5.低緯度情況下,u=0.02時(shí)的優(yōu)化結(jié)果上限最好,但下限要略差于u=0.2.高緯度情況下,u=0.2時(shí)的優(yōu)化結(jié)果上限最好,但下限要略差于u=0.02。但這兩種u值所得算法結(jié)果從整體分析并無明顯優(yōu)劣??偟膩碚f,算法結(jié)果都是隨著u的增大而變差。
綜上所述,我們可以得出以下結(jié)論。無論是單模態(tài)還是多模態(tài),Pt對(duì)算法的影響都是相同的,僅受目標(biāo)函數(shù)變量數(shù)目的影響。而u影響效果還受單模態(tài)與多模態(tài)區(qū)別的影響。單模態(tài)低緯度時(shí),u要在符合某個(gè)上限的情況下取較大值;高緯度情況下u取較小的值更好。多模態(tài)情況下,無論是高緯度還是低緯度都要取較小的值。其次,Pt對(duì)算法的影響是單調(diào)的,都是在取較小值時(shí)得到較好的結(jié)果。而u的值對(duì)算法的影響并不是單調(diào)的,太大或太小都不好。
為了驗(yàn)證改進(jìn)算法收斂性和跳出局部最優(yōu)解的能力,設(shè)置了一組對(duì)比測(cè)試。由于只是為了證明該選擇策略的優(yōu)越性,所以只選擇標(biāo)準(zhǔn)遺傳算法(賭盤選擇式和競標(biāo)賽式)進(jìn)行選擇策略的比較。同樣使用上述兩個(gè)函數(shù)進(jìn)行對(duì)比。所有實(shí)驗(yàn)的種群規(guī)模均為30,每個(gè)函數(shù)獨(dú)立運(yùn)行100次,每次運(yùn)行2 000代。對(duì)于標(biāo)準(zhǔn)遺傳算法和改進(jìn)的遺傳算法Pc=0.8,Pm=0.2。(a)、(b)為單模態(tài)低(高)緯度情況下三種選擇策略的對(duì)比結(jié)果。(c)、(d)為多模態(tài)低(高)緯度情況下三種選擇策略的對(duì)比結(jié)果。所有的橫坐標(biāo)都是算法的試驗(yàn)次數(shù),(a)、(b)縱坐標(biāo)為未處理的優(yōu)化結(jié)果。(c)、(d)縱坐標(biāo)為經(jīng)過對(duì)數(shù)變換的優(yōu)化結(jié)果,如圖3所示。
圖3 模態(tài)示意圖Fig.3 Modal diagram
觀察可知,無論是高緯度還是低緯度,紅色帶星號(hào)的直線都在另外兩條直接之下。所以,改進(jìn)的選擇策略效果要比競標(biāo)賽式選擇策略和賭盤式選擇策略更強(qiáng)的跳出局部最優(yōu)值的能力。且改進(jìn)選擇策略的結(jié)果在上限、下限、穩(wěn)定性方面都要明顯優(yōu)于常用的競標(biāo)賽式選擇策略和賭盤式選擇策略。
縱坐標(biāo)的值越小優(yōu)化結(jié)果的值越接近0。明顯看出紅色帶星號(hào)直線在另外兩條曲線之下。即改進(jìn)的選擇策略效果要比競標(biāo)賽式選擇策略和賭盤式選擇策略的效果更好。因?yàn)閘og100沒有意義,所以代表改進(jìn)選擇策略的線有許多斷點(diǎn)。這意味著該算法達(dá)到了理論最優(yōu)值。
所以,改進(jìn)適應(yīng)度函數(shù)有很好適應(yīng)性。無論是單模態(tài)還是多模態(tài)、高緯度還是低緯度,該選擇策略都要優(yōu)于賭盤式選擇策略和競標(biāo)賽式選擇策略。
(1)假設(shè)同步器磨損過程發(fā)生在穩(wěn)定磨損階段。
(2)假設(shè)磨損過程中分形維數(shù)D保持不變。
(3)假設(shè)同步過程中換擋力保持不變。
查閱論文可得磨損深度率為
式中:Ar—真實(shí)接觸面積;Ke—彈性體摩擦磨損系數(shù);G—表面輪廓分形參數(shù);ψ—修正系數(shù);δ—接觸面的切應(yīng)力;L—兩接觸表面之間的滑動(dòng)距離;E—復(fù)合材料彈性模量;Kp—塑性接觸磨損系數(shù);D—表面輪廓分形維數(shù)[8]。
以同步環(huán)磨損量最少作為目標(biāo)函數(shù),兩摩擦錐面的接觸面積:
同步時(shí)間是指從鎖環(huán)與錐面接觸產(chǎn)生摩擦力矩到同步器輸出端與輸入端的角速度相等。同步時(shí)間公式為:
式中:J—離合器從動(dòng)盤第一、二兩軸的轉(zhuǎn)動(dòng)慣量,we—發(fā)動(dòng)機(jī)轉(zhuǎn)子的角速度,ik,ik+1—變速器第k和k+1檔的傳動(dòng)比,u—摩擦錐面間摩擦因數(shù),F(xiàn)—摩擦錐面上的軸向力[9]。R—同步環(huán)摩擦錐面的平均半徑:
當(dāng)鎖環(huán)材料為特種黃銅時(shí),同步器壽命的目標(biāo)函數(shù)為:
式中:ΔSm—后備余量;h*—鎖環(huán)的磨損深度率;tE—同步時(shí)間。
圖4 同步器磨損關(guān)系圖Fig.4 Synchronizer Wear Relationship Diagram
選取以下4個(gè)參數(shù)為設(shè)計(jì)變量:摩擦錐面的錐角α、摩擦錐面的平均半徑R1、鎖環(huán)鎖止面平均半徑R2、摩擦錐面寬度L。
則約束條件為:
(1)避免摩擦錐面的自鎖:tanα>μ
(2)摩擦錐面大端半徑取值范圍,小端取值范圍:
31≤R1≤35;36≤R2≤48
(3)摩擦錐面平均半徑R與錐面工作寬度L之比為:
表2 同步器優(yōu)化模型部分參數(shù)[12]Tab.2 Synchronizer Optimization Model Partial Parameters
設(shè)置種群的規(guī)模為30,進(jìn)化200次,Pm為0.2,Pc為0.8,自適應(yīng)的(Pm/Pc)max=0.8,(Pm/Pc)min=0.2。
優(yōu)化目標(biāo)為同步器壽命N的最大值。由圖可知競標(biāo)賽式、競標(biāo)賽自適應(yīng)、改進(jìn)及改進(jìn)自適應(yīng)遺傳算法都要明顯優(yōu)于標(biāo)準(zhǔn)賭盤式遺傳算法。而競標(biāo)賽自適應(yīng)、改進(jìn)及改進(jìn)自適應(yīng)遺傳算法則略優(yōu)于競標(biāo)賽式遺傳算法。同時(shí)改進(jìn)和改進(jìn)自適應(yīng)的收斂速度略快于,競標(biāo)賽和競標(biāo)賽自適應(yīng)。
圖5 在同步器應(yīng)用中的對(duì)比Fig.5 Comparison in the Synchronizer Application
為了進(jìn)一步觀察競標(biāo)賽式、競標(biāo)賽自適應(yīng)、改進(jìn)及改進(jìn)自適應(yīng)遺傳算法優(yōu)化結(jié)果的優(yōu)劣,統(tǒng)計(jì)這四種算法在100次最優(yōu)化結(jié)果中的最優(yōu)值、下限值、與平均值。
結(jié)果的變化區(qū)間較大,且競標(biāo)賽自適應(yīng)(AGA)、改進(jìn)(IGA)及改進(jìn)自適應(yīng)(IAGA)遺傳算法都要優(yōu)于競標(biāo)賽式遺傳算法。所以matlab畫圖時(shí),將三種算法得到的值減去競標(biāo)賽式遺傳算法所得的值。
從圖6可知,在運(yùn)算100次過程中,上限排序?yàn)椋焊倪M(jìn)自適應(yīng)式遺傳算法>自適應(yīng)式遺傳算法>改進(jìn)的遺傳算法,下限排序?yàn)椋焊倪M(jìn)自適應(yīng)式遺傳算法>改進(jìn)的遺傳算法>自適應(yīng)式遺傳算法,平均值排序?yàn)椋焊倪M(jìn)自適應(yīng)式遺傳算法>自適應(yīng)式遺傳算法>改進(jìn)的遺傳算法。
圖6 三種算法對(duì)比圖Fig.6 Comparison of the Three Algorithms
由此,我們可以得出兩個(gè)結(jié)論。第一,在使算法只有選擇策略不同的情況下,改進(jìn)的雙選擇因素式選擇策略要優(yōu)于競標(biāo)賽式選擇策略和賭盤式選擇策略。第二,該選擇策略具有魯棒性,可以與其他改進(jìn)的遺傳算法結(jié)合,形成更加強(qiáng)大的遺傳算法。
適應(yīng)度函數(shù)的選取直接影響遺傳算法的收斂速度以及能否找到最優(yōu)解。針對(duì)遺傳算法適應(yīng)度函數(shù)的不足,設(shè)計(jì)了結(jié)合染色體差異的適應(yīng)度函數(shù)。并將該適應(yīng)度函數(shù)應(yīng)用于算法的選擇過程,得到了改進(jìn)的遺傳算法。探究了其兩個(gè)影響因素Pt、u在單模態(tài)、多模態(tài),高緯度、低緯度情況下的影響效果。將改進(jìn)算法測(cè)試后發(fā)現(xiàn)在函數(shù)優(yōu)化問題上的收斂性能和脫離局部最優(yōu)解方面都有一定的提高。
由實(shí)驗(yàn)結(jié)果得出的主要結(jié)論如下:
(1)Pt和u對(duì)算法的收斂速度和物種多樣性起到了調(diào)節(jié)作用。通過對(duì)Pt,u值的調(diào)整,可使算法在單模態(tài)情況下收斂速度更快;在多模態(tài)情況下物種多樣性更充足,避免“早熟”現(xiàn)象。
(2)通過與一般的兩種遺傳算法的對(duì)比,我們知道該選擇策略要比直接選用目標(biāo)函數(shù)作為選擇標(biāo)準(zhǔn)要優(yōu)秀的多。尤其是在變量范圍比較大的情況下有明顯提升,減少了搜索到最優(yōu)解的迭代次數(shù),而且穩(wěn)定性更好。
(3)將該遺傳算法應(yīng)用于一個(gè)實(shí)際問題——同步器的優(yōu)化。證明該選擇策略不僅有效且具有良好的適應(yīng)性,可以與其他改進(jìn)策略想結(jié)合(比如文中結(jié)合自適應(yīng)遺傳算法)。