姚信威,王佐響,姚 遠,黃 偉
(浙江工業(yè)大學 計算機科學與技術(shù)學院,杭州 310023)
E-mail:xwyao@zjut.edu.cn
隨著科學技術(shù)的不斷發(fā)展,生產(chǎn)力的迅猛提升使得優(yōu)化問題逐漸成為現(xiàn)階段研究的熱點.近年來,不斷有新的算法被提出和拓展,如遺傳算法(Genetic Algorithm,GA)[1],模擬退火算法(Simulated Annealing Algorithm)[2],粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)[3],蝙蝠算法(Bat Algorithm,BA)[4],蟻群優(yōu)化算法(Ant Colony Optimization,ACO)[5],風驅(qū)動算法(Wind Driven Optimization,WDO))[6]等等,而這些算法也可以分為兩類:基于個體和基于群體的.第1類只生成優(yōu)化一種解決方案,而第2類會生成多個解決方案并優(yōu)化.這種特點使得上述算法在科學和工業(yè)領(lǐng)域得到廣泛關(guān)注,盡管現(xiàn)階段在該領(lǐng)域已經(jīng)有很多優(yōu)化算法,但是沒有一種算法是能夠滿足所有的優(yōu)化問題的[7],所以仍有大量優(yōu)化算法不斷在被提出和改進.
正余弦優(yōu)化算法(Sine Cosine Algorithm,SCA)[8]是2016年由Seyedali、Mirjalili教授提出的一種群智能優(yōu)化算法,該算法基于正余弦數(shù)學函數(shù)設(shè)計,算法始于一組隨機解,通過目標函數(shù)反復(fù)評估此隨機解,并通過作為優(yōu)化技術(shù)核心的一組規(guī)則對其進行改進,位置的更替通過線性遞減函數(shù)即轉(zhuǎn)換參數(shù)完成,該算法被驗證有效并已經(jīng)應(yīng)用到很多現(xiàn)實問題上,如天氣多方位分析預(yù)測系統(tǒng)[9]、城市動力系統(tǒng)全局調(diào)度優(yōu)化[10]、城市土地優(yōu)化配置問題[11]、圖像分割[12]、結(jié)構(gòu)損傷檢測[13]、數(shù)據(jù)挖掘等許多問題上,但是在其他高維或者更加復(fù)雜的情況中,往往會受到一些瓶頸,如陷入局部最優(yōu)解、計算精度低等.
為了解決傳統(tǒng)正余弦優(yōu)化算法存在的問題,很多研究者把目光朝向了改變轉(zhuǎn)換參數(shù)和加入動態(tài)調(diào)整等方向.轉(zhuǎn)換參數(shù)對整個正余弦優(yōu)化算法的搜索能力有很大的影響,對正余弦的進一步研究可以了解到,其先是進行全局范圍內(nèi)的搜索,再對局部進行進一步優(yōu)化分析,所以轉(zhuǎn)換參數(shù)應(yīng)該隨著搜索過程而改變,根據(jù)這個原理,劉勇等[14]針對轉(zhuǎn)換參數(shù)的設(shè)置進行分析,提出將傳統(tǒng)正余弦算法中的線性遞減函數(shù)更改為非線性遞減函數(shù),采用拋物線函數(shù)來設(shè)置參數(shù),稱為(Parabolic Sine Cosine Algorithm,PSCA);Li Ning等[15]提出了一種新的正余弦優(yōu)化算法(Bare bones Sine Cosine Algorithm,BBSCA),該算法結(jié)合了高斯搜索方程和指數(shù)遞減策略來生成個體;Shubham Gupta等[16]針對SCA的停止和局部最優(yōu)解的情況提出用擾動率產(chǎn)生相反種群并引入自適應(yīng)權(quán)重從而使算法能充分搜索函數(shù)區(qū)域,其把該算法稱為修正正余弦算法(Modified Sine Cosine Algorithm,MSCA);Yetao Ji等[17]發(fā)現(xiàn)SCA在算法后期處理復(fù)雜問題容易陷入局部最優(yōu)和惰性收斂,為了讓SCA算法在全局搜索和局部探索之間的變換更加靈活,提出一種基于自適應(yīng)參數(shù)和混沌開發(fā)策略的改進SCA來增強算法的局部搜索能力;Wen Long等[18]發(fā)現(xiàn)傳統(tǒng)SCA以及變體并沒有在高維全局優(yōu)化問題中得到廣泛應(yīng)用,為了解決高維問題,提出了一種引入慣性權(quán)重的改進SCA(Improved Sine Cosine Algorithm,ISCA),同時采用了一種基于高斯函數(shù)的非線性轉(zhuǎn)換參數(shù)減少策略來平衡SCA的兩個探索過程;Rizk M 等[19]考慮到SCA無法對解決方案的多樣性進行保護以及沒能采用強調(diào)策略引導搜索區(qū)域,提出了一種基于正交并行信息的SCA(Sine Cosine Algorithm via orthogonal parallel information,SCA-OPI),引入多正交并行信息,采用一種基于經(jīng)驗的對立方向策略來保持搜索能力;Turgut[20]結(jié)合回溯算法的優(yōu)點,提出了一種混合正余弦優(yōu)化算法(Backtracking Search Algorithm & Sine Cosine Algorithm,BSA-SCA)并在此優(yōu)化算法基礎(chǔ)上實現(xiàn)了管殼式蒸發(fā)器的優(yōu)化設(shè)計;Chegini等[21]將正余弦位置更新方程與粒子群優(yōu)化算法以及Levy flight(LF)方法結(jié)合,提出了新的混合算法,LF方法是一個隨機游動,通過Levy分布生成搜索步驟,隨著跳轉(zhuǎn)次數(shù)的增加,在搜索空間內(nèi)能進行更加有效的搜索,提高基礎(chǔ)正余弦的搜索能力,避免陷入局部極小值;Issa等[22]通過引入調(diào)優(yōu)參數(shù)并結(jié)合粒子群優(yōu)化來改進正余弦算法.
盡管已經(jīng)有部分學者對SCA算法進行改進,如優(yōu)化參數(shù)或結(jié)合粒子群等其它算法,但是該算法存在的易陷入局部極小值問題仍無法完全避免,算法收斂精度較低還是需要改善,針對上述問題,本文提出了融合改進天牛須搜索算法(Beetle Antennae Search,BAS)和正余弦的雙重優(yōu)化算法(BAS-SCA).天牛須搜索(Beetle Antennae Search,BAS),也叫甲殼蟲須搜索,是Jiang Xiang-yuan[23]在2017年提出的一種高效智能優(yōu)化算法.與遺傳算法、蟻群算法、風驅(qū)動等智能優(yōu)化算法不同,天牛須搜索可以在忽略函數(shù)的具體信息如函數(shù)的梯度等情況下完成尋優(yōu)目標,并且天牛須搜索只需要一個個體就能夠進行尋優(yōu)計算,因此天牛須算法的運算量遠小于粒子群算法.但是基礎(chǔ)的天牛須搜索步長是固定的,為了更好的改善性能,將天牛須搜索的固定步長改為變步長提升正余弦優(yōu)化算法搜索性能.在正余弦中提出了一種新的自適應(yīng)轉(zhuǎn)換參數(shù)模型,改變了傳統(tǒng)的線性遞減參數(shù)設(shè)置,此外,引入了一個全新的自適應(yīng)慣性權(quán)重機制來保證算法后期的收斂性,變步長天牛須搜索對改進正余弦算法進行二次尋優(yōu),增強了正余弦優(yōu)化算法的局部搜索能力.通過14個標準測試函數(shù)上的仿真實驗,與拋物線正余弦優(yōu)化算法[14]和指數(shù)正余弦優(yōu)化算法[15]進行對比,本文所提算法在尋優(yōu)精度和尋優(yōu)準確度上都有較大的性能優(yōu)勢,證明了算法的可行性.
標準的正余弦算法的位置更新公式如式(1)所示,正余弦搜索過程可以分為兩個過程[24]:探索和開發(fā),探索過程中,算法以高概率將隨機解組合,尋求在搜索空間內(nèi)最有希望的區(qū)域.
Xt+1i=Xti+r1×sin(r2)×|r3Ptj-Xti|,r4<0.5
Xti+r1×cos(r2)×|r3Ptj-Xti|,r4≥0.5
(1)
其中,t為當前迭代次數(shù),Xti為在第t次迭代下第i個粒子在第j維度下的最優(yōu)位置,r2/r3/r4是3個參數(shù),r2變化范圍在[0,2π],r3變化范圍在[-2,2],r4變化范圍在[-1,1],Ptj為在t次迭代下的目標點,r1稱為轉(zhuǎn)換參數(shù)并且為一個線性遞減函數(shù),它會隨著迭代次數(shù)的增加從常數(shù)a線性遞減至0,它的線性變化公式如式(2)所示:
r1=a-taT
(2)
其中,T為最大迭代次數(shù),a>0.
正弦余弦算法的迭代過程如圖1所示,圖中的r1設(shè)為2,可以看出,當r1sin(r2)或者r1cos(r2)的值在區(qū)間(1,2]或[-2,-1)之內(nèi)時,SCA對全局環(huán)境進行搜索;當r1sin(r2)或者r1cos(r2)的值在區(qū)間[-1,1]之內(nèi)時,SCA對已探索空間進行局部尋優(yōu)操作.可以看出,正余弦優(yōu)化算法的性能好壞很大程度上取決于全局和局部搜索兩者能否達到一種動態(tài)平衡,全局搜索用于快速定位最優(yōu)解的范圍,而局部解則在該范圍內(nèi)來尋找最優(yōu)解,全局搜索過多會使得搜索效率低下,而局部搜索過多會使得算法陷入局部最優(yōu)解的情況.
圖1 正余弦算法原理圖Fig.1 Schematic diagram of sine and cosine algorithm
天牛須算法是一種有效的元啟發(fā)式算法,其靈感來自于天牛的覓食行為[25],如圖2所示,將天牛簡化模型分為天牛左須和右須,兩須之間的距離為d0,兩須到天牛質(zhì)心的距離是相等的,天牛須搜索分為兩個步驟:搜索行為和檢測更新行為.天牛在每次迭代中都會根據(jù)隨機方向進行移動,該算法的實現(xiàn)需要先對搜索方向進行矢量歸一化處理,如式(3)所示:
b→=rand(j,1))‖rand(j,1)‖
(3)
其中,rand函數(shù)表示一個隨機函數(shù),j代表當前位置的維度.
圖2 天牛須搜索原理圖Fig.2 Schematic diagram of beetle antennae search
用式(4)初始化天牛須的雙向搜索行為:
xr=xt+dtb→
xl=xt-dtb→
(4)
其中,xr代表的是右向的搜索空間,xl代表的是左向的搜索空間,dt是天牛須到天牛質(zhì)心之間的距離,更準確的說,dt是某個特定時刻對應(yīng)的天牛的搜索區(qū)域.
天牛須當前位置根據(jù)式(5)的規(guī)則進行更新移動:
xt+1=xt+δtb→sign(f(xr)-f(xl))
(5)
其中,δt是搜索步長,f(x)用來計算對應(yīng)函數(shù)的適應(yīng)度值,sign函數(shù)是用來確定天牛之后的搜索方向,如果右向適應(yīng)度較大,則sign函數(shù)取1,天牛就朝著該方向繼續(xù)前進,反之,朝相反方向移動,移動步長為δt,在傳統(tǒng)算法中,dt和δt一般取0.95隨迭代次數(shù)做線性縮減.據(jù)上,一次迭代過程中只探索了隨機方向上的某一個位置.同時,根據(jù)公式(5)可知,每一次迭代的目標函數(shù)無論是較大還是較小,天牛的位置和步長都會進行更新,固定步長就會使得天牛容易陷入局部最優(yōu)位置無法跳出.
分析發(fā)現(xiàn),標準的正余弦優(yōu)化算法在維度較高時容易陷入局部最優(yōu)解并且收斂精度較低,針對這一問題,引入了全新的自適應(yīng)慣性權(quán)重w,w能夠隨著迭代次數(shù)的改變而動態(tài)影響算法所尋找的最優(yōu)位置,最大限度保證算法的收斂性;另外,考慮到標準正余弦優(yōu)化算法中線性遞減函數(shù)的固定遞減對算法性能的影響,提出了一種新的自適應(yīng)轉(zhuǎn)換參數(shù)模型,引入指數(shù)型函數(shù)和余弦函數(shù)對正余弦算法進行改進,提高搜索精度;為了盡可能的降低正余弦算法陷入局部最優(yōu)解的可能性,創(chuàng)新地將高運算效率的標準天牛須算法進行改進,將標準的固定步長改進為變步長并將其融入改進的正余弦算法中,通過改進天牛須算法的二次搜索尋優(yōu)來幫助正余弦跳出局部最優(yōu)解.
受蟻群優(yōu)化算法[5]的啟發(fā),在正余弦優(yōu)化算法的位置更新公式中引入動態(tài)自適應(yīng)權(quán)重w.在算法進行探索階段時,自適應(yīng)權(quán)重能有效減小當前最優(yōu)個體位置對全局搜索的影響,而隨著正余弦算法逐漸進入到開發(fā)局部搜索階段時,自適應(yīng)權(quán)重能隨著迭代次數(shù)逐步提升最優(yōu)個體位置的影響力,同時幫助其余個體盡快收斂到最優(yōu)個體位置.隨著正余弦優(yōu)化算法迭代次數(shù)t改變的自適應(yīng)慣性權(quán)重如式(6)所示:
w(t)=0.2cosπ2 ·1-tT
(6)
其中,T為最大迭代次數(shù),t為當前迭代次數(shù).在正余弦中引入自適應(yīng)慣性權(quán)重之后,隨著迭代次數(shù)的改變,每個位置上對下個尋優(yōu)位置的影響將不再是固定的,而是由一種非線性的規(guī)律變化,對該函數(shù)分析可以看出,前期在尋找最優(yōu)值中,權(quán)重較低,對下次更新位置影響較小,但是隨著迭代次數(shù)的增加,權(quán)重會逐漸變大,這樣之后的迭代位置變化范圍就會逐漸變小,能夠最大限度保證算法的收斂性.
r1參數(shù)對整個正余弦優(yōu)化算法的移動方向起著關(guān)鍵作用[26],但是傳統(tǒng)的線性遞減函數(shù)使得正余弦的搜索方式顯得很單一,每一次尋找都是按著固定的變值接近最優(yōu)值,這樣很大程度會陷入局部最優(yōu)解.為了進一步加強迭代后期局部搜索能力,用更加靈活的搜索方式尋找,引入動態(tài)變化的思想,將線性遞減函數(shù)r1變成指數(shù)型遞減函數(shù)[27],同時引入余弦函數(shù),提出了一種新的轉(zhuǎn)換參數(shù)模型,指數(shù)型函數(shù)由于其自身的單調(diào)性,能夠保證變化是單向的,余弦函數(shù)隨著迭代次數(shù)的增加,會非線性逐漸減小,反應(yīng)在指數(shù)函數(shù)上,r1參數(shù)就會隨著迭代次數(shù)的增加非線性減小,從而逐漸逼近最優(yōu)值,增強正余弦對未知區(qū)域的搜索能力,如式(7)所示:
r1=αecosπ ·tT+t
(7)
其中,α為一個常數(shù),本文中取0.05.
引入自適應(yīng)權(quán)重和指數(shù)型遞減函數(shù)之后,正余弦算法位置更新公式如式(8)所示:
Xt+1i=w(t)·Xti+r1×sin(r2)×|r3Ptj-Xti|,r4<0.5
w(t)·Xti+r1×cos(r2)×|r3Ptj-Xti|,r4≥0.5
(8)
為了增強正余弦的搜索能力和效率,改善SCA算法易陷入局部最優(yōu)、迭代效率低、搜索精度低等缺點,在改進正余弦算法中引入了具有高運行效率的天牛須搜索,同時為了規(guī)避標準天牛須算法自身參數(shù)簡單易找不到最優(yōu)解等情況,對天牛須搜索進行參數(shù)優(yōu)化.為了使天牛須搜索能夠更好的在正余弦上尋優(yōu),結(jié)合動態(tài)變化思想,將其搜索的固定步長改為變步長搜索[28],變化步長為公式(9):
δt=s1×s0s1TT+10t
(9)
其中,T為最大迭代次數(shù),s0和s1為常數(shù),本文取0.9和0.4,t為當前迭代次數(shù).經(jīng)過天牛須的二次搜索得到的值為Xt+1*.
改進的天牛須算法對改進正余弦優(yōu)化算法搜索出的最佳位置進行二次尋優(yōu),再在計算適應(yīng)度值的基礎(chǔ)上用貪婪策略判斷兩次位置最優(yōu)情況,得到更新的位置.
根據(jù)貪婪策略[29]來對搜索的值進行判斷,具體公式如式(10)所示:
Xt+1=Xt+1i,f(Xt+1i)≤f(Xt+1*) (10) 其中,f(X)為在位置x處求得的適應(yīng)度函數(shù),比較原正余弦位置和天牛須二次搜索位置的適應(yīng)度值,若二次搜索更優(yōu)則替換原位置[30],反之則不替換. 融合改進天牛須和正余弦的雙重搜索優(yōu)化算法的具體流程如圖3所示. 圖3 算法流程圖Fig.3 Algorithm flow chart BAS-SCA算法的實現(xiàn)步驟如下: 步驟1.初始化算法參數(shù),包含迭代次數(shù),搜索維度,以及種群規(guī)模; 步驟2.根據(jù)參數(shù)的限定范圍,隨機初始化種群,根據(jù)目標函數(shù)計算找出全局最優(yōu)值; 步驟3.計算自適應(yīng)權(quán)值和遞減參數(shù),通過公式(8)更新最優(yōu)個體位置及對應(yīng)的適應(yīng)度值; 步驟4.通過公式(5)和公式(9)對步驟3得到的最優(yōu)個體位置進行二次搜索尋優(yōu)更新,并計算適應(yīng)度值; 步驟5.判斷得到的位置是否超過步驟2設(shè)定的參數(shù)范圍,如果超過則輸出上一次未超過邊界的最優(yōu)解,;反之,則繼續(xù)向下進行; 步驟6.運用貪婪策略,通過公式(10)判斷最終的最優(yōu)個體位置,如果二次搜索后更優(yōu),則替換當前個體,反之不替換; 步驟7.判斷是否達到BAS-SCA的最大迭代次數(shù),若達到,則輸出最優(yōu)個體位置及最優(yōu)解;反之,繼續(xù)進入步驟3進行. 為了測試BAS-SCA算法的尋優(yōu)能力,參考標準正余弦優(yōu)化算法(Sine Cosine Algorithm,SCA)[8]、粒子群算法(Particle Swarm Optimization,PSO)[3]、基于變換函數(shù)與填充函數(shù)的模糊粒子群優(yōu)化算法[31]、基于自適應(yīng)搜索中心的骨干粒子群算法[32]中所選的測試函數(shù),選擇了14個選用率較高的基準函數(shù)進行測試,函數(shù)特性如表1所示,基準函數(shù)中包含單峰函數(shù)和多峰函數(shù),其中,f1-f6以及f11為單峰函數(shù),f7-f10以及f12-f14為多峰函數(shù),單峰函數(shù)可以評測算法的收斂精度和尋優(yōu)能力,多峰函數(shù)可以評測算法解決多維環(huán)境等復(fù)雜優(yōu)化問題下的尋優(yōu)能力.本文選取改進算法與標準SCA、粒子群算法(Particle Swarm Optimization,PSO),改進的拋物線函數(shù)正余弦算法(Parabolic Sine Cosine Algorithm,PSCA)[14]和改進的指數(shù)正余弦算法(Exponential Sine Cosine Algorithm,ESCA)[15]作為比較對象進行實驗.本文在正余弦算法的改進思路上,引入了指數(shù)函數(shù)和余弦函數(shù),為了證明是兩個函數(shù)的有效結(jié)合帶來了算法的提升,與改進的拋物線函數(shù)正余弦算法和改進的指數(shù)正余弦算法進行比對.另為了對比該算法與其他自然算法的性能,選擇了具有代表性的粒子群優(yōu)化算法作為對比,粒子群優(yōu)化算法自提出以來,便因其簡單易用以及高效性被廣泛研究改進,故本文選取了經(jīng)典粒子群優(yōu)化算法作為對比算法. 算法尋優(yōu)精度為實際尋得最優(yōu)解與理論最優(yōu)解之間的誤差絕對值,本文采用兩個評價指標[33]:尋優(yōu)精度的平均值(Ave)和標準差(Std),兩者的計算公式如式(11)和式(12): Ave=∑ti=1|f(X*)-f(Xopt)|T (11) Std=∑ti=1(f(X*)-Ave)2T (12) 式中,Xopt為理論最優(yōu)解,X*為每次算法得到的最優(yōu)個體位置,T為最大迭代次數(shù).尋優(yōu)精度的平均值是在指定循環(huán)次數(shù)下算法得到的值和理論最優(yōu)值差的絕對值的平均值,平均值越小,說明尋優(yōu)結(jié)果越好;尋優(yōu)精度標準差是實際最優(yōu)值與平均值之間的標準差,標準差越小,則說明算法整體的穩(wěn)定性越好. 在選取的14個基準測試函數(shù)中,函數(shù)的搜索區(qū)間及全局最優(yōu)值已在表1中列出.幾種算法的參數(shù)設(shè)置相同:個體規(guī)模設(shè)置Agents為30,最大迭代次數(shù)為500,每種算法都獨立運行50次,并且考慮到高維的測試環(huán)境,這里設(shè)置了Dimension=30和200兩種情況分別測試,所有的測試在Windows10操作系統(tǒng),Intel i5-10400,16GB內(nèi)存,MATLAB2020a仿真平臺上運行,通過統(tǒng)計得出優(yōu)化結(jié)果的平均值和標準差如表2所示. 表2給出了5種算法在14個標準測試函數(shù)下的尋優(yōu)指標對比,分析單峰函數(shù)可以看出,在維度為30的情況下,算法尋優(yōu)精度平均值和標準差上,標準正余弦算法都陷入了局部最優(yōu)解的情況,PSCA和ESCA雖然在結(jié)果上比SCA有一定程度的改善,但是兩者精度還是不高,對比之下,BAS-SCA算法在單峰函數(shù)尋優(yōu)上都好于實驗的其它算法.BAS-SCA算法在f1-f4函數(shù)中直接找到了全局最優(yōu)解0,精度達到100%;在函數(shù)f5和f11中,雖然沒能找到全局最優(yōu)解,但是其尋優(yōu)精度也是對比算法中最高的;在函數(shù)f6中,BAS-SCA算法雖然沒能比PSO算法好,但是相較于其他改進的SCA算法,其仍具有優(yōu)勢. 表1 標準測試函數(shù)Table 1 Benchmark test function 表2 算法尋優(yōu)指標對比Table 2 Comparison of optimization indexes 通過對比觀察測試函數(shù)f7-f10在表格中的結(jié)果,在多峰函數(shù)中,在尋優(yōu)精度和尋優(yōu)穩(wěn)定性上,BAS-SCA算法都遠遠好于其他算法,并且在f8-f10中直接找到了全局最優(yōu)解,這是其他對比算法都沒有達到的,他們都不同程度的陷入局部最優(yōu)解而得到較差的收斂精度,雖然BAS-SCA算法在多峰函數(shù)f7中沒有找到全局最優(yōu)解,但是其收斂精度也遠遠高于其他算法.在測試函數(shù)f12和f13中,PSO算法和BAS-SCA算法都能夠找到全局最優(yōu)解,并且有較好的穩(wěn)定性;在測試函數(shù)f14中,BAS-SCA也能實現(xiàn)較高的尋優(yōu)精度及穩(wěn)定性. 為了進一步測試BAS-SCA算法的高維尋優(yōu)性能,將搜索維度改為200,其他參數(shù)沒有改變,對算法重新進行實驗分析,從表2中可以看出,在維度增加的情況下,BAS-SCA仍能保持很好的搜索性能,單峰函數(shù)f1-f4,多峰函數(shù)f7-f10、f12和f13中,都能找到全局最優(yōu)解.在函數(shù)f6中,增加維度情況下,BAS-SCA算法超過了在30維度下性能優(yōu)于自己的PSO算法,得到了較高的收斂精度.對于函數(shù)f12和f13,雖然增加維度的情況下指數(shù)型正余弦優(yōu)化算法和拋物線型正余弦優(yōu)化算法都能夠在不同程度上找到全局最優(yōu)解,但是根據(jù)表2數(shù)據(jù),BAS-SCA的結(jié)果還是優(yōu)于兩者的. 為了能夠更好的反應(yīng)不同算法在不同測試函數(shù)下的收斂速度,在圖4中給出了函數(shù)f1-f14在指定維度為30下的收斂對比圖,從整體上看,BAS-SCA算法無論在收斂精度和收斂穩(wěn)定性上都能大大超過本次比較的現(xiàn)有算法,尤其是圖4(e)、圖4(h)、圖4(i)、圖4(j),BAS-SCA算法在一開始就以很快的收斂速度找到最優(yōu)解,如圖4(b)、圖4(g)、圖4(f)所示,可以發(fā)現(xiàn),雖然開始標準SCA也有很快的收斂速度,但是其很快陷入了局部最優(yōu)解并無法跳出,其余算法已經(jīng)陷入了局部最優(yōu)解,而得益于BAS-SCA算法的二次搜索,BAS-SCA在這幾個函數(shù)中表現(xiàn)很好,直接跳出了局部最優(yōu),找到了全局最優(yōu)解,圖4(a)、圖4(c)、圖4(d)、圖4(e)所示,雖然其余算法并沒有陷入局部最優(yōu),但是其收斂速度和收斂精度是完全比不上BAS-SCA的,BAS-SCA算法在運行一開始就展示出極好的收斂性能,在很短的迭代次數(shù)中就找到了全局最優(yōu)解.觀察圖4(l),雖然BAS-SCA在收斂精度上略差于PSO算法,但是根據(jù)表2的實驗結(jié)果,BAS-SCA仍可以找到最優(yōu)解,圖4(m)、圖4(n)也可看出BAS-SCA能得到優(yōu)于其他算法的結(jié)果. 圖4 具體的測試函數(shù)收斂對比圖Fig.4 Comparison chart of convergence of test function 為了更好的驗證改進算法的有效性,增加改進變步長搜索的天牛須優(yōu)化算法以及引入自適應(yīng)轉(zhuǎn)換參數(shù)正余弦優(yōu)化算法自比實驗,維度選取為30,最大迭代次數(shù)為500次,其它參數(shù)與原實驗設(shè)置相同,實驗結(jié)果如表3所示. 根據(jù)表3可知,改進的變步長搜索天牛須優(yōu)化算法在給定的測試函數(shù)中效果表現(xiàn)較差,BAS-SCA優(yōu)化算法在尋優(yōu)精度及尋優(yōu)穩(wěn)定性上都比引入自適應(yīng)轉(zhuǎn)換參數(shù)的正余弦優(yōu)化算法和改進的變步長搜索天牛須優(yōu)化算法好. 表3 改進優(yōu)化算法自比實驗Table 3 Self comparison experiment of improved optimization algorithm 針對標準正余弦優(yōu)化算法的搜索性能問題,本文創(chuàng)新性的將改進的天牛須搜索算法融合進改進的正余弦算法,提出了雙重搜索優(yōu)化算法BAS-SCA.該算法在正余弦中提出了一種新的自適應(yīng)轉(zhuǎn)換參數(shù),改變了傳統(tǒng)的線性遞減參數(shù)設(shè)置,此外在正余弦中引入了一個全新的自適應(yīng)慣性權(quán)重來保證算法后期的收斂性,此外,引入動態(tài)變化思想,將標準天牛須的固定步長改進為變步長搜索,改進的天牛須搜索再對改進正余弦進行二次搜索尋優(yōu),運用貪婪策略判斷最終位置信息,測試函數(shù)實驗以及對改進算法的自比實驗證明,BAS-SCA算法能夠很好的解決正余弦和天牛須兩者后期易陷入局部最優(yōu)解以及收斂精度較低等缺點,擁有很強的處理單峰以及多峰函數(shù)的能力,同時具備很好的尋優(yōu)穩(wěn)定性.
Xt+1*,f(Xt+1*)4.4 算法流程
5 算法性能測試
5.1 測試函數(shù)及性能指標
5.2 優(yōu)化算法的性能分析
6 總 結(jié)