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