宋長新,馬 克
(1.上海城建職業(yè)學(xué)院 機(jī)電工程與信息學(xué)院,上海 201415;2.青海師范大學(xué) 檔案館,青海 西寧 810008)
智能群優(yōu)化算法被廣泛應(yīng)用于各類工程優(yōu)化問題[1-5]?;认x算法是S Saremi 等于2017年提出的一種新興群智能算法,該算法模擬蝗蟲群的遷移群體行為來對各類問題進(jìn)行優(yōu)化。該算法被應(yīng)用于工程實踐各領(lǐng)域,如文獻(xiàn)[6]利用基于蝗蟲優(yōu)化算法分布式模型控制方法對太陽能式無人機(jī)的協(xié)同目標(biāo)跟蹤軌跡進(jìn)行優(yōu)化。文獻(xiàn)[7]利用蝗蟲優(yōu)化算法對微電網(wǎng)進(jìn)行快速頻率控制。文獻(xiàn)[8]利用蝗蟲優(yōu)化算法對交換膜燃料電池特性進(jìn)行優(yōu)化,取得了良好的效果。文獻(xiàn)[9]利用蝗蟲算法對SAR 圖像進(jìn)行分割優(yōu)化,取得了較好的效果。
傳統(tǒng)的蝗蟲優(yōu)化算法與其他智能優(yōu)化算法相似,存在著容易陷入局部最優(yōu)值,特別是在多峰優(yōu)化問題時,容易陷入局部最優(yōu),過早收斂,無法獲得全局最優(yōu)值。
本文針對蝗蟲算法的不足,利用差分進(jìn)化算法對蝗蟲優(yōu)化算法進(jìn)行改進(jìn),提高種群多樣性,提高蝗蟲優(yōu)化算法跳出局部最優(yōu)值的能力,進(jìn)一步提升蝗蟲優(yōu)化算法的全局搜索能力。
蝗蟲算法是S Saremi 等于2017年提出的一種新興群智能算法[10-11],該算法模擬蝗蟲群的遷移群體行為,來對各類問題進(jìn)行優(yōu)化。蝗蟲算法的數(shù)學(xué)表達(dá)式如(1)所示,在蝗蟲算法中,蝗蟲算法的位置即為優(yōu)化問題的解,第i個蝗蟲的位置用Xi表示。
其中Si代表第i個蝗蟲的社會行為,Gi代表第i個蝗蟲的重力,Ai代表第i個蝗蟲受到的風(fēng)平流的作用。
其中蝗蟲的社會行為可以用如下表達(dá)式所示:
其中dij代表第i只蝗蟲到第j只蝗蟲的距離,即dij=|Xi-Xj|。s代表蝗蟲社會互動行為影響的函數(shù),如式(3)所示。代表第i只蝗蟲到第j只蝗蟲的單位向量,即。
蝗蟲的社會互動行為影響函數(shù)s如下式所示:
其中f代表吸引力,l代表吸引尺度。
蝗蟲在飛行式會受到重力的作用,重力G對蝗蟲的影響可以用如下式子表示:
其中g(shù)代表引力常數(shù)代表朝向地球中心的統(tǒng)一矢量。
蝗蟲在飛行時會受到風(fēng)的作用,風(fēng)平流A 對蝗蟲的影響可以用如下式子表示:
其中u代表恒定漂移,代表朝向風(fēng)的統(tǒng)一矢量。
于是將式(2),(3),(4),(5)代入式(1)可得:
將蝗蟲的邊界信息,即優(yōu)化問題的邊界信息包括上邊界ub和下邊界lb引入式(6)中,由于重力蝗蟲的影響非常小,省去重力的影響,并且假設(shè)風(fēng)平流是朝向目標(biāo)解()的,可得蝗蟲的位置更新方程為:
其中,參數(shù)c的更新表達(dá)式如下所示:
其中cmin代表最小值,cmax代表最大值,L代表最大迭代次數(shù),l代表當(dāng)前迭代次數(shù)。通常cmax的值為1,cmin的值為0.00001。
差分進(jìn)化算法是一種整體結(jié)構(gòu)類似與遺傳算法的優(yōu)化算法。該算法的主要思想是通過群體內(nèi)個體變異,再經(jīng)過交叉,選擇以達(dá)到對群體優(yōu)化的目的。該算法主要分為初始化,變異,交叉與選擇這幾個過程。
(1) 初始化一個種群,設(shè)種群的數(shù)量為N:X(t)={X1(t),X2(t),…,XN(t)};其中t表示迭代次數(shù)。
(2) 差分進(jìn)化的變異過程是差分進(jìn)化算法的關(guān)鍵,隨機(jī)從群體中選擇兩個不同的個體,進(jìn)行如下操作:
其中ij代表第i維第j個個體,m,n都是大于1 小于N且不相同的隨機(jī)整數(shù)。F 為0 到1 之間的縮放因子。Vij(t+1)是變異后的個體向量。
(3) 差分進(jìn)化算法的交叉操作如下:
其中CR為0到1之間的數(shù),叫做交叉概率。
(4) 差分進(jìn)化算法的選擇過程:
其中,f 為適應(yīng)度函數(shù),這里對應(yīng)最小化問題,從差分進(jìn)化的選擇過程中可以看到,差分進(jìn)化算法用適應(yīng)度值較低的結(jié)果代替原來的結(jié)果,即用變異后產(chǎn)生的更好的結(jié)果來代替之前較差的結(jié)果,起到了優(yōu)化選擇的作用,使整個種群向更加優(yōu)化的方向靠近。
本文在蝗蟲算法的基礎(chǔ)上引入差分進(jìn)化算法,將差分進(jìn)化算法的優(yōu)點融入蝗蟲算法中提出了一種基于差分進(jìn)化改進(jìn)的蝗蟲算法(DE-GOA)。在算法的搜索過程引進(jìn)差分進(jìn)化,增加種群的多樣性,提高算法的全局尋優(yōu)能力。在基本的蝗蟲算法搜索結(jié)束后,對蝗蟲種群進(jìn)行差分進(jìn)化操作,使得群體之間的信息共享性更好,同時使種群的多樣性增加。基于差分進(jìn)化改進(jìn)的蝗蟲算法具體流程如圖1所示。
圖1 基于差分進(jìn)化改進(jìn)的蝗蟲算法流程圖
主要步驟如下:
(1) 初始化蝗蟲種群數(shù)量,迭代次數(shù),cmin,cmax的值,權(quán)重系數(shù),交叉,變異概率等等。
(2) 計算各蝗蟲個體的適應(yīng)度值。
(3) 對蝗蟲個體的適應(yīng)度值進(jìn)行排序并記錄最優(yōu)位置。
(4) 利用式(7)對蝗蟲的位置進(jìn)行更新。
(5) 對蝗蟲個體進(jìn)行變異操作。
(6) 對蝗蟲個體進(jìn)行交叉操作。
(7) 對蝗蟲個體進(jìn)行選擇操作。
(8) 是否達(dá)到迭代結(jié)束條件,如果沒有則返回(2),否則停止迭代輸出最優(yōu)個體位置及適應(yīng)度值。
為了驗證本文的DE-GOA 算法的優(yōu)化效果和穩(wěn)定性。將本文算法與其他6 種優(yōu)化算法包括粒子群算法PSO[12],遺傳算法GA[13],蝙蝠算法BA[14],蝗蟲算法GOA,花授粉算法FPA[15],螢火蟲算法FA[16],在11 個標(biāo)準(zhǔn)測試函數(shù)上進(jìn)行尋優(yōu)求解,對算法性能進(jìn)行對比。為了保證實驗結(jié)果的可信性,各算法的種群數(shù)量均為30,最大迭代次數(shù)為500,對每個測試函數(shù)測試300次,取各數(shù)據(jù)的平均值進(jìn)行對比。
本文在Centrino 2 PC,2.3 Ghz,Matlab 2014a 環(huán)境中進(jìn)行實驗,各算法的參數(shù)設(shè)置如表1所示。各測試函數(shù)如表2所示。表3為各優(yōu)化算法的測試結(jié)果,測試結(jié)果主要包括平均誤差和標(biāo)準(zhǔn)差。平均誤差衡量算法的尋優(yōu)能力,標(biāo)準(zhǔn)差衡量算法的可重復(fù)性。
表1 各算法的參數(shù)設(shè)置
表2 測試函數(shù)信息
從表3的實驗結(jié)果來看,對于f1,f2,f3,f4,f5,f8,f10函數(shù),DE-GOA算法的平均誤差最小,次之為GOA算法,但是DE-GOA的誤差仍然比GOA算法的誤差小一個數(shù)量級,而其他算法的誤差相比DE-GOA算法的誤差相差比較大,其他5 種算法的誤差比DE-GOA 算法的誤差大幾個甚至幾十個數(shù)量級,表明DE-GOA算法的尋優(yōu)能力最好。從標(biāo)準(zhǔn)差來看,DE-GOA算法的標(biāo)準(zhǔn)差最小,GOA算法次之,其他5種算法的標(biāo)準(zhǔn)差均較大。表明DE-GOA算法的穩(wěn)定性更強(qiáng)。對于f6,f7 函數(shù),DE-GOA 算法與GOA算法均能取得較好的結(jié)果,并且相比其他5種算法,平均誤差和標(biāo)準(zhǔn)差值均最小,相比其他5種算法仍然具有明顯的優(yōu)勢。對于f9 函數(shù),雖然DE-GOA 算法與GOA算法的平均誤差一樣,但是DE-GOA算法的標(biāo)準(zhǔn)差仍然比GOA 算法的標(biāo)準(zhǔn)差小一個數(shù)量級,表明DE-GOA 算法相比GOA 算法在算法穩(wěn)定性上仍然有較大的提升。綜合來看,DE-GOA 算法由于引進(jìn)差分進(jìn)化,改善了GOA算法的尋優(yōu)能力,無論是算法的性能還是算法的穩(wěn)定性均得到了提高。
表3 實驗結(jié)果
本文成功的將差分進(jìn)化算法與蝗蟲優(yōu)化算法結(jié)合,提出了一種基于差分進(jìn)化改進(jìn)的蝗蟲優(yōu)化算法。該算法針對基本蝗蟲算法,容易陷入局部最優(yōu),收斂精度不高的缺點,將差分進(jìn)化引入蝗蟲算法中,增加了種群的多樣性,實驗結(jié)果表明本文提出的優(yōu)化算法相比基礎(chǔ)的蝗蟲算法能夠起到明顯地改進(jìn)的作用。并且相比其他5 種智能優(yōu)化算法無論是在精度還是穩(wěn)定性上均具有明顯的優(yōu)勢。