王聯(lián)國(guó) 劉小娟
甘肅農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院,蘭州,730070
正弦余弦算法(sine cosine algorithm,SCA)[1]是一種基于正弦余弦函數(shù)模型的群體智能算法。該算法主要利用三角函數(shù)模型的周期振蕩性使其趨于問(wèn)題的最優(yōu)解,同時(shí)嵌入隨機(jī)參數(shù)和自適應(yīng)參數(shù),平衡算法的全局探索階段與局部開(kāi)發(fā)階段。盡管SCA控制參數(shù)較少、模型簡(jiǎn)單、易于實(shí)現(xiàn)、全局尋優(yōu)能力強(qiáng),但與其他智能優(yōu)化算法一樣,在迭代后期仍易出現(xiàn)局部開(kāi)發(fā)能力差、收斂速度慢和求解精度低等問(wèn)題,致使算法陷入局部最優(yōu)。
為了提高SCA的優(yōu)化性能,國(guó)內(nèi)外學(xué)者相繼以不同策略對(duì)SCA進(jìn)行了改進(jìn)。劉勇等[2]通過(guò)分析轉(zhuǎn)換參數(shù),設(shè)計(jì)出了轉(zhuǎn)換參數(shù)拋物線函數(shù)遞減和指數(shù)函數(shù)遞減兩種正弦余弦算法,并以協(xié)同過(guò)濾推薦算法中相似度函數(shù)的計(jì)算為應(yīng)用對(duì)象,驗(yàn)證了改進(jìn)指數(shù)函數(shù)遞減正弦余弦算法的可行性和有效性;徐明等[3]提出了一種基于非線性轉(zhuǎn)換參數(shù)和隨機(jī)差分變異策略的改進(jìn)正弦余弦算法,并利用該算法優(yōu)化神經(jīng)網(wǎng)絡(luò)參數(shù)解決了兩類(lèi)經(jīng)典的分類(lèi)問(wèn)題;曲良東等[4]通過(guò)對(duì)正弦余弦算法進(jìn)行簡(jiǎn)化,提出了一種簡(jiǎn)化的正弦余弦算法,仿真實(shí)驗(yàn)結(jié)果表明新算法的搜索效率明顯高于基本正弦余弦算法;方旭陽(yáng)等[5]通過(guò)引入精英反向?qū)W習(xí)策略及利用個(gè)體的反思學(xué)習(xí)能力,對(duì)正弦余弦算法進(jìn)行改進(jìn),提高了算法的尋優(yōu)精度,也避免了其未成熟收斂;郭文艷等[6]提出了一種基于精英混沌搜索策略的交替正弦余弦算法,增強(qiáng)了算法的探索能力,降低了算法時(shí)間復(fù)雜度,提高了算法收斂速度;李銀通等[7]提出了一種自學(xué)習(xí)策略和Lévy飛行的正弦余弦算法,提高了算法的優(yōu)化性能;何慶等[8]提出了一種基于改進(jìn)正弦余弦算法的節(jié)點(diǎn)部署優(yōu)化方法,通過(guò)引入雙曲正弦調(diào)節(jié)因子、動(dòng)態(tài)余弦波權(quán)重系數(shù)、拉普拉斯和高斯分布的變異策略,有效提高了無(wú)線傳感器網(wǎng)絡(luò)的性能;SHUBHAM等[9]提出了一種改進(jìn)的全局優(yōu)化正弦余弦算法,該算法主要將交叉的開(kāi)發(fā)方案與個(gè)體解的最佳狀態(tài)相結(jié)合,同時(shí)將自學(xué)習(xí)與全局搜索機(jī)制相結(jié)合,增強(qiáng)了算法的開(kāi)發(fā)能力,并減少了經(jīng)典正弦余弦算法搜索方程中存在的多樣性溢出問(wèn)題,最后通過(guò)圖像分割中的多閾值分割的仿真實(shí)驗(yàn),驗(yàn)證了新算法解決實(shí)際優(yōu)化問(wèn)題的有效性;CHEN等[10]提出了一種用于求解全局優(yōu)化和約束實(shí)際工程問(wèn)題的多策略正弦余弦算法,將Cauchy突變算子、混沌局部搜索機(jī)制、基于反向?qū)W習(xí)策略等多種機(jī)制與基于差分進(jìn)化的兩種算子相結(jié)合,有效避免了算法陷入局部最優(yōu);LALIT等[11]提出了一種混合二進(jìn)制粒子群優(yōu)化-正弦余弦算法(BPSO-SCA)特征選擇方法,仿真實(shí)驗(yàn)表明該方法具有良好的性能。
上述改進(jìn)算法通過(guò)調(diào)整參數(shù)、引入不同局部搜索策略或與其他智能算法相融合等策略,提高算法的優(yōu)化性能,并且部分改進(jìn)算法在求解實(shí)際復(fù)雜問(wèn)題方面取得了較好的優(yōu)化效果。然而,分析上述文獻(xiàn)發(fā)現(xiàn),SCA與其他智能優(yōu)化算法的混合模式研究成果相對(duì)較少,并且已有的研究成果在實(shí)際問(wèn)題中的應(yīng)用仍存在一定的局限性。
本文在已有SCA研究的基礎(chǔ)上,對(duì)縮短算法運(yùn)行時(shí)間、參數(shù)位置調(diào)整、參數(shù)r1的自適應(yīng)調(diào)整及r3的動(dòng)態(tài)調(diào)整、與人工蜂群算法的采蜜機(jī)制融合、提高收斂速度、平衡全局探索與局部開(kāi)發(fā)能力、防止算法陷入局部最優(yōu)等方面進(jìn)行了進(jìn)一步的探索研究,提出了一種基于采蜜機(jī)制的正弦余弦算法(sine cosine algorithm based on the honey gathering mechanism,SCAHGM)。對(duì)23個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)和2個(gè)機(jī)械優(yōu)化設(shè)計(jì)實(shí)例進(jìn)行仿真實(shí)驗(yàn),驗(yàn)證了SCAHGM的可行性、魯棒性和適用性。
SCA求解優(yōu)化問(wèn)題始于一組隨機(jī)解,并通過(guò)全局探索和局部開(kāi)發(fā)兩個(gè)階段逐步趨向全局最優(yōu)解。假設(shè)優(yōu)化問(wèn)題的候選解對(duì)應(yīng)搜索空間中個(gè)體的空間位置,則第i個(gè)個(gè)體的空間位置可表示為Xi=(Xi1,Xi2,…,XiD)T,i∈{1,2,…,N},N為種群規(guī)模,D為搜索空間的維度,f(Xi)為第i個(gè)個(gè)體的目標(biāo)函數(shù)值,P=(P1,P2,…,PD)T為種群中最優(yōu)個(gè)體的空間位置。首先,在解搜索空間中按下式隨機(jī)初始化N個(gè)個(gè)體的空間位置:
(1)
然后,在每一次迭代中,種群中第i個(gè)個(gè)體以均等概率選取正弦函數(shù)或余弦函數(shù)更新空間位置,其空間位置更新方程為:
(2)
由式(2)可見(jiàn),r1、r2、r3和r4是SCA中起重要作用的4個(gè)參數(shù)。其中,參數(shù)r1決定下一次迭代時(shí)第i個(gè)個(gè)體的空間位置區(qū)域,它可在當(dāng)前解與目標(biāo)最優(yōu)解間的區(qū)域或兩者所構(gòu)成區(qū)域以外自由變化;參數(shù)r2定義了當(dāng)前解朝目標(biāo)最優(yōu)解向內(nèi)或向外移動(dòng)的方向和步長(zhǎng);參數(shù)r3的作用是為目標(biāo)最優(yōu)解賦予一個(gè)隨機(jī)權(quán)重,以反映其所定義的搜索步長(zhǎng)對(duì)目標(biāo)最優(yōu)解增強(qiáng)(r3>1)、減弱(r3<1)或保持(r3=1)的作用;參數(shù)r4的作用是以均等概率決定式(2)中正弦和余弦函數(shù)部分的迭代更新。隨機(jī)參數(shù)和線性遞減參數(shù)的設(shè)置使得算法能夠很好地平衡全局探索與局部開(kāi)發(fā)能力[12]。
SCA能使全局探索和局部開(kāi)發(fā)階段起到較好的平衡作用,以發(fā)現(xiàn)搜索空間中有希望的區(qū)域,并最終收斂到全局最優(yōu)。在整個(gè)迭代過(guò)程起主要貢獻(xiàn)作用的是參數(shù)r1,并且r1是一個(gè)線性遞減函數(shù),其值隨迭代次數(shù)的增加而線性減小,使用下式自適應(yīng)地調(diào)整與變換式(2)中正弦與余弦的范圍:
(3)
式中,t為當(dāng)前迭代次數(shù);T為最大迭代次數(shù);a為一個(gè)值為2的常數(shù)。
默認(rèn)情況下,當(dāng)?shù)^(guò)程中滿足條件t>T時(shí),算法終止優(yōu)化過(guò)程。
圖1為正弦余弦算法的原理示意圖。在算法的整個(gè)迭代過(guò)程中,全局探索能力和局部開(kāi)發(fā)能力的有機(jī)協(xié)調(diào),體現(xiàn)出了種群個(gè)體在不同搜索空間的搜索行為。當(dāng)正弦和余弦函數(shù)的范圍位于區(qū)間(1,2]和[-2,-1)之間時(shí),SCA全局探索搜索空間;在區(qū)間[-1,1]之間時(shí),局部開(kāi)發(fā)搜索空間。
圖1 正弦余弦算法原理示意圖Fig.1 Principle diagram of SCA
2.1.1每個(gè)個(gè)體采用相同的參數(shù)r1、r2、r3和r4
由于SCA在一次迭代中,r1本身是采用統(tǒng)一的計(jì)算公式,即所有個(gè)體都采用相同的r1,因此,將SCA中參數(shù)r2、r3和r4的位置從每個(gè)個(gè)體的維度循環(huán)內(nèi)改為維度循環(huán)外,使每個(gè)個(gè)體采用相同的參數(shù)r1、r2、r3和r4,并使每個(gè)個(gè)體的所有維度以相同方式與比例進(jìn)行搜索,提高算法的搜索效率。
2.1.2按冪遞減函數(shù)自適應(yīng)調(diào)整參數(shù)r1
文獻(xiàn)[2]將參數(shù)r1改為指數(shù)遞減函數(shù),分析了參數(shù)r1對(duì)算法性能的影響。本文調(diào)整參數(shù)r1為冪遞減函數(shù),表達(dá)式如下:
(4)
式中,s為調(diào)整參數(shù),主要作用是調(diào)整非線性冪遞減函數(shù)的下降速率。
圖2反映了算法在最大迭代次數(shù)為1000時(shí)參數(shù)r1按線性遞減函數(shù)[1]、指數(shù)遞減函數(shù)[2]和冪遞減函數(shù)變化的趨勢(shì)。從圖2可以看出,在算法的整個(gè)迭代過(guò)程中,線性遞減函數(shù)曲線是勻速下降的。相比線性遞減函數(shù)曲線,指數(shù)遞減函數(shù)曲線隨著迭代次數(shù)的增加,r1逐漸變小,與線性遞減函數(shù)曲線下降規(guī)律相似,體現(xiàn)出算法全局探索能力和局部開(kāi)發(fā)能力的有機(jī)協(xié)調(diào)。冪遞減函數(shù)曲線與線性遞減函數(shù)曲線下降規(guī)律不同,在前期迭代次數(shù)小,r1較大,當(dāng)?shù)螖?shù)大于500時(shí),曲線出現(xiàn)轉(zhuǎn)折,之后執(zhí)行算法的局部開(kāi)發(fā)階段,中后期隨著迭代次數(shù)的持續(xù)增加,r1非線性遞減,逐漸為0,體現(xiàn)出算法在前期全局探索能力最強(qiáng),到中后期局部開(kāi)發(fā)能力增強(qiáng)。
圖2 參數(shù)r1遞減曲線對(duì)比圖Fig.2 Comparison chart of decline curve of parameter r1
由于標(biāo)準(zhǔn)SCA中正余弦算子具有優(yōu)異的全局探索能力,但局部開(kāi)發(fā)能力較弱,因此本文調(diào)整參數(shù)r1為冪遞減函數(shù)以更好地平衡算法的全局探索能力和局部開(kāi)發(fā)能力。
2.1.3動(dòng)態(tài)調(diào)整參數(shù)r3
參數(shù)r3反映其所定義的搜索步長(zhǎng)對(duì)目標(biāo)最優(yōu)解增強(qiáng)(r3>1)、減弱(r3<1)或保持(r3=1)的作用。算法前期,r3在[0,2]之間隨機(jī)取值,有利于算法的全局搜索,但到中后期既要注重算法的全局探索能力,更要加強(qiáng)算法的局部開(kāi)發(fā)能力,同時(shí)要發(fā)揮目標(biāo)最優(yōu)解對(duì)優(yōu)化過(guò)程的實(shí)際引導(dǎo)作用,提高算法的優(yōu)化精度,因此,在算法中后期,r3以一定概率取常數(shù)1,減少隨機(jī)性,加快算法的搜索速度。參數(shù)r3的調(diào)整策略如下:
(5)
式中,ξ、Ψ分別為[0,1]之間的常數(shù);R2、R3分別為(0,1)和[0,2]之間的隨機(jī)數(shù)。
2.1.4貪婪選擇策略
貪婪選擇通用于所有的智能優(yōu)化算法,該策略通過(guò)保留種群中的精英個(gè)體,使算法進(jìn)化方向恒定,促使算法盡快找到全局最優(yōu)解。根據(jù)個(gè)體i的空間位置Xi和按更新策略產(chǎn)生的新個(gè)體空間位置Vi的函數(shù)值f(·),選擇較優(yōu)個(gè)體進(jìn)入下一代。對(duì)于最小化問(wèn)題,其選擇策略按下式進(jìn)行:
(6)
同時(shí)按照下式更新連續(xù)停留次數(shù)n:
(7)
2.1.5蜂群采蜜機(jī)制
人工蜂群(artificial bee colony,ABC)算法是土耳其學(xué)者DERVIS等[13]于2005年受蜜蜂行為啟發(fā)提出的一種覓食尋優(yōu)算法。ABC算法利用不同類(lèi)型蜜蜂(采蜜蜂、觀察蜂和偵察蜂)的分工協(xié)作機(jī)制求解問(wèn)題的最優(yōu)解,主要包括種群初始化、采蜜蜂、觀察蜂和偵察蜂四個(gè)階段。本文利用ABC算法中的采蜜蜂算子增強(qiáng)SCA的局部開(kāi)發(fā)能力,提高算法的優(yōu)化精度。在迭代過(guò)程中,以一定概率交替執(zhí)行正余弦算子或采蜜蜂算子,同時(shí)利用偵察蜂算子防止算法陷入局部極值,提高全局探索能力,較好地平衡SCA的全局探索和局部開(kāi)發(fā)階段。
(1)采蜜蜂算子。采蜜蜂算子具有較強(qiáng)的局部開(kāi)發(fā)能力,采蜜蜂根據(jù)下式進(jìn)行鄰域搜索并產(chǎn)生新蜜源,同時(shí)計(jì)算新蜜源的適應(yīng)度函數(shù)值,再采用貪婪選擇策略或輪盤(pán)賭法更新蜜源:
Vij=Xij+R4(Xij-Xkj)
(8)
式中,Vij為新產(chǎn)生的蜜源位置;R4為[-1,1]之間的隨機(jī)數(shù);j和k隨機(jī)選取,j∈{1,2,…,D},k∈{1,2,…,N},且k≠i,N為蜜蜂總數(shù)。
(2)偵察蜂算子。偵察蜂算子主要搜尋在蜂巢周?chē)鷿撛诘拿墼?。?dāng)連續(xù)停留次數(shù)n達(dá)到一定的閾值L仍未找到更優(yōu)空間位置時(shí),即表明陷入了局部最優(yōu),此時(shí)蜜蜂的角色由采蜜蜂或觀察蜂轉(zhuǎn)變?yōu)閭刹旆?,并按照?1)重新搜索隨機(jī)產(chǎn)生新蜜源。
2.1.6更改空間位置更新方程
因正弦函數(shù)sinr2取正值和負(fù)值的概率相等,文獻(xiàn)[4]去掉式(2)中的絕對(duì)值符號(hào),故本文引入該方法并將空間位置更新方程改寫(xiě)為
(9)
SCAHGM的具體步驟如下:
(1)初始化參數(shù),如種群規(guī)模N、空間維度D、閾值L、當(dāng)前迭代次數(shù)t、最大迭代次數(shù)T、目標(biāo)精度O及常數(shù)a等,隨機(jī)產(chǎn)生初始種群;
(2)計(jì)算種群中每個(gè)個(gè)體的函數(shù)值,并記錄全局最優(yōu)解;
(3)按照概率P執(zhí)行正余弦算子階段,按照概率1-P執(zhí)行采蜜蜂算子階段,若執(zhí)行正余弦算子階段,轉(zhuǎn)向步驟(4),否則,執(zhí)行采蜜蜂算子階段,并轉(zhuǎn)向步驟(5);
(4)在正余弦算子階段,隨機(jī)產(chǎn)生參數(shù)r2和r4,并根據(jù)式(4)、式(5)計(jì)算參數(shù)r1和r3的值,隨后再以式(9)更新每個(gè)個(gè)體的空間位置,轉(zhuǎn)向步驟(6);
(5)在采蜜蜂算子階段,根據(jù)式(8)產(chǎn)生新蜜源;
(6)計(jì)算每個(gè)個(gè)體的函數(shù)值;
(7)執(zhí)行貪婪選擇策略,按照式(6)更新每個(gè)個(gè)體,按照式(7)更新連續(xù)停留次數(shù)n;
(8)更新全局最優(yōu)解;
(9)執(zhí)行偵察蜂算子,若連續(xù)停留次數(shù)n達(dá)到閾值L,則采蜜蜂變?yōu)閭刹旆?,按照?1)隨機(jī)產(chǎn)生新蜜源;
(10)判斷是否達(dá)到算法設(shè)定的收斂條件(如最大迭代次數(shù)T或目標(biāo)精度O),若是,停止迭代并輸出最優(yōu)值,否則轉(zhuǎn)向步驟(3)。
SCAHGM的時(shí)間復(fù)雜度主要由標(biāo)準(zhǔn)SCA、采蜜蜂算子和偵察蜂算子三部分組成,并按照概率P執(zhí)行正余弦算子階段,按照概率1-P執(zhí)行采蜜蜂算子階段。假設(shè)種群規(guī)模為N,問(wèn)題維度為D,最大迭代次數(shù)為T(mén),則正余弦算子的時(shí)間復(fù)雜度為O1(NPDT),采蜜蜂算子的時(shí)間復(fù)雜度為O2(N(1-P)T),偵察蜂算子的最大時(shí)間復(fù)雜度為O3(NDT/L),則SCAHGM的時(shí)間復(fù)雜度為
O(SCAHGM)=O1(NPDT)+O2(N(1-P)T)+
O3(NDT/L)
(10)
標(biāo)準(zhǔn)SCA的時(shí)間復(fù)雜度為
O4(SCA)=O5(NDT)
(11)
以求23個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)的最小值為例進(jìn)行仿真實(shí)驗(yàn),客觀評(píng)價(jià)SCAHGM的優(yōu)化性能,函數(shù)表達(dá)式詳見(jiàn)文獻(xiàn)[1,14],其他參數(shù)及目標(biāo)精度如表1所示。其中,f1~f7為單峰函數(shù),在定義域內(nèi)只有一個(gè)極值,用于測(cè)試算法的收斂速度和尋優(yōu)精度,并考察算法的優(yōu)化性能;f8~f13為多峰函數(shù),f14~f23為固定維度多峰函數(shù),由于這些函數(shù)較復(fù)雜,存在多個(gè)極值點(diǎn),因而算法尋找全局最優(yōu)值的難度較大,常用于測(cè)試算法全局探索與避免早熟的能力。
表1 23個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)參數(shù)表Tab.1 Parameters of 23 standard benchmark functions
為了測(cè)試SCAHGM的性能,本文將其與標(biāo)準(zhǔn)SCA在種群規(guī)模一定,維度和最大迭代次數(shù)變化的條件下進(jìn)行比較。實(shí)驗(yàn)中兩種算法參數(shù)設(shè)置為:在單峰函數(shù)f1~f7和多峰函數(shù)f8~f13中,種群規(guī)模N=30,維度D為30、50、100,對(duì)應(yīng)的最大迭代次數(shù)T為1000、2000、3000;在固定維度多峰函數(shù)f14~f23中,種群規(guī)模N=30,最大迭代次數(shù)T=1000。即,為了公平起見(jiàn),兩種算法采用相同的函數(shù)最大評(píng)價(jià)次數(shù)M(M=NT)。此外,經(jīng)實(shí)驗(yàn)驗(yàn)證,當(dāng)閾值L=140、式(4)中的s=5、式(5)中的ξ=0.5和Ψ=0.6以及根據(jù)式(2)中參數(shù)r4的范圍所確定步驟(3)中概率P=0.5時(shí),SCAHGM優(yōu)化效果較好。兩種算法獨(dú)立運(yùn)行30次的實(shí)驗(yàn)結(jié)果見(jiàn)表2,其中,加粗?jǐn)?shù)據(jù)代表對(duì)比結(jié)果的最優(yōu)值,下同。圖3~圖8列出了N=30,T=1000的部分測(cè)試函數(shù)收斂曲線。其中,平均最優(yōu)值反映算法的收斂速度和求解精度,標(biāo)準(zhǔn)差反映算法的穩(wěn)定性和魯棒性,最大值和最小值反映可行解的質(zhì)量,成功率反映算法達(dá)到目標(biāo)精度的執(zhí)行效率,平均運(yùn)行時(shí)間反映算法運(yùn)行的時(shí)間成本,收斂曲線圖反映算法的收斂趨勢(shì)變化。
表2 SCAHGM與標(biāo)準(zhǔn)SCA的實(shí)驗(yàn)結(jié)果Tab.2 Experiment results of SCAHGM and standard SCA
續(xù)表
續(xù)表
圖3 f5平均最優(yōu)值的收斂曲線Fig.3 Convergence curve of the average optimal value of f5
圖4 f6平均最優(yōu)值的收斂曲線Fig.4 Convergence curve of the average optimal value of f6
圖5 f8平均最優(yōu)值的收斂曲線Fig.5 Convergence curve of the average optimal value of f8
圖6 f11平均最優(yōu)值的收斂曲線Fig.6 Convergence curve of the average optimal value of f11
圖7 f15平均最優(yōu)值的收斂曲線Fig.7 Convergence curve of the average optimal value of f15
圖8 f23平均最優(yōu)值的收斂曲線Fig.8 Convergence curve of the average optimal value of f23
從不同峰型的測(cè)試函數(shù)在平均最優(yōu)值、標(biāo)準(zhǔn)差、成功率和平均運(yùn)行時(shí)間四方面的優(yōu)化效果來(lái)看:在f1~f7單峰函數(shù)中,SCAHGM在四方面均達(dá)到了顯著的優(yōu)化效果。其中,f5(Rosenbrock)被稱為“病態(tài)函數(shù)”,是一個(gè)對(duì)大部分優(yōu)化函數(shù)都難以收斂到全局最優(yōu)的極復(fù)雜單峰函數(shù),而SCAHGM卻能得到較好解,這說(shuō)明SCAHGM較好地克服了SCA的缺陷;在f8~f13的多峰函數(shù)中,對(duì)尋優(yōu)難度較大的f8,SCAHGM在維度D為30,50,100下的穩(wěn)定性不如SCA。然而,對(duì)具有許多局部極小值的函數(shù)f10和多模態(tài)函數(shù)f12、f13,SCAHGM均達(dá)到了一定數(shù)量級(jí)的明顯優(yōu)化效果,并且在具有強(qiáng)烈振蕩的復(fù)雜多模態(tài)函數(shù)f9和f11中,也已取得了理論最優(yōu)值;在f14~f23的固定維度多峰函數(shù)中,SCAHGM均表現(xiàn)出較好的優(yōu)化能力。在所有測(cè)試函數(shù)的對(duì)比結(jié)果中,SCAHGM平均運(yùn)行時(shí)間變短,這是由于在局部開(kāi)發(fā)能力較強(qiáng)的采蜜蜂算子中,每個(gè)個(gè)體只更新一個(gè)維度的數(shù)據(jù),再結(jié)合全局探索能力強(qiáng)的正余弦算子,運(yùn)算速度加快,時(shí)間變短。
收斂曲線圖中,除了圖5和圖8外,其余曲線圖的縱坐標(biāo)為函數(shù)平均最優(yōu)值的對(duì)數(shù)值,橫坐標(biāo)為迭代次數(shù)。另外,圖4和圖6均以10-10作為截止值,避免函數(shù)值變?yōu)?致使曲線中斷。
分析收斂曲線圖發(fā)現(xiàn),對(duì)f8和f23而言,SCAHGM分別約在500和150次時(shí)開(kāi)始收斂,并隨著迭代次數(shù)增加持續(xù)收斂;對(duì)f5、f6和f11而言,SCAHGM一開(kāi)始就表現(xiàn)出顯著的收斂速度,迭代次數(shù)不到100次時(shí)已收斂;對(duì)于SCAHGM,f15在前期收斂速度和精度稍遜于SCA,但當(dāng)?shù)螖?shù)在400次以后,其收斂速度加快并取得更高的收斂精度??傮w上看,SCAHGM的收斂速度和精度都有顯著的改進(jìn)效果。
為驗(yàn)證以上實(shí)驗(yàn)結(jié)果的真實(shí)性并更好地評(píng)估算法性能,采用顯著性水平為5%的Wilcoxon signed ranks檢驗(yàn)進(jìn)行測(cè)試。表3給出了SCAHGM與標(biāo)準(zhǔn)SCA的Wilcoxon signed ranks統(tǒng)計(jì)決策結(jié)果。其中,“+”表示SCAHGM優(yōu)于SCA,“-”表示SCAHGM遜于SCA,“=”表示兩者作用相當(dāng)。
表3 顯著性水平為0.05的Wilcoxon signed ranks統(tǒng)計(jì)決策Tab.3 Statistical decision based on Wilcoxon signed ranks
表3中決策結(jié)果顯示,23個(gè)測(cè)試函數(shù)的所有顯著性pvalue均小于0.05,并且決策結(jié)果均顯示為“+”,這說(shuō)明了SCAHGM的有效性,也表明SCAHGM較標(biāo)準(zhǔn)SCA具有顯著的優(yōu)化效果。
以上分析表明,改進(jìn)SCAHGM具有更好的收斂效果、更高的優(yōu)化精度、較強(qiáng)的魯棒性和較小的時(shí)間代價(jià),從而驗(yàn)證了算法的優(yōu)越性。
為進(jìn)一步測(cè)試SCAHGM的性能,將其與SCA的改進(jìn)算法及近年來(lái)提出的其他元啟發(fā)式算法進(jìn)行比較。
(1)將SCAHGM與SCA改進(jìn)算法OBSCA[15]、COSCA[6]、m-SCA[16]、ESCA[2]、MSCA[17]進(jìn)行比較。為體現(xiàn)公平性,SCAHGM和其他SCA改進(jìn)算法采用相同的參數(shù)設(shè)置,并使算法的函數(shù)最大評(píng)價(jià)次數(shù)保持一致。除了ESCA 和SCAHGM外,其他算法的實(shí)驗(yàn)數(shù)據(jù)取自各文獻(xiàn)。表4列出了SCAHGM與幾種SCA改進(jìn)算法的性能比較結(jié)果,其中,Ave表示平均值,Std表示標(biāo)準(zhǔn)差。由表4可以看出,在SCAHGM與OBSCA、COSCA、m-SCA三者的比較實(shí)驗(yàn)中(函數(shù)最大評(píng)價(jià)次數(shù)M=15 000),SCAHGM相對(duì)于OBSCA,除了測(cè)試函數(shù)f7的優(yōu)化效果稍遜于OBCSA外,其余測(cè)試函數(shù)的優(yōu)化效果均優(yōu)于OBSCA;SCAHGM相對(duì)于COSCA,除了測(cè)試函數(shù)f2、f21、f22和f23的優(yōu)化效果稍遜于COSCA外,SCAHGM對(duì)其他19個(gè)測(cè)試函數(shù)的優(yōu)化效果優(yōu)于COSCA;SCAHGM相對(duì)于m-SCA,除了測(cè)試函數(shù)f13和f16的優(yōu)化效果稍遜于m-SCA外,SCAHGM對(duì)其他21個(gè)測(cè)試函數(shù)的優(yōu)化效果相對(duì)較好;在SCAHGM與ESCA比較實(shí)驗(yàn)中(M=300 000),SCAHGM相對(duì)于ESCA,除了測(cè)試函數(shù)f7的優(yōu)化效果遜于ECSA外,在其他22個(gè)測(cè)試函數(shù)上的優(yōu)化效果仍然相對(duì)較好;在SCAHGM與MSCA比較實(shí)驗(yàn)中(M=500 000),SCAHGM相對(duì)于MSCA,除了測(cè)試函數(shù)f1~f4、f6、f9、f11、f14和f16的優(yōu)化效果與MSCA相當(dāng),f5、f8、f12、f13和f15的優(yōu)化效果遜于MSCA外,在其他6個(gè)測(cè)試函數(shù)上的優(yōu)化效果仍然相對(duì)較好(測(cè)試函數(shù)f21~f23在文獻(xiàn)[17]中無(wú)實(shí)驗(yàn)數(shù)據(jù))。
(2)將SCAHGM與其他元啟發(fā)式算法[18]及HPSO[19]進(jìn)行比較。將SCAHGM、HPSO及文獻(xiàn)[18]中的7種算法的參數(shù)設(shè)置相同,即所有算法的函數(shù)最大評(píng)價(jià)次數(shù)仍保持一致。除SCAHGM和HPSO進(jìn)行仿真實(shí)驗(yàn)外,其余對(duì)比算法的實(shí)驗(yàn)數(shù)據(jù)來(lái)自文獻(xiàn)[18],表5列出了SCAHGM與其他元啟發(fā)式算法的性能比較結(jié)果(表中僅列出了算法運(yùn)行30次后取得的平均最優(yōu)值)。
表4 SCAHGM與SCA改進(jìn)算法的性能比較Tab.4 Performance comparison of SCAHGM with the improved algorithms for SCA
表5結(jié)果顯示,相比其他8種對(duì)比算法,除了測(cè)試函數(shù)f7、f12、f13、f16和f17外,SCAHGM對(duì)其他18個(gè)測(cè)試函數(shù)都能得到最好的優(yōu)化結(jié)果,表現(xiàn)出了相對(duì)顯著的優(yōu)化性能。
綜上所述,基于采蜜機(jī)制的正弦余弦算法求解精度高、魯棒性強(qiáng)、收斂性好,取得了相對(duì)較好的優(yōu)化效果,提高了算法的優(yōu)化效率。
表5 SCAHGM與其他元啟發(fā)式算法的性能比較Tab.5 Performance comparison of SCAHGM with other meta-heuristic algorithms
本文將提出的SCAHGM用于求解機(jī)械優(yōu)化設(shè)計(jì)問(wèn)題,以說(shuō)明提出算法的可行性和適用性。
選取設(shè)計(jì)變量、列出目標(biāo)函數(shù)、給定約束條件是構(gòu)造優(yōu)化設(shè)計(jì)問(wèn)題數(shù)學(xué)模型的重要步驟。該問(wèn)題的數(shù)學(xué)模型一般可以描述為如下約束非線性優(yōu)化設(shè)計(jì)問(wèn)題[20]:
(12)
群體智能優(yōu)化算法求解約束優(yōu)化問(wèn)題時(shí)需要將約束問(wèn)題轉(zhuǎn)化為無(wú)約束優(yōu)化問(wèn)題進(jìn)行求解。將約束優(yōu)化問(wèn)題轉(zhuǎn)化為無(wú)約束優(yōu)化問(wèn)題的主要處理方法是罰函數(shù)法[21]。該方法的基本思想是:構(gòu)造懲罰項(xiàng)并將其加入目標(biāo)函數(shù)中以構(gòu)成懲罰函數(shù),使約束優(yōu)化問(wèn)題轉(zhuǎn)化為求解一系列無(wú)約束極值子問(wèn)題,然后按照無(wú)約束優(yōu)化方法來(lái)求解。該策略將對(duì)求解過(guò)程中違反約束條件的迭代點(diǎn)進(jìn)行“懲罰”,進(jìn)而迫使無(wú)約束子問(wèn)題的極小值點(diǎn)趨向于滿足約束條件[22]。
基于此,罰函數(shù)的一般形式為
F(X)=f(X)+λ(h2(X)+[min(0,g(X))]2)
(13)
式中,F(xiàn)(X)為懲罰函數(shù);f(X)為優(yōu)化問(wèn)題的原始目標(biāo)函數(shù);λ為懲罰因子;h2(X)和[min(0,g(X))]2分別為與等式有關(guān)的懲罰項(xiàng)和與不等式有關(guān)的懲罰項(xiàng)。
利用SCAHGM優(yōu)化2個(gè)機(jī)械設(shè)計(jì)問(wèn)題,通過(guò)計(jì)算機(jī)仿真來(lái)驗(yàn)證所提出算法的性能。實(shí)例1來(lái)自文獻(xiàn)[16],實(shí)例2來(lái)自文獻(xiàn)[19]。為了體現(xiàn)比較的公平性,SCAHGM與其他算法作對(duì)比時(shí),實(shí)例1和實(shí)例2中SCAHGM參數(shù)設(shè)置分別為:N=50,T=2500和N=30,T=2700。另外,因?qū)嵗芗s束限制,SCAHGM采用罰函數(shù)法處理約束越界。算法獨(dú)立運(yùn)行30次并取最優(yōu)值,具體實(shí)驗(yàn)結(jié)果如表6~表8所示。
表6 不同算法對(duì)實(shí)例1的最優(yōu)解比較Tab.6 Comparisons of the optimal solution for example 1
表7 不同算法對(duì)實(shí)例2的最優(yōu)解比較Tab.7 Comparisons of the optimal solution for example 2
表8 不同算法求解實(shí)例2的統(tǒng)計(jì)結(jié)果Tab.8 Statistical results of the optimal solution for example 2 by different algorithms
4.3.1懸臂梁設(shè)計(jì)問(wèn)題
根據(jù)懸臂梁平面結(jié)構(gòu)[16],該問(wèn)題受不同單元梁高度(或?qū)挾?約束,設(shè)計(jì)目標(biāo)為使懸臂梁矩形截面的質(zhì)量盡可能小。其數(shù)學(xué)模型如下:
(14)
式中,f(x)為最小化懸臂梁矩形截面的質(zhì)量;設(shè)計(jì)變量
xi表示不同單元梁的高度(或?qū)挾?。
文獻(xiàn)[1,16,23-24]給出了該實(shí)例的解,表6所示是SCAHGM與其他文獻(xiàn)獲得最優(yōu)解的比較結(jié)果。可以明顯地看出,SCAHGM獲得的最優(yōu)解要優(yōu)于其他文獻(xiàn)中算法的最優(yōu)解。
4.3.2壓力管道設(shè)計(jì)問(wèn)題
根據(jù)壓力管道平面結(jié)構(gòu)[19],該問(wèn)題的設(shè)計(jì)目標(biāo)為最小化費(fèi)用總成本,包括材料、成形和焊接的成本。其數(shù)學(xué)模型如下:
(15)
式中,f(x)為最小化費(fèi)用總成本;四個(gè)設(shè)計(jì)變量x1,x2,x3和x4分別表示殼體厚度、頭部厚度、內(nèi)半徑和除頭部外的圓柱形截面長(zhǎng)度,x1和x2必須為1.5875 mm(0.0625 in)的整數(shù)倍,x3和x4為連續(xù)變量。
文獻(xiàn)[19,25-30]給出了該實(shí)例的解,表7所示是SCAHGM與其他文獻(xiàn)獲得最優(yōu)解的比較結(jié)果,表8給出了不同算法求解實(shí)例2獲得最優(yōu)值統(tǒng)計(jì)結(jié)果的比較(表中g(shù)1(x)~g4(x)部分的數(shù)據(jù)來(lái)自文獻(xiàn)[30])。
由表7可見(jiàn),SCAHGM的最優(yōu)解與HPSO的最優(yōu)解相當(dāng),且優(yōu)于其他算法的最優(yōu)解。同時(shí),在表8的統(tǒng)計(jì)結(jié)果中,除了文獻(xiàn)[28]外,SCAHGM的平均值和標(biāo)準(zhǔn)差小于對(duì)比算法的平均值和標(biāo)準(zhǔn)差,這表明SCAHGM的平均搜索能力優(yōu)于其他算法,具有較好的收斂精度和較強(qiáng)的魯棒性。此外,根據(jù)表8所列的其他算法求解函數(shù)值和SCAHGM處理的約束函數(shù)值,SCAHGM獲得的函數(shù)最優(yōu)解為(x1,x2,x3,x4)=(0.81250,0.437 50,42.098 445 595 854 919,176.636 599 813 031 040),最優(yōu)值f(x)=6 059.714 427 88,約束函數(shù)g1(x)=0,g2(x)=-0.035 880 829 015 544 069,g3(x)=0,g4(x)=-63.363 400 186 968 960 000,均滿足約束條件。
(1)通過(guò)懸臂梁設(shè)計(jì)和壓力管道設(shè)計(jì)問(wèn)題的實(shí)例驗(yàn)證,本文算法SCAHGM可以取得優(yōu)于或相近于其他文獻(xiàn)算法的優(yōu)化結(jié)果,說(shuō)明SCAHGM優(yōu)化機(jī)械設(shè)計(jì)問(wèn)題是可行有效的。
(2)由于機(jī)械優(yōu)化設(shè)計(jì)問(wèn)題的數(shù)學(xué)模型具有一定的通用性,故其他工程優(yōu)化設(shè)計(jì)問(wèn)題均可表示為式(12)描述的約束非線性優(yōu)化設(shè)計(jì)問(wèn)題,通過(guò)罰函數(shù)法轉(zhuǎn)化為無(wú)約束優(yōu)化問(wèn)題,再用改進(jìn)算法SCAHGM求解,表明SCAHGM具有一定的實(shí)際應(yīng)用可行性。
(1)更改標(biāo)準(zhǔn)正弦余弦算法(SCA)中參數(shù)的位置,使每個(gè)個(gè)體采用相同的參數(shù)r1、r2、r3和r4,并按冪遞減函數(shù)非線性調(diào)整參數(shù)r1,動(dòng)態(tài)調(diào)整參數(shù)r3,減少隨機(jī)性,提高了算法的搜索效率。
(2)利用智能算法通用的貪婪選擇策略,加快了算法的收斂速度,并協(xié)同偵察蜂算子,提高了種群多樣性,防止算法陷入局部最優(yōu)。
(3)按一定概率交替執(zhí)行正余弦算子或采蜜蜂算子,更好地平衡算法的全局探索與局部開(kāi)發(fā)能力,有效彌補(bǔ)了算法局部開(kāi)發(fā)能力差的不足。
(4)選取23個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)進(jìn)行仿真實(shí)驗(yàn),將基于采蜜機(jī)制的正弦余弦算法(SCAHGM)與標(biāo)準(zhǔn)SCA、改進(jìn)SCA和其他元啟發(fā)式算法進(jìn)行比較,結(jié)果表明提出的SCAHGM具有較好的尋優(yōu)性能。
(5)通過(guò)優(yōu)化2個(gè)機(jī)械設(shè)計(jì)實(shí)例,驗(yàn)證了SCAHGM的可行性和適用性,為解決工程設(shè)計(jì)優(yōu)化問(wèn)題提供了一條新途徑。