王 波,王 浩,杜曉昕,鄭曉東,周 薇
(齊齊哈爾大學(xué) 計(jì)算機(jī)與控制工程學(xué)院,黑龍江 齊齊哈爾 161006)
當(dāng)今連續(xù)和離散的優(yōu)化問(wèn)題日益復(fù)雜,傳統(tǒng)的數(shù)學(xué)方法無(wú)法為這類問(wèn)題提供最優(yōu)解。而元啟發(fā)式算法在面臨這類復(fù)雜問(wèn)題時(shí),體現(xiàn)出了高速、成本低、魯棒性強(qiáng)等優(yōu)點(diǎn)。因此近年來(lái)涌現(xiàn)出了許多新興的元啟發(fā)式優(yōu)化算法,如:遺傳算法[1]、模擬退火算法[2]、人工魚(yú)群算法[3]、布谷鳥(niǎo)搜索算法[4]、鯨魚(yú)優(yōu)化算法[5]等,為解決具有高維、非線性、多極值的復(fù)雜全局優(yōu)化問(wèn)題提供了有效的解決方案。蜻蜓算法(Dragonfly Algorithm,DA)[6]作為一種新型元啟發(fā)式優(yōu)化算法,一經(jīng)提出就受到了研究人員的廣泛關(guān)注。蜻蜓算法模擬了蜻蜓動(dòng)態(tài)飛行和靜態(tài)捕食的場(chǎng)景,分別對(duì)應(yīng)元啟發(fā)式算法的勘探和開(kāi)發(fā)階段,具有算法簡(jiǎn)單、參數(shù)少和收斂快等優(yōu)點(diǎn)。因此,蜻蜓算法被廣泛應(yīng)用于支持向量機(jī)[7]、神經(jīng)網(wǎng)絡(luò)[8]、極限學(xué)習(xí)機(jī)[9]、特征選擇[10]、工程設(shè)計(jì)[11]、圖像分割[12]等優(yōu)化問(wèn)題并取得了良好效果。
蜻蜓算法雖然有較高的全局勘探能力和較高的收斂速度,但是后期的靜態(tài)捕食機(jī)制導(dǎo)致它的收斂精度較低,易在迭代后期陷入局部最優(yōu)。因此為了改進(jìn)蜻蜓算法收斂精度低、易陷入局部最優(yōu)的缺陷,Scree Ranjini 等[13]提出一種新穎的基于記憶的混合蜻蜓算法(Memory based Hybrid Dragonfly Algorithm,MHDA),在DA 中引入了粒子群優(yōu)化(Particle Swarm Optimization,PSO),利用每個(gè)粒子歷史最優(yōu)的機(jī)制引導(dǎo)蜻蜓的尋優(yōu)過(guò)程,充分利用了DA 的全局勘探能力和粒子群的局部開(kāi)發(fā)能力,極大地提升了算法的尋優(yōu)能力。
Sayed 等[14]提出一種混沌蜻蜓算法(Chaotic Dragonfly Algorithm,CDA),將混沌優(yōu)化算法(Chaos Optimization Algorithm,COA)融入DA 中用于調(diào)控蜻蜓的五種群體行為,增加了蜻蜓算法跳出局部最優(yōu)的可能,提升了收斂精度,最后將CDA 應(yīng)用于數(shù)據(jù)的特征提取并通過(guò)實(shí)驗(yàn)驗(yàn)證了混沌蜻蜓算法的優(yōu)越性。Singh 等[15]針對(duì)蜻蜓算法在復(fù)雜的工程優(yōu)化問(wèn)題上存在的收斂精度低等缺點(diǎn),對(duì)蜻蜓算法的權(quán)重因子和萊維(Levy)飛行進(jìn)行了改進(jìn),并成功地將改進(jìn)的蜻蜓算法應(yīng)用于確定配電網(wǎng)絡(luò)中的最佳能源組合問(wèn)題。
為了平衡蜻蜓算法的開(kāi)發(fā)和勘探能力,Cui 等[16]提出了動(dòng)態(tài)集群因子來(lái)平衡全局和局部能力,并在位置更新機(jī)制中引入量子局部最優(yōu)和全局最優(yōu)來(lái)提升算法的開(kāi)發(fā)能力。為了解決蜻蜓算法容易陷入局部最優(yōu)以及收斂精度低的不足,張水平等[17]提出了一種基于隨機(jī)替換和混合變異的蜻蜓算法,通過(guò)隨機(jī)替換來(lái)提高初始解的質(zhì)量,利用混合變異來(lái)跳出局部最優(yōu),最終提高了算法精度。
綜上所述,蜻蜓算法存在收斂精度低、易陷入局部最優(yōu)、收斂慢等缺陷,主要原因在于,DA 對(duì)五種行為的參數(shù)高度敏感以及在Levy 飛行時(shí)未采取歷史經(jīng)驗(yàn)引導(dǎo)。為了解決上述問(wèn)題,本文提出一種基于亞群和差分進(jìn)化的混合蜻蜓算法(Hybrid Dragonfly Algorithm based on Subpopulation and Differential Evolution,HDASDE)。本文的主要工作如下:
1)使用混沌映射來(lái)生成初始種群來(lái)增加種群的多樣性。
2)對(duì)原始的蜻蜓算法和差分進(jìn)化(Differential Evolution,DE)算法進(jìn)行改進(jìn)以加強(qiáng)它們的勘探和開(kāi)發(fā)能力。
3)使用亞群策略將種群劃分為兩個(gè)亞群:一個(gè)亞群使用改進(jìn)的DA 提升算法的全局勘探能力;另一個(gè)亞群使用改進(jìn)的DE 算法來(lái)提升算法局部開(kāi)發(fā)能力。
4)提出亞群動(dòng)態(tài)變化機(jī)制,使HDASDE 在迭代的過(guò)程中逐漸由全局勘探轉(zhuǎn)變?yōu)榫植块_(kāi)發(fā)。
本章主要介紹了蜻蜓算法(DA)和差分進(jìn)化(DE)算法的基本原理并對(duì)它們的優(yōu)缺點(diǎn)進(jìn)行了分析。
蜻蜓算法(DA)[6]受到了理想狀態(tài)下蜻蜓的狩獵和遷徙的啟發(fā)。蜻蜓的狩獵行為是指一小群蜻蜓在小范圍內(nèi)尋找食物源,對(duì)應(yīng)仿生計(jì)算算法的開(kāi)發(fā)階段;蜻蜓的遷徙行為是指大量蜻蜓在一個(gè)方向上長(zhǎng)時(shí)間大跨度地飛行,對(duì)應(yīng)仿生計(jì)算算法的探索階段。蜻蜓的行為遵循分離、對(duì)齊、聚集、覓食和避敵的原則,因此蜻蜓群體中的個(gè)體位置更新主要依靠五個(gè)主要的因素。
1)分離(避免碰撞)的計(jì)算如式(1)所示:
其中:X表示當(dāng)前個(gè)體位置;Xj表示第j個(gè)相鄰個(gè)體的位置;N是相鄰個(gè)體的數(shù)量。
2)對(duì)齊(列隊(duì)飛行)的計(jì)算如式(2)所示:
其中,Vj表示第j個(gè)相鄰個(gè)體的飛行速度。
3)聚集行為的計(jì)算如式(3)所示:
4)覓食行為的計(jì)算如式(4)所示:
其中,X+表示食物源。
5)躲避天敵的計(jì)算如式(5)所示:
其中,X-表示敵人位置。
蜻蜓算法認(rèn)為蜻蜓的行為是這五種因素的結(jié)合,為了模擬蜻蜓的運(yùn)動(dòng),蜻蜓個(gè)體步長(zhǎng)更新如式(6)所示:
其中:s為分離權(quán)重;a為對(duì)齊權(quán)重;c為聚集權(quán)重;f為食物因子;e為天敵因子;w為慣性權(quán)重;t為迭代次數(shù)。
為了提高DA 的全局搜索能力和收斂精度,蜻蜓的位置更新有兩種方式:當(dāng)該個(gè)體周圍存在鄰近個(gè)體時(shí),采用式(7)進(jìn)行位置更新;否則采用式(8)的Levy 方式進(jìn)行位置更新。
其中:t是當(dāng)前迭代次數(shù);d是位置向量的維數(shù)。Levy 的計(jì)算如式(9)所示:
其中:r1和r2是[0,1]內(nèi)的d維隨機(jī)數(shù);β=1.5。σ的計(jì)算如式(10)所示:
飛行控制函數(shù)Γ()的計(jì)算如下所示:
Γ(1+β)=(β)!
差分進(jìn)化(DE)算法[18]是在遺傳進(jìn)化算法的基礎(chǔ)上提出的一種用于優(yōu)化非線性和不可微連續(xù)空間函數(shù)的啟發(fā)式優(yōu)化算法,具有開(kāi)發(fā)能力強(qiáng)、收斂快等優(yōu)點(diǎn)。DE 算法主要由變異、交叉、選擇三部分組成。
1)變異。當(dāng)種群進(jìn)化到第t代時(shí),對(duì)它的父代個(gè)體Xit進(jìn)行變異得到變異個(gè)體,過(guò)程如式(11)所示:
其中:s1、s2、s3 是隨機(jī)從群體中選擇的個(gè)體下標(biāo);F為縮放因子為差分向量。
2)交叉。通過(guò)交叉操作產(chǎn)生下一代個(gè)體:
其中,CR∈[0,1]為交叉率。
3)選擇。通過(guò)比較適應(yīng)度值的大小來(lái)選擇更合適的個(gè)體,作為下一代的個(gè)體。如式(13)所示:
針對(duì)蜻蜓算法易陷入局部收斂,收斂精度低等缺陷,本文提出了一種基于亞群和差分進(jìn)化的蜻蜓算法(HDASDE),從以下五方面對(duì)基本的蜻蜓算法進(jìn)行了優(yōu)化:1)使用混沌映射初始化種群,使初始化種群均勻分布,提高種群的多樣性。2)使用亞群策略混合差分進(jìn)化算法和蜻蜓算法,平衡算法的開(kāi)發(fā)和勘探能力。3)改進(jìn)蜻蜓五種行為的參數(shù)因子和Levy飛行來(lái)均衡蜻蜓算法的勘探和開(kāi)發(fā)能力。4)提出一種混沌躍遷機(jī)制來(lái)幫助蜻蜓算法跳出局部收斂。5)引入反向?qū)W習(xí)策略來(lái)提高算法的尋優(yōu)速度。通過(guò)這些優(yōu)化方式,充分利用了蜻蜓算法的全局勘探能力和差分進(jìn)化算法的開(kāi)發(fā)能力,從整體上提高了算法的優(yōu)化能力。
大量研究表明,初始化種群的質(zhì)量能影響群智能優(yōu)化算法的收斂速度和收斂精度。但是基本的蜻蜓算法通過(guò)隨機(jī)數(shù)生成初始化種群,會(huì)產(chǎn)生種群分布不均勻、多樣性低等不足。而混沌映射[19]對(duì)生成的隨機(jī)性序列初值敏感,具有遍歷性、隨機(jī)性和長(zhǎng)期不可預(yù)測(cè)性等優(yōu)點(diǎn)。因此為增強(qiáng)初始種群多樣性,本文使用混沌映射代替隨機(jī)數(shù)來(lái)進(jìn)行種群的初始化。常見(jiàn)的用于種群初始化的混沌映射主要有Logistics 映射[20]和Tent 混沌映射[21]。Logistics 映射作為一種典型的混沌映射,如式(14)所示;Tent 混沌映射又稱為帳篷映射,如式(15)所示。因?yàn)門ent 混沌映射具有更均勻的遍歷性,因此文本使用Tent 混沌映射生成初始種群。
其中,υ∈(0,1)。
亞群策略[22]是一種常用的算法優(yōu)化策略,它將種群劃分為多個(gè)亞群,每個(gè)亞群執(zhí)行不同區(qū)域的勘探和開(kāi)發(fā),能極大地增強(qiáng)算法的全局勘探能力。由沒(méi)有免費(fèi)的午餐定理[23]可知,在亞群策略增強(qiáng)了算法的全局勘探能力的同時(shí),算法也損失了一定的局部開(kāi)發(fā)能力。針對(duì)亞群策略的這一缺陷,本文提出一種動(dòng)態(tài)雙亞群策略,將整個(gè)種群按照適應(yīng)度排序,劃分為兩個(gè)亞群并且借助亞群結(jié)構(gòu)將DA(負(fù)責(zé)全局勘探)與DE 算法(負(fù)責(zé)局部開(kāi)發(fā))混合,充分利用兩種算法的優(yōu)勢(shì)。動(dòng)態(tài)雙亞群策略如圖1 所示。
圖1 動(dòng)態(tài)雙亞群策略示意圖Fig.1 Schematic diagram of dynamic double subpopulation strategy
從圖1 可以看出,動(dòng)態(tài)雙亞群策略一開(kāi)始就將種群劃分為兩個(gè)亞群,由于DE 亞群主要負(fù)責(zé)局部開(kāi)發(fā),因此將適應(yīng)度最好的前1/4 劃分為DE 亞群。在迭代的過(guò)程中,算法逐漸由全局勘探轉(zhuǎn)變?yōu)榫植块_(kāi)發(fā),所以亞群內(nèi)的個(gè)體數(shù)應(yīng)該是動(dòng)態(tài)變化的,亞群的個(gè)體數(shù)量由式(16)和式(17)決定。
其中:nDA向下取整;N為全部個(gè)體數(shù)量;T為最大迭代次數(shù);t為當(dāng)前迭代次數(shù)。
由基本的蜻蜓算法(DA)可知,DA 主要模仿了蜻蜓的五種覓食行為,但收斂精度低、易陷入局部收斂,因此在使用亞群策略將算法混合前,對(duì)基本的DA 進(jìn)行了改進(jìn)。
2.3.1 蜻蜓步長(zhǎng)更新改進(jìn)
由基本蜻蜓算法可知,當(dāng)蜻蜓附近沒(méi)有鄰近個(gè)體時(shí),依賴于式(8)進(jìn)行位置更新。Levy 飛行作為一種隨機(jī)游走,可以很好地模擬動(dòng)物的生活軌跡。如圖2 所示,Levy 飛行有較小的概率進(jìn)行一次大的躍遷(對(duì)應(yīng)動(dòng)物長(zhǎng)途跋涉尋找棲息地的過(guò)程),有較大的概率進(jìn)行小范圍的隨機(jī)行走(對(duì)應(yīng)動(dòng)物在合適的棲息地覓食的行為)。針對(duì)在蜻蜓算法的初期僅使用Levy 飛行進(jìn)行探索會(huì)導(dǎo)致局部開(kāi)發(fā)能力不足,而錯(cuò)失全局最優(yōu)解的缺點(diǎn),本文提出改進(jìn)的位置更新公式,使用全局最優(yōu)解來(lái)引導(dǎo)蜻蜓進(jìn)行Levy 飛行,如式(18)所示。
圖2 Levy飛行軌跡Fig.2 Levy flight trajectory
其中:α∈[0,1];b為一個(gè)維度為d的隨機(jī)向量;d是位置向量的維數(shù);gbest為全局最優(yōu)解。
蜻蜓不斷勘探的過(guò)程會(huì)吸引越來(lái)越多的蜻蜓聚集在一起列隊(duì)飛行或捕食,此時(shí)蜻蜓的步長(zhǎng)更新方式如式(19)所示,它們的步長(zhǎng)主要受到五種行為因子的影響,而基本的參數(shù)因子均由隨機(jī)數(shù)生成,不能很好地調(diào)節(jié)算法的勘探和開(kāi)發(fā)能力。Saremi 等[24]證明使用混沌映射來(lái)取代隨機(jī)數(shù)是提高群智能算法在局部最優(yōu)回避和收斂速度方面的性能的最佳方法之一,因此本文提出了一種基于Tent 混沌的步長(zhǎng)更新方式,如式(20)所示:
其中:γ是由Tent 混沌映射生成的混沌向量;μ為自適應(yīng)權(quán)重因子;t為當(dāng)前迭代次數(shù);T為最大迭代次數(shù);a,b∈[0,1]。
2.3.2 混沌躍遷機(jī)制
由基本的蜻蜓算法可知,隨著迭代的過(guò)程,蜻蜓的活動(dòng)逐漸由動(dòng)態(tài)飛行轉(zhuǎn)變?yōu)殪o態(tài)覓食行為,之后便一直保持靜態(tài)覓食行為。由于缺乏跳出食物源的行為,所以會(huì)導(dǎo)致蜻蜓算法全局勘探能力弱,易陷入局部收斂。針對(duì)這一缺陷,本文提出一種混沌躍遷機(jī)制幫助蜻蜓跳出當(dāng)前食物源,尋找新的食物源,如式(21)所示:
其中:Ct=0.2;R和U為兩個(gè)Tent 混沌向量;bl、bu分別為維度的上下限;r為[0,1]的一個(gè)隨機(jī)數(shù)。
其中:λ∈[0,1];t為當(dāng)前迭代次數(shù);T為最大迭代次數(shù)。
反向?qū)W習(xí)策略[25]作為一種學(xué)習(xí)策略,可以提高算法的收斂速度,一維的反向?qū)W習(xí)過(guò)程如圖3 所示。由圖3(a)可知,反向?qū)W習(xí)策略可以使一些適應(yīng)度差的位置迅速接近最優(yōu)位置;由圖3(b)可知,反向?qū)W習(xí)也會(huì)使一些適應(yīng)度好的位置迅速遠(yuǎn)離最優(yōu)位置。為了避免這種情形,本文引用貪婪策略從當(dāng)前位置和方向位置中選擇一個(gè)適應(yīng)度最好的位置保留,如式(23)和式(24)所示。由圖3 可知,通過(guò)反向?qū)W習(xí)能產(chǎn)生更優(yōu)質(zhì)的適應(yīng)度值位置,快速縮小群體維度上下限,有效提升算法的收斂速度。因此本文在DE 算法中引入反向?qū)W習(xí)來(lái)強(qiáng)化算法的局部開(kāi)發(fā)能力,同時(shí)改進(jìn)DE 算法的變異操作,使用全局最優(yōu)的差分向量取代隨機(jī)生成的差分向量,如式(25)所示,來(lái)進(jìn)一步加快全部個(gè)體維度的上下界限變化。
圖3 一維的反向?qū)W習(xí)Fig.3 One-dimensional opposition-based learning
其中:gbest為全局最優(yōu)位置;s1和s2 是隨機(jī)從群體中選擇的個(gè)體下標(biāo);Xub和Xlb為整個(gè)種群維度的動(dòng)態(tài)的上下界限;F()為應(yīng)適度函數(shù);X_OPi為反向位置。
綜上所述,本文改進(jìn)了基本的DA 和DE 算法,并使用亞群策略將改進(jìn)的蜻蜓算法和差分進(jìn)化算法進(jìn)行混合,提出了基于亞群策略和差分進(jìn)化的蜻蜓算法(HDASDE),算法偽代碼如算法1 所示,算法流程如圖4 所示。
圖4 HDASDE流程Fig.4 Flowchart of HDASDE
算法1 HDASDE。
輸入 目標(biāo)函數(shù)f;
輸出X+。
實(shí)驗(yàn)在intel Core i5-8400 CPU@2.80 GHz,16 GB 內(nèi)存,Matlab2019a 下實(shí)現(xiàn)。為了檢測(cè)算法的有效性,從文獻(xiàn)[6]中挑選13 個(gè)典型的優(yōu)化函數(shù)進(jìn)行實(shí)驗(yàn),其中:?jiǎn)畏搴瘮?shù)F1~F6能測(cè)試算法的局部開(kāi)發(fā)能力;多峰函數(shù)F7~F13能測(cè)試算法跳出局部收斂,尋找全局最優(yōu)的勘探能力。13 個(gè)函數(shù)如表1 所示。將本文的HDASDE 與DA[6]、DE[18]、人工蜂群(Artificial Bee Colony,ABC)[26]、PSO[27]、灰狼優(yōu)化(Grey Wolf Optimizer,GWO)[28]進(jìn)行對(duì)比。
表1 測(cè)試函數(shù)Tab.1 Test functions
為了確保實(shí)驗(yàn)的準(zhǔn)確性,算法參數(shù)統(tǒng)一設(shè)置為最大迭代次數(shù)Max_iter=1 000,種群規(guī)模N=40,函數(shù)最大評(píng)估次數(shù)為40 000。為了避免實(shí)驗(yàn)的偶然性,每一種算法都進(jìn)行了40 次獨(dú)立的實(shí)驗(yàn),并計(jì)算最優(yōu)值、平均值、標(biāo)準(zhǔn)差。最優(yōu)值xbest=表示第i次獨(dú)立運(yùn)行時(shí)算法達(dá)到的最優(yōu)解;平均值標(biāo)準(zhǔn)差σ=
實(shí)驗(yàn)結(jié)果如表2 所示,最優(yōu)結(jié)果加粗表示。由表2 可知,在F1~F6單峰函數(shù)40 次的獨(dú)立測(cè)試得到的各項(xiàng)指標(biāo)中,HDASDE 在F1、F4、F6函數(shù)中均找到了函數(shù)的理論極值,而在F2、F3、F5函數(shù)中,HDASDE 的尋優(yōu)能力僅次于GWO,表明HDASDE 有較優(yōu)秀的局部開(kāi)發(fā)能力。在多峰函數(shù)F7~F13中,HDASDE 在F8~F13的函數(shù)測(cè)試中均優(yōu)于其他算法,表明算法具有較強(qiáng)的全局勘探能力;同時(shí)HDASDE 在F9、F11函數(shù)中找到了理論極值,表明算法不僅擁有較強(qiáng)的全局勘探能力,而且有一定的開(kāi)發(fā)能力。
圖5 為6 種算法獨(dú)立求解6 個(gè)單峰測(cè)試函數(shù)40 次所得結(jié)果的箱線圖,F(xiàn)obj為測(cè)試函數(shù)的適應(yīng)度值。從圖5 可知,HDASDE 在F1、F4、F6中均無(wú)異常點(diǎn)出現(xiàn),說(shuō)明它在求解這些測(cè)試函數(shù)時(shí)有穩(wěn)定的表現(xiàn);而在F2、F3、F5中雖然有異常點(diǎn)出現(xiàn),但均遠(yuǎn)少于DA、DE 算法、ABC 算法、PSO 算法。
圖5 單峰函數(shù)測(cè)試的箱線圖Fig.5 Boxplots of unimodal function test
圖6 為6 種算法獨(dú)立求解6 個(gè)多峰測(cè)試函數(shù)40 次所得結(jié)果的箱線圖??梢钥闯觯琀DASDE 在多峰函數(shù)的測(cè)試中結(jié)果分布最集中,異常值最少,說(shuō)明HDASDE 在處理復(fù)雜的多峰函數(shù)時(shí)具有良好的表現(xiàn)。綜上所述,HDASDE 在13 個(gè)測(cè)試函數(shù)中,結(jié)果分布相對(duì)其他對(duì)比算法最集中,表明HDASDE具有較強(qiáng)的魯棒性。
圖6 多峰函數(shù)測(cè)試的箱線圖Fig.6 Boxplots of multimodal function test
為了更精準(zhǔn)地展現(xiàn)HDASDE 的優(yōu)勢(shì),采用Wilcoxon 統(tǒng)計(jì)檢驗(yàn)在統(tǒng)計(jì)學(xué)層面判斷不同算法在13 個(gè)測(cè)試函數(shù)下的顯著性區(qū)別。將6 種算法獨(dú)立求解13 個(gè)測(cè)試函數(shù)40 次得到的結(jié)果,在置信度為0.05 的條件下進(jìn)行檢查,判斷HDASDE 與對(duì)比算法的顯著性差異。Wilcoxon 統(tǒng)計(jì)檢驗(yàn)結(jié)果如表3 所示。由表3 可知,在13 個(gè)測(cè)試函數(shù)中,HDASDE 性能在全部的測(cè)試函數(shù)中均優(yōu)于DA、DE 算法和ABC 算法,在12 個(gè)函數(shù)中優(yōu)于PSO 算法,在10 個(gè)測(cè)試函數(shù)中優(yōu)于GWO 算法。因此基于統(tǒng)計(jì)學(xué)的分析,在收斂精度上,HDASDE 明顯優(yōu)于對(duì)比算法。
表3 Wilcoxon符號(hào)秩檢驗(yàn)Tab.3 Wilcoxon signed-rank test
圖7 為6 種算法在部分測(cè)試函數(shù)上的收斂曲線。由圖7可知,在除了F3以外的函數(shù)外,HDASDE 的收斂精度遠(yuǎn)高于其他算法,但是由于它使用了亞群策略混合差分進(jìn)化算法,前期偏向于DA 的全局勘探能力,所以HDASDE 的收斂速度小于其他算法,但由F1~F6可知HDASDE 獲得了較高的收斂精度;由F7~F13可知,HDASDE 有較強(qiáng)的跳出局部最優(yōu)能力(在多峰函數(shù)的測(cè)試中收斂精度均遠(yuǎn)高于其他算法,并且在F9和F11中找到了理論極值)。
圖7 部分函數(shù)收斂曲線對(duì)比Fig.7 Partial function convergence curve comparison
為了驗(yàn)證本文算法HDASDE 求解工程優(yōu)化問(wèn)題的有效性和可行性,將HDASDE 與5 種基本優(yōu)化算法,在三桿桁架的工程設(shè)計(jì)問(wèn)題上進(jìn)行優(yōu)化設(shè)計(jì),并與文獻(xiàn)[29]中記錄的多種算法求解相應(yīng)的問(wèn)題的最優(yōu)值進(jìn)行對(duì)比。為了保證測(cè)試的公正性,所有測(cè)試問(wèn)題的約束條件、變量范圍、常參數(shù)設(shè)置均與標(biāo)準(zhǔn)問(wèn)題完全相同。對(duì)比算法各自獨(dú)立運(yùn)行50 次,種群規(guī)模N=30,最大迭代次數(shù)max_iter=1 000。
三桿桁架結(jié)構(gòu)的動(dòng)力學(xué)模型如圖8 所示。三桿桁架的設(shè)計(jì)目標(biāo)是通過(guò)尋找全局最優(yōu)值,設(shè)計(jì)出重量最小的三桿桁架[30]。在該模型中桿1、3 的橫截面面積相同(A1=A3),三桿桁架問(wèn)題有兩個(gè)優(yōu)化變量,分別為桿1、3 的橫截面積A1,桿2 的橫截面積A2。這兩個(gè)優(yōu)化變量{A1,A2}構(gòu)成了一個(gè)二維約束優(yōu)化問(wèn)題。三桿桁架優(yōu)化問(wèn)題的各維度的取值范圍、適應(yīng)度函數(shù)、不等式約束條件、常變量取值如下所示。
圖8 三桿桁架結(jié)構(gòu)Fig.8 Three-bar truss structure
適應(yīng)度函數(shù):
其中:l為桁架的撓度;P為屈曲荷載;σ為應(yīng)力。
針對(duì)約束問(wèn)題,通常根據(jù)約束條件的特點(diǎn)構(gòu)造出懲罰函數(shù),然后加入到目標(biāo)函數(shù)中,將它轉(zhuǎn)化為無(wú)約束問(wèn)題。新目標(biāo)函數(shù)的解在懲罰值z(mì)趨于無(wú)窮時(shí)與原始目標(biāo)函數(shù)的解一致。本文采用外點(diǎn)罰函數(shù)法對(duì)上述問(wèn)題進(jìn)行轉(zhuǎn)化,新的適應(yīng)度函數(shù)如式(32)所示:
其中:z為懲罰值;n為約束條件個(gè)數(shù);λ為懲罰常數(shù)。
表4 顯示了HDASDE 與DA[6]、DE[18]、ABC[26]、GWO[28]、PSO[27]以及文獻(xiàn)[29]中列出的其他10 種算法:蚱蜢優(yōu)化算法(Grasshopper Optimization Algorithm,GOA)、蟻獅優(yōu)化(Ant Lion Optimizer,ALO)、自適應(yīng)灰狼優(yōu)化算法-Ⅲ(Modified GWO-Ⅲ,MGWO-Ⅲ)、自適應(yīng)灰狼優(yōu)化算法-Ⅱ(Modified GWO-Ⅱ,MGWO-Ⅱ)、灰狼優(yōu)化算法-Ⅰ(GWO-Ⅰ)、正余弦算法(Sine Cosine Algorithm,SCA)、多元宇宙優(yōu)化(Multi-Verse Optimizer,MVO)、引力搜索算法(Gravitational Search Algorithm,GSA)、布谷鳥(niǎo)搜索(Cuckoo Search,CS)、ERDSSA(adaptive Dynamic Role Salp Swarm Algorithm with Effective scaling and random crossover strategy)在求解三桿桁架設(shè)計(jì)問(wèn)題的最優(yōu)值的比較。
表4 不同算法求解三桿桁架設(shè)計(jì)問(wèn)題得到的最優(yōu)值Tab.4 Optimal values obtained by different algorithms in solving three-bar truss design problem
表4 是每個(gè)算法獨(dú)立運(yùn)行50 次所得最優(yōu)值,最優(yōu)值越低,結(jié)果越好。從表4 可以看出,對(duì)于三桿桁架優(yōu)化設(shè)計(jì)問(wèn)題,本文的HDASDE 與PSO、ALO 算法所求得的最優(yōu)值均為263.895 843,均小于其他算法的最優(yōu)值。因此HDASDE 在求解三桿桁架優(yōu)化問(wèn)題時(shí)能求得一個(gè)較好的有效值,驗(yàn)證了本文算法的有效性。而且?guī)缀跛械娜褐悄軆?yōu)化算法均能找到一個(gè)較好的最優(yōu)解(最優(yōu)解的差距均在±1.0 之內(nèi)),充分說(shuō)明了群智能優(yōu)化算法在求解工程優(yōu)化問(wèn)題上的有效性,同時(shí)HDASDE 求解出的最優(yōu)值仍優(yōu)于其他算法,驗(yàn)證了HDASDE 對(duì)于求解工程優(yōu)化設(shè)計(jì)問(wèn)題優(yōu)良可信的求解能力。
本文使用亞群策略將蜻蜓算法(DA)與差分進(jìn)化(DE)算法混合在一起,提出一種基于亞群和差分進(jìn)化的混合蜻蜓算法(HDASDE),使用亞群策略和蜻蜓算法的勘探能力來(lái)增強(qiáng)HDASDE 的全局勘探能力,使用動(dòng)態(tài)的亞群變化平衡算法的開(kāi)發(fā)和勘探能力,最后利用DE 的局部開(kāi)發(fā)能力進(jìn)一步提高算法的收斂精度。在13 個(gè)基準(zhǔn)測(cè)試函數(shù)上的測(cè)試結(jié)果表明,HDASDE 充分結(jié)合了DA 和DE 的優(yōu)點(diǎn),有較強(qiáng)的跳出局部極值的能力和較高的收斂精度。同時(shí),將HDASDE 用于求解三桿桁架的優(yōu)化設(shè)計(jì)問(wèn)題,驗(yàn)證了HDASDE 在求解工程優(yōu)化設(shè)計(jì)問(wèn)題上具有很好的求解質(zhì)量和有效性。
在未來(lái)的研究中,希望對(duì)亞群的動(dòng)態(tài)變化策略進(jìn)行更深入的研究,如:使用亞群策略混合多種算法,充分發(fā)揮每個(gè)算法的優(yōu)勢(shì);在算法搜索的過(guò)程中,根據(jù)實(shí)際情況對(duì)亞群個(gè)體進(jìn)行自適應(yīng)調(diào)整,并將算法用于更復(fù)雜的工程優(yōu)化問(wèn)題。