余賢星
(上海理工大學(xué)機(jī)械工程學(xué)院,上海 200093)
yvxianxing@163.com
鯨魚優(yōu)化算法的優(yōu)越性有目共睹,因此該算法在優(yōu)化問題上應(yīng)用廣泛。但其存在收斂速度慢、收斂精度低、搜索能力不足的缺點,各種改進(jìn)的鯨魚算法應(yīng)運而生。其中改進(jìn)方式有將兩種算法的優(yōu)勢結(jié)合而成,也有通過其他策略。ZHANG等提出了一種基于聚集策略的混合鯨魚優(yōu)化算法,將鯨魚優(yōu)化算法和灰狼優(yōu)化算法優(yōu)勢結(jié)合。林杰等提出了一種基于混沌的正余弦鯨魚優(yōu)化算法,加快了算法的收斂速度,避免了早熟,平衡了搜索與開發(fā)。郭啟程等提出了一種基于萊維飛行的鯨魚優(yōu)化算法,用于解決無人機(jī)三維路徑規(guī)劃問題。董明明等為了解決現(xiàn)有輥道窯窯溫異常檢測存在的各種問題,提出了一種采用自適應(yīng)反向?qū)W習(xí)策略和高斯變異算子的改進(jìn)鯨魚優(yōu)化算法。劉紫娟等提出了一種改進(jìn)的離散鯨魚優(yōu)化算法,用于應(yīng)對復(fù)雜網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)的應(yīng)用場景。朱誠提出了一種引用雙非線性收斂因子和強(qiáng)制驅(qū)散機(jī)制改進(jìn)的鯨魚優(yōu)化算法,能夠有效簡化路徑復(fù)雜度、降低機(jī)器人控制難度。
本文提出了一種改進(jìn)的多領(lǐng)導(dǎo)鯨魚優(yōu)化算法,該算法引入了多領(lǐng)導(dǎo)機(jī)制和萊維飛行機(jī)制。多領(lǐng)導(dǎo)機(jī)制是將初始種群均分為四個小種群,每個種群根據(jù)各自種群的最優(yōu)位置進(jìn)行迭代更新。每10 次迭代進(jìn)行一次種群重組,有利于提高種群的多樣性,避免整個搜索過程陷入局部最優(yōu)。萊維飛行機(jī)制是將每代的最優(yōu)位置進(jìn)行隨機(jī)擾動,有利于加快收斂,避免陷入局部最優(yōu)。通過標(biāo)準(zhǔn)方程和現(xiàn)實生活問題進(jìn)行驗證,表明了該算法的優(yōu)越性。
座頭鯨能夠感知獵物的位置并發(fā)動攻擊。在一個最優(yōu)位置不確定的搜索空間里,假設(shè)所有座頭鯨的最佳位置就是最優(yōu)或者在最優(yōu)位置旁邊。那么一旦確定最優(yōu)的座頭鯨位置,其他鯨魚就會根據(jù)最優(yōu)更新。更新公式如下:
座頭鯨沿著曲率半徑越來越小的螺旋線路徑向上游動,通過吐泡泡的方式,形成一堵氣墻,將獵物圍在一起最后捕殺。泡泡網(wǎng)攻擊模型中包含兩種方式:一種是收縮環(huán)繞,通過遞減的值,影響的范圍;另一種是螺旋更新,位置更新公式如下:
由于兩種更新方式同時發(fā)生,因此添加一個概率數(shù),來決定具體使用哪一種更新方式。
收縮環(huán)繞更新中,目標(biāo)鯨魚可能是最優(yōu)位置鯨魚,這就是進(jìn)行開發(fā)階段;也可能是其他任意鯨魚,這就是搜索階段。當(dāng)進(jìn)行到搜索階段時,鯨魚位置更新公式如下:
該算法中引入多領(lǐng)導(dǎo)機(jī)制是為了提高種群的多樣性,避免搜索個體陷入局部最優(yōu)。如圖1所示,初始化一個種群,將其均分為4 個小種群,每個種群對應(yīng)各自的最優(yōu)個體位置,每次迭代都根據(jù)各自種群的最優(yōu)位置進(jìn)行更新。每10 次迭代結(jié)束,就會進(jìn)行一次種群間的信息交流,就是將各種群內(nèi)的個體進(jìn)行一次打亂重組,有利于擴(kuò)大搜索范圍,避免陷入局部最優(yōu)。
圖1 多種群機(jī)制Fig.1 Multi-population mechanism
該算法引入了萊維飛行機(jī)制,為了將最優(yōu)位置進(jìn)行隨機(jī)擾動,加快收斂速度,避免陷入局部最優(yōu)。更新公式如下:
其中,Γ 是Gamma函數(shù)。
算法IWOA偽代碼如下所示。
CEC2014標(biāo)準(zhǔn)函數(shù)是測試算法性能的重要實例。從中選取6 個標(biāo)準(zhǔn)函數(shù),詳見表1,其中、、是單峰函數(shù),、、是多峰函數(shù)。單峰函數(shù)只有一個全局最優(yōu)解而沒有局部最優(yōu)解,用來測試算法的開發(fā)性能,得到的最優(yōu)解精度越高,表明算法具有更優(yōu)的開發(fā)性能。多峰函數(shù)只有一個全局最優(yōu)解卻含有多個局部最優(yōu)解,而且隨著函數(shù)維度升高,優(yōu)化復(fù)雜度越高,用來測試算法的搜索能力和開發(fā)能力。對于搜索能力不足的算法,在優(yōu)化多峰函數(shù)時容易陷入局部最優(yōu)。將該算法與其他先進(jìn)的算法比較,其中包括粒子群算法(PSO)、灰狼優(yōu)化算法(GWO)、鯨魚優(yōu)化算法(WOA)、混合鯨魚灰狼優(yōu)化算法(HWOAG)、提升的鯨魚優(yōu)化算法(WOAmM)。對于這些算法中的參數(shù)設(shè)置,詳見表2。
表1 6 個標(biāo)準(zhǔn)函數(shù)Tab.1 Six benchmark functions
表2 算法參數(shù)Tab.2 Algorithms parameters
將所有的算法在32 個個體、500 次迭代次數(shù)、30 次運行次數(shù)的情況下,對30 維的標(biāo)準(zhǔn)函數(shù)進(jìn)行測試,統(tǒng)計最優(yōu)解的平均值和標(biāo)準(zhǔn)方差。平均值能夠直觀展示算法的效果,而標(biāo)準(zhǔn)方差能夠判斷算法的穩(wěn)定性。優(yōu)化結(jié)果對比詳見表3。
表3 6 個函數(shù)的對比結(jié)果(32 個個體,30 維)Tab.3 Comparison results of 6 benchmark functions(N=32,D=30)
從統(tǒng)計數(shù)據(jù)可以看出,在6 個測試函數(shù)中,相比于其他5個算法,該算法的優(yōu)化結(jié)果最小。從平均值可以看出,該算法相比于其他幾個算法,收斂精度更高,而且在上取得了最小值0。從標(biāo)準(zhǔn)方差可以看出,該算法具有高穩(wěn)定性。
收斂性是算法的一個重要衡量標(biāo)準(zhǔn),收斂速度越快,算法效率越高。如圖2所示,對于單峰函數(shù),所有算法都能快速收斂,相比于其他幾個算法,該算法具有很強(qiáng)的后期開發(fā)能力,最優(yōu)解的精度高。對于多峰函數(shù),該算法在迭代前期收斂比較慢,大部分個體用于搜索,接著就會有一個加速收斂的過程,算法對可能性大的區(qū)域進(jìn)行搜索,這時候算法已經(jīng)確定了最優(yōu)解的大概位置,因此搜索個體會在最優(yōu)位置周圍進(jìn)行開發(fā),最后收斂曲線放緩。而其他算法剛開始就快速收斂,當(dāng)進(jìn)行到搜索中后期的時候,最優(yōu)解一直不變,停滯不前,此時算法已經(jīng)陷入局部最優(yōu)。其他算法開發(fā)能力不強(qiáng),即使找到可能性大的區(qū)域,得到的最優(yōu)解精度也不夠。如圖3所示,箱線圖也表明了算法的求解精度高而且穩(wěn)定。
圖2 不同函數(shù)收斂曲線圖Fig.2 Convergence line graphs of different functions
圖3 不同函數(shù)箱線圖Fig.3 Boxplots of different functions
現(xiàn)實生活中有許多經(jīng)典的多變量工程問題,被許多學(xué)者作為優(yōu)化算法的測試實例。本文選取了三個約束問題,通過改進(jìn)的多領(lǐng)導(dǎo)鯨魚優(yōu)化算法進(jìn)行優(yōu)化,并與其他算法進(jìn)行比較,其中部分優(yōu)化結(jié)果來源于提升的鯨魚優(yōu)化算法。以下是這三個問題的描述。
懸臂梁由五個等厚的空心方塊組成。梁在第一塊上有剛性支撐,在第五塊的自由端有一個垂直力作用。懸臂梁結(jié)構(gòu)示意圖如圖4所示。這個問題需要最小化懸臂梁的重量,并且滿足開口端垂直位移上限的約束要求。、、、、(mm)分別表示五個空心方塊的長度。目標(biāo)方程、約束條件和變量范圍如下。
圖4 懸臂梁結(jié)構(gòu)示意圖Fig.4 Cantilever beam structure figure
目標(biāo)函數(shù):
從表4中可以得出,在懸臂梁的設(shè)計問題中,該算法得到了最小值1.3365。相比于其他算法,值都略優(yōu)。從結(jié)果可以看出,該算法的求解精度高,在最優(yōu)值周圍區(qū)域,開發(fā)精度很高。雖然其他算法也得到了近似值,但由于其他算法精度不高,因此略顯劣勢。
表4 懸臂梁設(shè)計問題的結(jié)果對比Tab.4 Comparison of results on cantilever beam design problem
如圖5所示的三桿結(jié)構(gòu)和受力情況下,在滿足彎曲、撓度、應(yīng)力時最小化三桿桁架的體積,這個問題就是通過兩個變量、(cm)調(diào)整橫截面積。目標(biāo)方程、約束條件和變量范圍如下。
圖5 三桿桁架結(jié)構(gòu)和受力示意圖Fig.5 Three-bar truss structure and force figure
從表5中可以看出,所有算法都得到了相同值,除了Ray&Sain,因此,在這個具有兩個變量的問題中,所有算法都到了最優(yōu)值。說明了該算法在提升搜索能力的同時,也具有很強(qiáng)的開發(fā)能力。
表5 三桿桁架設(shè)計問題的結(jié)果對比Tab.5 Comparison of results on the three-bar truss design problem
這是一個具有四個變量的機(jī)械設(shè)計問題,目標(biāo)是確定變量的值,以便使用最低成本能每天傳輸1億立方米的天然氣系統(tǒng)。其中一個變量是壓縮機(jī)站的距離(m),第二個是壓縮機(jī)的效率,第三個是管道的直徑(cm),第四個是管道的速率(m/s)。目標(biāo)方程、約束條件和變量范圍如下。
從表6中可以看出,該算法得到了最小值,且遠(yuǎn)優(yōu)于其他算法。該算法在搜索能力上有很大的提升,能避免陷入局部最優(yōu),很大提升了算法的優(yōu)越性。其他算法都得到了近似值,說明其他算法陷入了局部最優(yōu)解。而改進(jìn)的多領(lǐng)導(dǎo)算法,因為萊維飛行和多領(lǐng)導(dǎo)機(jī)制,直接使算法跳出局部最優(yōu),向更優(yōu)區(qū)域進(jìn)行搜索開發(fā)。
表6 輸氣壓縮機(jī)設(shè)計問題的結(jié)果對比Tab.6 Comparison of results on gas transmission compressor design problem
本文提出了一種改進(jìn)的多領(lǐng)導(dǎo)鯨魚優(yōu)化算法。該算法引入了多領(lǐng)導(dǎo)機(jī)制,有利于提高種群的多樣性,防止陷入局部最優(yōu);引入萊維飛行機(jī)制,將最優(yōu)個體進(jìn)行隨機(jī)擾動,加快收斂速度,防止陷入局部最優(yōu)。通過6 個標(biāo)準(zhǔn)函數(shù)進(jìn)行測試,從平均值和標(biāo)準(zhǔn)方差可以看出,該算法在收斂精度和穩(wěn)定性上,相比于其他算法有很大優(yōu)越性。從收斂圖可以看出,該算法收斂速度快,收斂精度高。同樣在箱線圖中可以看出,該算法準(zhǔn)確性高,無論是單峰函數(shù)還是多峰函數(shù),都能準(zhǔn)確判斷最優(yōu)位置區(qū)域,并在最優(yōu)位置周圍開發(fā)。通過三個工程優(yōu)化實例進(jìn)行驗證,該算法都能得到最優(yōu)值。后續(xù)可以將該算法運用到其他機(jī)械設(shè)計問題中。