廖列法,楊 紅
江西理工大學(xué) 信息工程學(xué)院,江西 贛州341000
元啟發(fā)式算法因其較好的靈活性、魯棒性及避免局部最優(yōu)的能力而廣受歡迎,常見的有粒子群優(yōu)化算法(PSO)[1]、人工蜂群優(yōu)化算法(ABC)[2]、果蠅優(yōu)化算法(FOA)[3]、遺傳算法(GA)[4]等,在許多實(shí)際工程領(lǐng)域的應(yīng)用中都有著舉足輕重的地位。人類對(duì)大自然生物的探索,受到其社會(huì)行為的啟發(fā),提出了多種智能優(yōu)化算法。劍橋大學(xué)學(xué)者Yang受螢火蟲閃爍以吸引異性求偶的行為的啟發(fā),提出了螢火蟲優(yōu)化算法(FA)[5],該算法依賴螢火蟲之間的吸引進(jìn)行移動(dòng);Mirjalili等受灰狼協(xié)作的捕食行為啟發(fā),提出了灰狼優(yōu)化算法(GWO)[6],該算法依賴灰狼之間的協(xié)作進(jìn)行優(yōu)化;Dorigo等受到螞蟻覓食過程的啟發(fā),提出了蟻群算法(ACO)[7-8],該算法依賴先前走過的螞蟻產(chǎn)生的信息素前進(jìn)。
Jiang和Li在2017年受到天牛覓食及尋偶行為的啟發(fā),提出了天牛須搜索算法(BAS)[9]。天牛在空氣中捕獲食物及潛在配偶的味道,根據(jù)天牛兩側(cè)天牛須檢測到的氣味濃度前進(jìn)。該算法復(fù)雜度低,且不需要知道梯度信息等就能實(shí)現(xiàn)優(yōu)化的目的。該算法與眾多新型及主流智能優(yōu)化算法相比也極具競爭性[10],與PSO算法相比,雖然二者都無法避免陷入局部極值,但BAS跳出的能力更強(qiáng),收斂速度也更快。GA算法有時(shí)需要二進(jìn)制編碼,計(jì)算量較大,BAS則不需要,運(yùn)行速度也遠(yuǎn)遠(yuǎn)快于GA。BAS算法需要的初始參數(shù)比FA算法更少,故而受參數(shù)敏感性的影響也更小,BAS核心代碼非常短,僅四行,易于實(shí)現(xiàn)且方便用任何語言編寫。而與蝙蝠算法(BA)及人工蜂群(ABC)相比,效率更高且復(fù)雜度極低。另外,由于迭代期間僅單個(gè)天牛,在時(shí)間和空間復(fù)雜度方面都比多數(shù)群體智能算法要低,效率也更高。
自BAS算法提出后,就被國內(nèi)外學(xué)者們廣泛研究和關(guān)注,從當(dāng)前對(duì)BAS算法的研究來看,該算法已被成功應(yīng)用于多個(gè)領(lǐng)域且一直處在增長階段,例如:機(jī)器人路徑規(guī)劃及其避障、PID參數(shù)整定、圖像增強(qiáng)、故障診斷、神經(jīng)網(wǎng)絡(luò)等。本文首先回顧了BAS算法的原理和基本步驟;然后對(duì)該算法的變種及其在各個(gè)領(lǐng)域的應(yīng)用做了一個(gè)全面的綜述,方便于其他學(xué)者快速了解BAS算法及其國內(nèi)外研究最新進(jìn)展與成果;最后對(duì)該算法進(jìn)行展望并進(jìn)一步擴(kuò)展其研究方向。
在尋找食物過程中,天牛并不知道食物的具體位置,它通過頭上的左右兩個(gè)觸角對(duì)周圍環(huán)境中氣味的濃度進(jìn)行捕獲。倘若天牛探測到左側(cè)觸角感知的濃度更大,便向左側(cè)前進(jìn);反之,則向右側(cè)前進(jìn)。通過這一簡單原理,天牛最終能有效地尋找到食物。
該算法用數(shù)學(xué)模型表示的尋優(yōu)步驟如下:
(1)天牛在任意位置時(shí),頭的朝向都是隨機(jī)的。在維度D中,天牛朝向向量表示并歸一化為:
(2)天牛左右須xleft、xright位置可用天牛質(zhì)心位置x m和兩須距離d m表示為:
(3)依據(jù)適應(yīng)度函數(shù)f(x)計(jì)算天牛兩側(cè)觸須的氣味濃度,即f(xleft)和f(xright)。為了模仿天牛探測機(jī)制,生成以下位置更新迭代模型:
式(3)中,δm為m時(shí)刻的搜索步長。
(4)天牛步長δ與兩須距離d的更新規(guī)則如下,當(dāng)然,也可以取一個(gè)特定的值,依實(shí)際情況而定。
式(4)中,d e和δe分別表示d和δ的遞減因子。
由于算法尋優(yōu)過程中,僅有單只天牛,并非種群,故而算法所需參數(shù)少,代碼簡單,計(jì)算量也遠(yuǎn)小于其他算法,復(fù)雜度低,但也因此而失去了種群多樣性,算法的單一性使得其易陷入局部極值。
雖然BAS算法在各領(lǐng)域優(yōu)化問題上表現(xiàn)出了良好的性能,但是該算法依然存在缺陷,例如算法收斂速度慢,在處理高維復(fù)雜問題上,精度低且易陷入局部最優(yōu),優(yōu)化效果不佳等。為了解決這些問題,學(xué)者們對(duì)算法不斷進(jìn)行完善和改進(jìn)。主要的改進(jìn)方法有以下幾類。
(1)Khan等[11]為了避免BAS算法陷入局部極小值,提出一種將自適應(yīng)矩估計(jì)(ADAM)與BAS算法結(jié)合的改進(jìn)算法(BAS-ADAM)。使用ADAM在算法每次迭代中調(diào)整每個(gè)維度的搜索步長,步長更新規(guī)則相關(guān)公式如下:
式中,xnew為自適應(yīng)調(diào)整步長后產(chǎn)生的新解,δ0為初始步長,δm(??m)為估計(jì)梯度值??m的函數(shù),y?m和e?m分別為m時(shí)刻的一階動(dòng)量y和二階動(dòng)量e偏差修正后的值,γm和βm分別表示m時(shí)刻一階和二階動(dòng)量衰減因子。不過,由于算法用了k個(gè)搜索粒子,時(shí)間復(fù)雜度有所增加。另外,Nesterov自適應(yīng)矩估計(jì)(Nadam)抑制震蕩的效果比Adam好,也可以考慮用Nadam對(duì)算法改進(jìn),進(jìn)一步提升算法穩(wěn)定性。
(2)Wang等[12]為了解決算法過度依賴于甲蟲的隨機(jī)方向和每次迭代都要更新天牛位置、步長的問題,提出了一種反饋步長更新策略和BAS算法結(jié)合的天牛群搜索算法(BSAS)。BSAS算法引入了概率常數(shù)Pδ和隨機(jī)數(shù)rand(1)的概念,Pδ用來度量隨機(jī)方向?qū)λ惴ǖ挠绊?,將隨機(jī)數(shù)與Pδ比較,來決定是否需要更新步長。若rand(1)>Pδ,表示大多數(shù)情況下,k只天牛在當(dāng)前步長無法找到更小的最優(yōu)值,則更新步長與兩須間距;反之,保持步長、兩須間距不變。兩須間距與步長更新規(guī)則如下:
式(9)中,d0和δ0分別為左右須初始間距和初始步長。該改進(jìn)方法增強(qiáng)了處理高維問題的能力,卻忽視了種群對(duì)算法性能的影響,可以考慮用混沌映射初始化種群或拉丁超立方抽樣(LHS)選取更優(yōu)的種群。
(3)徐鑫等[13]為了提高BAS算法精度和穩(wěn)定性,加快收斂速度,提出來一種引入精英個(gè)體和包圍機(jī)制的改進(jìn)算法。算法利用包圍機(jī)制減少參數(shù),讓步長在迭代過程中自適應(yīng)地更新,利用精英個(gè)體使得天牛能更好地尋優(yōu)。步長調(diào)整公式如下:
(1)鄭源等[14]把混沌遷移概念引入BAS算法。首先,用LHS選取多樣性好的種群,迭代時(shí)期,天牛群依賴最優(yōu)天牛的相似度進(jìn)行混沌遷移,最后為使天牛群在更新時(shí)高效的信息交互,采用社會(huì)學(xué)習(xí)策略。相關(guān)公式如下:
式(12)中,x s為混沌序列的第s個(gè)變量,bmax和bmin為序列上下邊界。
引入社會(huì)學(xué)習(xí)的天牛群位置、速度更新公式為:
上式中,P i為學(xué)習(xí)概率,為m+1時(shí)刻天牛i的第j維的位置,c1,c2,c3∈[0,1],為m時(shí)刻天牛群在j維位置的平均值,ε為影響因子。算法引入社會(huì)學(xué)習(xí)策略,讓天牛群中差的個(gè)體隨機(jī)向比自己好的個(gè)體學(xué)習(xí),每次都可向多個(gè)個(gè)體學(xué)習(xí),保證了種群之間的信息交互,從而在一定概率上增加了算法跳出局部極值的可能。SLBSA算法雖然在成功率、收斂速度和精度都有一定提升,但實(shí)驗(yàn)表明,在所選的基準(zhǔn)函數(shù)中,算法均未收斂到0。
(2)趙玉強(qiáng)等[15]提出一類帶群體學(xué)習(xí)和競爭機(jī)制的改進(jìn)BAS算法(LCCBAS),以解決BAS算法多維尋優(yōu)收斂慢的缺陷。LCCBAS算法用混沌序列初始化天牛群,天牛群之間實(shí)現(xiàn)信息傳遞與反饋,位置更新不再僅限于自身經(jīng)驗(yàn)判斷,位置更新規(guī)則及相關(guān)公式如下:
式(16)由三部分組成,第一部分是天牛上一時(shí)刻的位置,第二部分為個(gè)體認(rèn)知,δm為認(rèn)知因子,按公式(17)計(jì)算,第三部分為群體經(jīng)驗(yàn),c為學(xué)習(xí)因子,c∈[1,2]。(17)式中,f、f a、fmax、fmin分別為當(dāng)前天牛適應(yīng)度、最大群體適應(yīng)度、最小群體適應(yīng)度。
式(18)用于計(jì)算聚集度,N為天牛群個(gè)數(shù),為m時(shí)刻天牛i和j的相似度。算法實(shí)驗(yàn)中選取得到最高維度僅為50,沒有解決算法在高維優(yōu)化上精度不高的缺陷,而且實(shí)驗(yàn)結(jié)果表明,算法在Ackley函數(shù)上的收斂效果與對(duì)比算法相差并不大。
2.3.1 與粒子群算法PSO結(jié)合
Lin等[16]提出將BAS算法結(jié)合PSO算法的一種混合算法(BAS-PSO),用標(biāo)準(zhǔn)PSO更新種群中每個(gè)粒子位置和速度,以保留PSO側(cè)重全局搜索的優(yōu)點(diǎn),將每個(gè)粒子看作是一只獨(dú)立的天牛,用BAS算法進(jìn)行局部搜索。利用四個(gè)基準(zhǔn)函數(shù)測試,實(shí)驗(yàn)表明,提升了局部、全局搜索性能,尋優(yōu)效果優(yōu)于BAS和PSO算法,BAS-PSO選用群體機(jī)制,且需要多次計(jì)算適應(yīng)度值,后期也并未對(duì)算法進(jìn)行減小復(fù)雜度的改進(jìn),使得該算法的尋優(yōu)速度有所下降。Li等[17]將該算法用來解決電力系統(tǒng)的經(jīng)濟(jì)負(fù)載分配(ELD)問題,優(yōu)化效果比混沌迭代、遺傳和粒子群算法更好。Wang等[18]發(fā)現(xiàn)BAS算法過于依賴個(gè)體的初始位置,借鑒PSO的優(yōu)化原理,將天牛個(gè)體擴(kuò)展到一個(gè)種群的天牛群優(yōu)化算法(BSO),以提高算法的優(yōu)化速度、準(zhǔn)確性和穩(wěn)定性。BSO與PSO、GA、GOA算法相比,有比較好的性能,最后,將BSO用于壓力容器和Himmelblau工程設(shè)計(jì)問題,穩(wěn)定性和收斂速度較好,該算法的優(yōu)化效果比其他算法更好。陳婷婷等[19]把BAS和PSO算法有效結(jié)合,用BAS構(gòu)建粒子新的更新規(guī)則,將改進(jìn)算法應(yīng)用于AI概念股投資組合,計(jì)算得出的風(fēng)險(xiǎn)值更低,搜索能力更強(qiáng)。Song[20]將BAS與PSO算法結(jié)合,用天牛位置更新公式更新粒子位置,將天牛搜索機(jī)制用于群體搜索,改進(jìn)算法應(yīng)用于無線傳感器網(wǎng)絡(luò)覆蓋,仿真結(jié)果表明比標(biāo)準(zhǔn)PSO算法更優(yōu),覆蓋范圍更廣。Xie等[21]將PSO算法粒子更新思想引入BAS算法中,將BAS的左右兩須的歷史最優(yōu)值用于更新天牛新位置,改進(jìn)了BAS算法的搜索策略,以解決船舶避碰問題,實(shí)驗(yàn)表明,在KVLCC2船舶模型和多船模型上都能有效避碰,不過,仿真的預(yù)測范圍對(duì)實(shí)驗(yàn)也存在影響,可考慮設(shè)置不同預(yù)測范圍進(jìn)行實(shí)驗(yàn)。簡琤峰等[22]提出天牛須粒子群算法(BAPSO),將天牛個(gè)體擴(kuò)展到一個(gè)種群,同時(shí)將二階震蕩機(jī)制、動(dòng)態(tài)因子用于改進(jìn)該算法,在保障用戶體驗(yàn)質(zhì)量(QoE)的同時(shí),應(yīng)用于求解邊緣計(jì)算下的資源協(xié)同和調(diào)度,實(shí)驗(yàn)表明,BAPSO能在符合條件下找到請求執(zhí)行時(shí)間盡可能小的解,具有實(shí)用性。
2.3.2 與花朵授粉算法FPA結(jié)合
Lei等[23]提出把BAS算法與FPA算法結(jié)合的優(yōu)化算法(BFPA),全局搜索時(shí)期,用蝴蝶授粉策略提高搜索性能和收斂速度,局部搜索時(shí)期,用BAS算法跳出局部極值,結(jié)果表明,比其他花授粉改進(jìn)算法性能好,但該算法在Schwefel 2.21上與PFA效果差不多,優(yōu)化不顯著。邵良杉等[24]提出一種把天牛須搜索引入FPA算法的改進(jìn)算法(BASFPA),該算法在全局搜索時(shí)期使用天牛須搜索,局部搜索時(shí)期采用變異策略,既加快了收斂速度,又使算法一定程度上提升跳出局部極值的能力,將算法用基準(zhǔn)函數(shù)測試,結(jié)果表明,BASFPA在低、高維的精度和尋優(yōu)速度都比其他算法好。韓瑞達(dá)[25]提出天牛須搜索、變異策略、FPA算法結(jié)合的改進(jìn)算法(BMFPA),由于FPA算法搜索時(shí)沒有用到全局最優(yōu)解,對(duì)有效信息利用不充分,提出加入全局最優(yōu)的變異策略,并引入小概率突變,且對(duì)最優(yōu)個(gè)體突變無效,以此增加種群多樣性,避免進(jìn)入局部最優(yōu)。將算法在低維、高維、固定精度情況下進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果表明,算法在尋優(yōu)速度和精度上優(yōu)于其他對(duì)比算法,但該算法只在局部搜索時(shí)引入小概率變異,變異條件比較簡單。
2.3.3 與遺傳算法GA結(jié)合
馮曉東等[26]提出一種GA算法與BAS搜索結(jié)合的雜交算法(BAGA),此算法引入天牛須搜索算子加強(qiáng)算法局部尋優(yōu)性能,通過數(shù)據(jù)驅(qū)動(dòng)降低雜交后算法的運(yùn)算量,在桁架優(yōu)化中表現(xiàn)出了良好的準(zhǔn)確性,算法優(yōu)化的成功率有所提升,但桁架用鋼總量并未減少,也就是說算法并未對(duì)桁架結(jié)構(gòu)進(jìn)行更好的優(yōu)化。趙玉強(qiáng)等[27]考慮到BAS和GA算法的優(yōu)缺點(diǎn),提出兩者的混合算法(BASGA),先用多向感知模型和探路反饋改進(jìn)BAS算法,將其加入到自適應(yīng)交叉、變異的GA中。算法的交叉算子及交叉、變異概率調(diào)整種群豐富度。迭代早期,交叉概率大,產(chǎn)生的新個(gè)體也多,種群豐富度得以保證。為避免后期種群同類化,選取10%的個(gè)體參與BAS搜索也有效保留了種群多樣性。改進(jìn)算法很好地克服了BAS、GA算法各自的缺陷,但一定程度上提高了時(shí)間復(fù)雜度。邱彬等[28]把BAS與改進(jìn)GA算法結(jié)合,構(gòu)造合適的適應(yīng)度函數(shù)以及開關(guān)函數(shù),利用BAS搜索初始化種群,對(duì)IEEE33節(jié)點(diǎn)配電網(wǎng)模型仿真,在單重、多重故障和信息畸變情況下,算法都能100%精確找到故障位置,容錯(cuò)性好。
2.3.4 與人工蜂群算法ABC結(jié)合
Zhang等[29]受ABC算法的啟發(fā),提出了多任務(wù)甲蟲天線群算法(MBAS),此算法借鑒ABC的蜂群結(jié)構(gòu),將k維空間的天牛群按一定比例分為搜索者、追隨者和探索者三類。搜索者在可行解集內(nèi)找到最優(yōu)解并用BAS算法更新其位置;追隨者跟隨部分搜索者,搜索當(dāng)前全局最優(yōu)周圍的潛在解;探索者為防止陷入局部最優(yōu),以特定的步長隨機(jī)移動(dòng)。將算法應(yīng)用于極限學(xué)習(xí)機(jī)ELM,結(jié)果表明,極大程度提升了穩(wěn)定性和泛化能力。由于算法為了增加種群多樣性,擴(kuò)展成了天牛群,而每只天牛尋優(yōu)過程中需要計(jì)算三次適應(yīng)度值,這很大程度上增加了算法的計(jì)算量和計(jì)算時(shí)間。Cheng等[30]提出了一種改進(jìn)的ABC算法(BAS-ABC),從天牛的搜索過程中確定蜜蜂前進(jìn)的方向,提高算法效率,將BAS-ABC、ABC、PSO算法在基準(zhǔn)函數(shù)上優(yōu)化效果進(jìn)行比較,結(jié)果表明,BAS-ABC算法有更高的精度和搜索速度。
2.3.5 與灰狼算法GWO結(jié)合
Fan等[31]針對(duì)灰狼多樣性不足帶來的反復(fù)停滯和狼群社會(huì)等級(jí)導(dǎo)致陷入局部極值的可能,提出BAS算法與GWO算法結(jié)合,將天牛天線策略引入灰狼算法的改進(jìn)算法(BGWO)。算法中社會(huì)等級(jí)首層是領(lǐng)頭狼,它負(fù)責(zé)作出行動(dòng)決策,其他狼服從命令。狩獵過程中,領(lǐng)頭狼所處的位置就極為重要,類似于BAS算法中的天牛,BGWO算法讓領(lǐng)頭狼獲得聽覺,增加了其對(duì)獵物判斷的條件,使其根據(jù)左右耳的聽覺判斷獵物距離,并通過雙耳不同位置的聲音決定是否更新狼群位置。用23個(gè)基準(zhǔn)函數(shù)和壓力容器、焊接梁、懸臂梁、拉伸/壓縮彈簧設(shè)計(jì)四個(gè)工程問題進(jìn)行測試,實(shí)驗(yàn)表明,GWO算法有更快搜索速度和更好的魯棒性。
2.3.6 與蟻群算法ACO結(jié)合
Zhang等[32]提出了一種新的天牛群體優(yōu)化算法(BCO),該算法引入BAS算法和集群智能的ACO算法模式,每只螞蟻的狀態(tài)更新不再是按照原來的概率機(jī)制,而是采用一個(gè)隨機(jī)方向,并將單體搜索與群體機(jī)制進(jìn)行有效平衡。BCO算法在解決旅行商問題上,能有效搜索到與ACO算法差不多的最優(yōu)路徑,雖然都是群體算法,但BCO尋優(yōu)速度比ACO快;二次分配問題上,BCO優(yōu)化結(jié)果比ACO更??;無人機(jī)路徑規(guī)劃問題上,算法搜索廣度和效率有所提升,具有較好的實(shí)時(shí)性,但由于算法的不確定性,無法衡量可行解與最優(yōu)解的偏差。
2.3.7 與模擬退火算法SA結(jié)合
盧光輝等[33]提出一種改進(jìn)的BAS算法(IBAS),將SA算法中的蒙特卡洛法則引入BAS算法,以解決分布式電源(DG)選址定容規(guī)劃,結(jié)果表明,IBAS算法收斂快且具有實(shí)用性,但該算法在DG選址定容規(guī)劃的優(yōu)化精度比PSO略差。周田江等[34]提出SA與BAS融合的混合算法(SABAS),引入自適應(yīng)因子加快尋優(yōu)收斂,融合SA算法跳出局部最優(yōu),用六個(gè)基準(zhǔn)函數(shù)對(duì)算法進(jìn)行測試并與BAS、BSAS、SA算法比較,實(shí)驗(yàn)表明,改進(jìn)算法在多維函數(shù)上尋優(yōu)能力好。但算法跳出局部最優(yōu)具有概率性,可能導(dǎo)致算法不穩(wěn)定。汪玉鳳等[35]提出采用變步長的BAS算法結(jié)合SA算法的改進(jìn)算法(SABAS),在更新最優(yōu)適應(yīng)度值階段加入Metropolis準(zhǔn)則,設(shè)計(jì)最大功率點(diǎn)追蹤(MPPT)控制方法,該方法追蹤效果穩(wěn)定,但在單峰靜態(tài)條件時(shí),SABAS方法比BAS慢一些。
為更直觀地展現(xiàn)BAS算法與其他智能優(yōu)化算法結(jié)合的影響,對(duì)改進(jìn)后的混合算法的改進(jìn)機(jī)制、優(yōu)缺點(diǎn)及其適用場景進(jìn)行了匯總,如表1所示。
2.4.1 與二次插值結(jié)合
廖列法等[36]將二次插值引入BAS算法,提出了一種新的BAS算法(QIBAS),此算法利用天牛每次迭代時(shí)的左右兩觸角的位置作為插值區(qū)間,構(gòu)造與目標(biāo)函數(shù)值類似的二次多項(xiàng)式,以此求得區(qū)間最優(yōu)解,將其與全局最優(yōu)解比較,取更優(yōu)賦給全局最優(yōu),反之不更新。該方法用二次插值增強(qiáng)了算法的局部搜索性能,從而避免局部最優(yōu)。將算法取多個(gè)維度在單峰、多峰函數(shù)上進(jìn)行測試,實(shí)驗(yàn)結(jié)果表明,算法在精度和速度方面有極大提升。QIBAS算法在高維上有極好的優(yōu)化效果,但缺少對(duì)該算法的實(shí)際應(yīng)用,不能充分證明算法的實(shí)用性。
2.4.2 與Levy飛行和自適應(yīng)策略結(jié)合
Xu等[37]提出基于Levy飛行和自適應(yīng)策略的BAS算法(LABAS)。用精英個(gè)體更新種群信息,對(duì)初始種群、精英個(gè)體采取廣義對(duì)立學(xué)習(xí)策略,搜索階段引入Levy飛行,步長自適應(yīng)更新。Levy飛行可以最大程度地增加搜索空間效率,其特點(diǎn)是頻繁對(duì)短距離進(jìn)行局部搜索,偶爾大范圍的跳躍,大幅度改變運(yùn)動(dòng)方向,以避免算法得到局部最優(yōu)。LABAS算法在10個(gè)基準(zhǔn)函數(shù)上測試并與其他6種算法比較,結(jié)果表明,LABAS算法尋優(yōu)精度、速度和穩(wěn)定性方面都更勝于6種對(duì)比算法。雖然LABAS算法在大部分基準(zhǔn)函數(shù)上都表現(xiàn)出了優(yōu)于原BAS算法的性能,但在Griewank函數(shù)上,只能偶爾搜索到0,存在不穩(wěn)定的問題,其他函數(shù)上精度都有一定程度提升。同時(shí),算法目前并不適用于多目標(biāo)和離散化優(yōu)化問題。BAS算法更多改進(jìn)策略可參考文獻(xiàn)[38-39]。
表1 BAS混合算法優(yōu)缺點(diǎn)及其應(yīng)用匯總
將算法改進(jìn)搜索步長、引入混沌概念及其他策略的改進(jìn)機(jī)制、改進(jìn)后算法優(yōu)缺點(diǎn)及適用場景進(jìn)行匯總,如表2所示。
Xie等[40]將BAS算法結(jié)合PID控制器,調(diào)節(jié)IGBT的導(dǎo)通時(shí)間和順序,實(shí)時(shí)調(diào)整電磁力的方向和大小,BAS+PID應(yīng)用于升降電磁鐵的系統(tǒng),電流超調(diào)量小,響應(yīng)快;Zhou等[41]也將BAS算法與PID結(jié)合,BAS-PID實(shí)現(xiàn)無人帆船航向控制,具有更高的控制穩(wěn)定性;Wang等[42-43]引入BAS算法調(diào)整PID參數(shù),解決控制參數(shù)調(diào)整難等問題,用船舶的MMG模型進(jìn)行仿真,實(shí)時(shí)獲取最優(yōu)船舶航向,比手動(dòng)調(diào)整精度更高更快;Fan等[44]將BAS與PID結(jié)合的復(fù)合PID,用BAS調(diào)整PID參數(shù),抑制干擾信號(hào),應(yīng)用于電液伺服系統(tǒng),極大增強(qiáng)了系統(tǒng)的性能,能夠有效滿足系統(tǒng)控制需求;山石姣等[45]將BAS算法與蝙蝠算法融合,整定PID參數(shù),與BAS算法相較,穩(wěn)定性更高,響應(yīng)更快;吳強(qiáng)等[46]則將BAS算法融合進(jìn)PSO算法后,再進(jìn)行PID參數(shù)整定,控制器各項(xiàng)指標(biāo)都得到了提升;劉云飛等[47]和金愛娟等[48]也用BAS優(yōu)化PID參數(shù)。
譚碧飛等[49]結(jié)合協(xié)同進(jìn)化框架和PSO思想改進(jìn)BAS算法,用中國某微網(wǎng)系統(tǒng)進(jìn)行仿真,改進(jìn)后算法收斂速度和穩(wěn)定性更佳;Li等[50]用BAS算法分別解決互補(bǔ)系統(tǒng)和等效負(fù)荷中波動(dòng)性最小的調(diào)度模型,降低太陽能、風(fēng)能對(duì)電網(wǎng)運(yùn)行的影響;Zhu等[51]用BAS算法來解決運(yùn)行成本和污染處理成本最小的兩個(gè)多目標(biāo)優(yōu)化模型,算法在仿真中表現(xiàn)出了良好的可行性;Cao等[52]先用變分模式分解技術(shù)對(duì)初始荷載數(shù)據(jù)進(jìn)行處理,然后將天牛群優(yōu)化算法用于獲得ELM的最優(yōu)輸入權(quán)重和隱藏層的閾值,建立預(yù)測模型,結(jié)果表明準(zhǔn)確性比其他方法高。
鄒東堯等[53]將BAS算法用于室內(nèi)定位,先用測距技術(shù)得到錨節(jié)點(diǎn)和未知節(jié)點(diǎn)的距離,并用卡爾曼濾波對(duì)數(shù)據(jù)預(yù)處理,然后用BAS算法定位未知節(jié)點(diǎn)的具體坐標(biāo),與GA和PSO算法相比,定位效率明顯提高;鄒東堯等[54]隨后又提出一種測距定位方法,引入BAS算法優(yōu)化BP網(wǎng)絡(luò)進(jìn)行擬合,獲得測距模型并得到距離值,最后用極大似然估計(jì)法求得所需坐標(biāo);劉影等[55]也將BAS算法解決室內(nèi)定位問題,首先擬合測量的接受信號(hào)強(qiáng)度值,得到其傳播模型,計(jì)算出錨節(jié)點(diǎn)和未知節(jié)點(diǎn)的距離,最后使用BAS算法定位未知節(jié)點(diǎn);Jiang等[56]用天牛群算法對(duì)風(fēng)力渦輪機(jī)損傷部位定位,用松動(dòng)的螺栓進(jìn)行測試,算法準(zhǔn)確定位到了結(jié)構(gòu)損傷部位。
王付宇等[57]用BAS算法優(yōu)化BP網(wǎng)絡(luò),選用一定數(shù)量的裝配式建筑對(duì)其投資估算,BAS-BP網(wǎng)絡(luò)精確度和穩(wěn)定性比BP網(wǎng)絡(luò)估算的更高;Katsikis等[58]將懲罰函數(shù)加入到BAS算法,以解決時(shí)變最小成本投資組合保險(xiǎn)(TV-MCPITC)問題,結(jié)果表明,在數(shù)值模擬和實(shí)際場景中都是有效的。
表2 BAS改進(jìn)算法優(yōu)缺點(diǎn)及其應(yīng)用匯總
徐佑宇等[59]先選取候選簇首,然后用BAS優(yōu)化候選簇首,以獲得最優(yōu)簇首集合,提出的算法用于無線傳感器網(wǎng)絡(luò)(WSN)檢測,網(wǎng)絡(luò)生命周期顯著延長;Yin等[60]先對(duì)BAS進(jìn)行改進(jìn),將固定的天牛觸須長度和步長調(diào)整為可變的,并對(duì)迭代過程的值都離散化,最后用改進(jìn)的BAS算法搜索最優(yōu)服務(wù)功能鏈映射方案,算法在網(wǎng)絡(luò)延遲方面展現(xiàn)了較好的性能,且降低了資源消耗;Li等[61]首先對(duì)BAS算法進(jìn)行改進(jìn),將其與GA算法相結(jié)合,再引入合同網(wǎng)協(xié)議,任務(wù)節(jié)點(diǎn)根據(jù)改進(jìn)算法優(yōu)化得到的最優(yōu)方案劃分為多個(gè)子任務(wù),并將子任務(wù)分配給霧節(jié)點(diǎn),以解決霧計(jì)算網(wǎng)絡(luò)任務(wù)卸載問題。
Wang等[62]將BAS引入SVM,提出一種能診斷滾動(dòng)軸承故障的方法,先用多尺度排列熵對(duì)滾動(dòng)軸承進(jìn)行特征提取,接著提出馬氏半監(jiān)督流形學(xué)習(xí)算法,對(duì)特征集降維,最后處理過的特征集輸入被BAS優(yōu)化的SVM中,用于識(shí)別滾動(dòng)軸承的狀態(tài);方濤等[63]用BAS算法優(yōu)化SVM的懲罰因子及核函數(shù)參數(shù),讓BAS-SVM診斷變壓器繞組是否故障;Sun等[64]則是用BAS算法優(yōu)化SVM的超參數(shù),得到最優(yōu)超參數(shù),建立的SVM-BAS模型能有效地預(yù)測煤混凝土的楊氏模量。
馬吉明等[65]將混沌擾動(dòng)引入BAS算法對(duì)其進(jìn)行改進(jìn),將迭代分為擾動(dòng)和原始搜索兩部分,隨后,改進(jìn)的BAS對(duì)圖像進(jìn)行增強(qiáng),結(jié)果表明圖像更清晰,層次更豐富;Wang等[66]用自適應(yīng)因子對(duì)BAS進(jìn)行改進(jìn),用改進(jìn)算法優(yōu)化神經(jīng)網(wǎng)絡(luò)初始的閾值,應(yīng)用于人臉分類,該方法所需的訓(xùn)練時(shí)間短,準(zhǔn)確性、穩(wěn)定性高;肖振久等[67]提出一種零水印算法,用BAS算法自適應(yīng)搜索最優(yōu)的最抗攻擊縮放比例參數(shù),用以提取圖像中的水?。恍ふ窬玫萚68]又將零水印算法進(jìn)行改進(jìn),在原有基礎(chǔ)上引入分塊非負(fù)矩陣分解,實(shí)驗(yàn)表明該算法降低了虛警率,增強(qiáng)了魯棒性;李桃等[69]把二維灰色Ostu算法和BAS算法結(jié)合,用BAS算法更快搜索到分割閾值并有效分割圖像,該算法與基于遺傳的分割算法相比,能更快分割圖像,分割效果也更優(yōu);唐艷等[70]和Jiang等[71]也將BAS算法用于圖像處理。
Cai等[72]用BAS算法找到最優(yōu)值替換Elman神經(jīng)網(wǎng)絡(luò)中的初始權(quán)重及閾值,構(gòu)建BAS-Elman模型,將該模型與GA-Elman模型及其他模型相比較,該模型精度更高,可用于隧道工程爆破振動(dòng)速度的預(yù)測;Huang等[73]則用logsig函數(shù)來改變步長變化系數(shù),改進(jìn)BAS算法,并用于短期電力負(fù)荷的預(yù)測,結(jié)果表明,改進(jìn)后的BASElman模型比BAS-Elman運(yùn)行時(shí)間更短,預(yù)測更精準(zhǔn);任乾華等[74]用BAS算法對(duì)Spiking神經(jīng)網(wǎng)絡(luò)的突觸延時(shí)和連接權(quán)重進(jìn)行初始化,構(gòu)建BAS-SNN模型,用于串?dāng)_電壓預(yù)測,與PSO-SNN模型相比,BAS-SNN精度更高且魯棒性更強(qiáng);Wu等[75]將BAS算法對(duì)新型神經(jīng)網(wǎng)絡(luò)分類器NNC隱藏層和輸出層之間的權(quán)重進(jìn)行優(yōu)化,提升了計(jì)算速度和預(yù)測精度;王甜甜等[76]用BAS算法搜索BP神經(jīng)網(wǎng)絡(luò)中的初始權(quán)重及閾值并用于預(yù)測風(fēng)暴潮災(zāi)害帶來的損失,BAS-BP模型尋優(yōu)速度和精度明顯提高;更多BAS算法優(yōu)化神經(jīng)網(wǎng)絡(luò)在各個(gè)領(lǐng)域的應(yīng)用可參考文獻(xiàn)[77-79]。
Lin等[80]用BAS算法解決機(jī)器人的路徑規(guī)劃問題,判斷天牛的位置和行進(jìn)軌跡在不在有效區(qū)域,以此決定機(jī)器人要不要避障,將BAS算法與快速擴(kuò)展隨機(jī)樹算法RRT相比,BAS算法最優(yōu)路徑搜索能力和避障能力更強(qiáng);Zhang等[81]將BAS算法和GA算法結(jié)合,對(duì)天牛群的每個(gè)個(gè)體加入了交叉、變異操作,提出的新算法BAS-GA用于焊接機(jī)器人的路徑規(guī)化,結(jié)果表明實(shí)用性較強(qiáng);王雨露等[82]通過改變步長和天牛兩須間距改進(jìn)BAS算法,用于自動(dòng)引導(dǎo)小車AGV的路徑規(guī)劃,結(jié)果表明,算法在復(fù)雜環(huán)境下也能很快地找到最優(yōu)路徑;Wu等[83]將回退機(jī)制引入BAS算法,天牛在搜索過程中進(jìn)入死胡同時(shí),則回退一段距離,再重新搜索,對(duì)移動(dòng)機(jī)器人規(guī)劃路徑以解決發(fā)生碰撞的問題,實(shí)驗(yàn)表明,算法具有有效性且時(shí)間復(fù)雜度低等優(yōu)點(diǎn);Song等[84]用BAS算法優(yōu)化人工勢場法中的引力和排斥增益系數(shù),應(yīng)用于高速旋翼無人機(jī)的實(shí)時(shí)軌跡規(guī)劃,該算法能更快更安全地到達(dá)目的地;Zhou等[85]和Wang等[86]也將BAS算法用于機(jī)器人路徑規(guī)劃。
Yang等[87]用二進(jìn)制編碼來表示天牛初始位置,增加變異、交叉、吞噬和淘汰作用,以松花江特大橋進(jìn)行仿真實(shí)驗(yàn),結(jié)果表明,算法全局尋優(yōu)能力更好,收斂速度更快,適用于大型橋梁傳感器位置的布置;Wang等[88]將變步長的BAS算法用于評(píng)定空間直線度;Miao等[89]提出三個(gè)帶或不帶偏置的能效優(yōu)化問題并轉(zhuǎn)化為凸優(yōu)化問題,再引入不同步長、搜索策略和目標(biāo)函數(shù)的變體BAS算法解決它,結(jié)果表明,在帶偏置噪聲的帶式輸送機(jī)上能效優(yōu)化非常有效;孔慧華等[90]將BAS算法引入全變分最小化過程,從梯度下降或BAS算法優(yōu)化的最優(yōu)方向中任意選擇一種對(duì)圖像更新,將改進(jìn)算法應(yīng)用于CT內(nèi)重建,實(shí)驗(yàn)結(jié)果表明,重建效果比一般方法效果更好;Li等[91]提出改進(jìn)BAS算法,將一只天牛擴(kuò)展為一群,并根據(jù)天牛離最優(yōu)值的遠(yuǎn)近劃分區(qū)域,實(shí)行不同的更新規(guī)則,將該算法應(yīng)用于三軸磁力計(jì)的校對(duì);更多有關(guān)BAS算法的應(yīng)用研究可參考文獻(xiàn)[92-95]。
BAS算法作為一種提出時(shí)間不長的智能算法,在提出以來受到了眾多海內(nèi)外學(xué)者的廣泛研究,由于研究還只是初期階段,不夠深入,還存在許多未解決的問題,算法的理論、改進(jìn)及其應(yīng)用研究都有很大前景,BAS算法未來的研究重點(diǎn)可以從以下幾點(diǎn)考慮。
(1)BAS理論研究。BAS算法提出時(shí)間較短,理論研究相對(duì)較少。由于參數(shù)設(shè)置較敏感,分析算法的不同參數(shù)對(duì)其性能的影響,增強(qiáng)算法理論依據(jù)是非常具有研究意義的。例如:步長及天牛兩須間距等參數(shù)對(duì)算法迭代過程影響較大,可以從理論上進(jìn)行分析,設(shè)定合適的參數(shù)規(guī)則或自動(dòng)化設(shè)置參數(shù)。對(duì)BAS算法的全局和局部搜索性能進(jìn)行理論分析,探討尋優(yōu)機(jī)制對(duì)算法的影響,為算法改進(jìn)提供正確理論指導(dǎo);另外,對(duì)BAS算法的收斂性、穩(wěn)定性、復(fù)雜度等其他特性,及影響這些性能的重要因素也有必要進(jìn)行深入的分析,為算法提供理論支撐。
(2)BAS改進(jìn)研究。根據(jù)BAS目前還存在的一些不足進(jìn)行深層次的研究。比如為解決易陷入局部極值等問題,本文已提到過的引入精英個(gè)體策略、社會(huì)學(xué)習(xí)策略、小概率突變及調(diào)節(jié)混合算法中GA算法的交叉、變異概率等,都是從增加種群多樣性為出發(fā)點(diǎn)進(jìn)行改進(jìn),避免算法得到局部極值。增加種群豐富度、多樣性,以此增大群體間有效信息的交互是解決此類問題用的最多的一種方法,而采用何種策略對(duì)算法信息進(jìn)行高效交互也是一個(gè)值得研究的問題。當(dāng)然,也有對(duì)搜索過程中跳出局部最優(yōu)的方法,例如引入二次插值,加上Levy飛行,或者將種群進(jìn)行分組后采取不同搜索策略。二次插值以增強(qiáng)局部搜索得以跳出局部極值,而Levy飛行則是利用該策略的自身搜索特點(diǎn)。綜上,為避免局部最優(yōu),可以考慮用增加種群豐富度,增強(qiáng)局部搜索,利用改進(jìn)策略特點(diǎn)等方法。目前,大部分方法都是在一開始就加入了改進(jìn)策略,這就有可能導(dǎo)致不必要的計(jì)算,增大計(jì)算量,可以考慮設(shè)置成檢測到陷入局部極值或即將陷入時(shí)執(zhí)行改進(jìn)策略。大部分對(duì)BAS算法的改進(jìn)都是將的單體機(jī)制擴(kuò)展為群體機(jī)制,這就需要考慮初始解質(zhì)量的優(yōu)劣及分布是否隨機(jī)且均勻,就目前來看,對(duì)這方面的改進(jìn)還是相對(duì)來說比較少。步長對(duì)BAS算法性能影響較大,在不同的應(yīng)用場景中如何定義步長的范圍也是很重要的研究,在高維情況下,步長分量太小,效果不佳,步長太大,可能錯(cuò)過最優(yōu)解。還可考慮減弱算法對(duì)參數(shù)設(shè)置的敏感度,增強(qiáng)算法穩(wěn)定性?;蛘呓梃b其他算法的繁殖、視覺、社會(huì)等級(jí)、克隆等機(jī)制對(duì)算法的搜索策略進(jìn)行改進(jìn),以提升算法各方面性能。
(3)BAS應(yīng)用研究。文中許多學(xué)者對(duì)算法進(jìn)行了多方位的改進(jìn),但其實(shí)可以看出,大部分可能僅是用基準(zhǔn)函數(shù)對(duì)其測試,數(shù)值優(yōu)化較多,并未真正運(yùn)用到實(shí)際工程應(yīng)用當(dāng)中去。雖然眾多學(xué)者已經(jīng)把BAS算法應(yīng)用于多個(gè)領(lǐng)域,但在每個(gè)領(lǐng)域的應(yīng)用都不夠完善,算法的應(yīng)用研究空間仍然很大。目前,算法較多用于單目標(biāo)優(yōu)化問題,對(duì)于復(fù)雜問題,如多維離散、多目標(biāo)及動(dòng)態(tài)不確定優(yōu)化問題的應(yīng)用有待擴(kuò)展??梢钥紤]主成分分析、t-分布領(lǐng)域嵌入、矩陣分解等方法對(duì)算法進(jìn)行降維。也可考慮將BAS算法用于構(gòu)建各類神經(jīng)網(wǎng)絡(luò)模型與多層ELM模型,用于各個(gè)領(lǐng)域的數(shù)據(jù)預(yù)測。實(shí)際工程應(yīng)用可以考慮生物食品、無人駕駛、云計(jì)算、物體識(shí)別和復(fù)雜網(wǎng)絡(luò)等BAS尚未涉及的領(lǐng)域。由于BAS算法的高效性,將其用于醫(yī)學(xué)影像的處理,蛋白質(zhì)結(jié)構(gòu)預(yù)測等的應(yīng)用前景也非??陀^。同時(shí),也可考慮解決算法在某些領(lǐng)域上存在的不能實(shí)現(xiàn)實(shí)時(shí)控制的問題,例如實(shí)現(xiàn)光纖陀螺儀的在線去噪。