儲(chǔ) 敏,李 宣,陳學(xué)財(cái)
(貴州師范大學(xué)教育學(xué)院,貴陽 550025)
近些年來,人們希望通過模擬大自然生物種群為了生存而相互配合協(xié)作的特性,各種群智能優(yōu)化算法(intelligence optimization algorithm)被設(shè)計(jì)出來。例如粒子群優(yōu)化算法(PSO)[1]、灰狼算法(GWO)[2]、海洋捕食者算法(MPA)[3]等。蝴蝶優(yōu)化算法(butterfly optimization algorithm,BOA)[4]由 Arora 等[5]于 2017 年提出,其具有參數(shù)少、結(jié)構(gòu)簡單等優(yōu)點(diǎn),并且已經(jīng)解決了無線傳感器網(wǎng)絡(luò)族首選擇、圖像分割[6]等問題。為了提高算法對(duì)高維優(yōu)化問題的處理能力,李彥蒼等[7]融合最優(yōu)領(lǐng)域擾動(dòng)和反向?qū)W習(xí)策略的蝴蝶優(yōu)化算法,但其精度也有待提升;Arora 等[8]將萊維飛行策略引入,但卻降低了算法的群體多樣性,使其易陷入局部最優(yōu)。
上述等人的改進(jìn)雖然在某些方面改進(jìn)了算法性能,但是在求解高維問題時(shí)依舊存在很大的提升空間。本文提出了一種融合折射反向?qū)W習(xí)和黃金正弦指引機(jī)制的蝴蝶優(yōu)化算法,加入折射反向?qū)W習(xí),可以提升算法的收斂速度和全局探索能力,再對(duì)蝴蝶個(gè)體感官系數(shù)自適應(yīng)化使算法的局部開發(fā)能力進(jìn)一步增強(qiáng)。隨后使用10 個(gè)典型測(cè)試函數(shù)和一個(gè)工程算例進(jìn)行仿真實(shí)驗(yàn),結(jié)果表明,改進(jìn)的蝴蝶優(yōu)化算法在大多數(shù)函數(shù)上取得更好解的同時(shí),收斂速度也得到了顯著提升。
蝴蝶優(yōu)化算法是模擬蝴蝶覓食和交配行為的優(yōu)化方法,其中每只蝴蝶都有屬于自身的香味,散發(fā)出來以便其它蝴蝶能夠嗅到,起到一種相互吸引的作用。香味的濃度可用如下公式表示:
式中:fi為蝴蝶的香味感知量;c為感官模態(tài),理論上可以?。?,∞);I為刺激強(qiáng)度;a為基于香味吸收程度的冪指數(shù),通常?。?,1]。
然后算法將會(huì)使每只蝴蝶有概率性地進(jìn)入到兩個(gè)關(guān)鍵步驟,即全局搜索階段和局部搜索階段,搜索過程可分別用式(2)和(3)表示:
折射反向?qū)W習(xí)(refracted opposition-based learning,ROBL)[9]是在反向?qū)W習(xí)的基礎(chǔ)上對(duì)其反向過程進(jìn)行的一種改進(jìn),具有很好的全局搜索能力,可以避免種群在算法前期迅速聚集而導(dǎo)致其種群多樣性降低的問題。其二維原理如圖1所示。
圖1 折射反向?qū)W習(xí)示意圖
在圖1中,X軸P的搜索空間是[a,b],對(duì)應(yīng)一個(gè)維度的解空間,l,l*是點(diǎn)P在搜索空間上的入射光線和折射光線,其對(duì)應(yīng)的入射角和折射角分別為α,β。由此可知折射率n即為sinα/cosβ,O點(diǎn)是搜索區(qū)間[a,b] 的中點(diǎn),只需要設(shè)定透鏡的縮放系數(shù)k=l/l*,根據(jù)折射原理就可得到P點(diǎn)與其折射反向?qū)W習(xí)后的P*點(diǎn)的關(guān)系式:
當(dāng)我們所研究的問題維度增加時(shí),可將式(4)推廣到下式來計(jì)算粒子折射反向?qū)W習(xí)過后的新位置:
式中:xi,j表示第i個(gè)粒子在第j維的值,表示xi,j經(jīng)過折射反向?qū)W習(xí)后形成的解,aj、bj分別表示當(dāng)前種群第j維的最大值和最小值。
黃金正弦算法(golden sine algorithm,Gold-SA)是Tanyildizi 提出的新算法,主要依據(jù)單位圓和正弦函數(shù)的定義邏輯,可以用單位圓上的正弦值與搜索代理空間融合進(jìn)行尋優(yōu),具有參數(shù)少、易實(shí)現(xiàn)等特點(diǎn)。其原理如圖2所示。
圖2 正弦三角函數(shù)與單位圓的關(guān)系原理圖
其中:A是振幅,ω是角頻率,單位為rads,m為時(shí)間,單位為s。正弦的角頻率ω和幅值A(chǔ)隨迭代次數(shù)的變化而變化。
Gold-SA 與其它算法融合可以為算法提供更快的收斂速度。其目的是縮小搜索范圍,加強(qiáng)算法的局部搜索能力,其黃金分割系數(shù)如下式:
式中:a1,b1為黃金分割搜索初始值,一般取a1=π,b1=-π;h為常數(shù),通常取h=(-1)/2。
蝴蝶優(yōu)化算法后期局部迭代能力變差,難以跳出局部最優(yōu)解,將局部迭代更新后蝴蝶位置按照式(7)指引到新的位置,并與之前該蝴蝶的適應(yīng)度值進(jìn)行比較,留下較好的位置和解
式中:Dt是第t次迭代中第j個(gè)蝴蝶的位置,r3,r4為隨機(jī)數(shù),范圍可取:r3∈[0,2π],r4∈ [0,π]。
感官形態(tài)系數(shù)c可以取[0,∞]范圍內(nèi)的任意值。但是,為了與改進(jìn)后的算法相適應(yīng),經(jīng)多次實(shí)驗(yàn)后發(fā)現(xiàn),將其改為隨迭代次數(shù)減小更能平衡全局和局部搜索。感覺模態(tài)c可表示為
其中:Ct+1是t+1代時(shí)的感覺模態(tài),Ct是t代時(shí)的感覺模態(tài),Tmax是最大迭代次數(shù)。
綜上所述,改進(jìn)的蝴蝶優(yōu)化算法(ORGABOA)的具體優(yōu)化流程如圖3所示。
圖3 改進(jìn)的蝴蝶優(yōu)化算法流程
為驗(yàn)證本文ORGABOA 的有效性,選擇了三種算法和只加黃金分割的蝴蝶優(yōu)化算法進(jìn)行比較分析,分別是:BOA、GWO、MPA、GABOA。折射反向?qū)W習(xí)策略中k=10000,其它算法中的各項(xiàng)參數(shù)設(shè)置均與原論文一致。此外,為了保證公平性,實(shí)驗(yàn)中種群大小統(tǒng)一為30,最大迭代次數(shù)為500。同時(shí)為了降低算法的隨機(jī)性和偶然性,算法在每個(gè)測(cè)試函數(shù)上都進(jìn)行30 次獨(dú)立實(shí)驗(yàn)。取四個(gè)基準(zhǔn)測(cè)試函數(shù)對(duì)改進(jìn)算法進(jìn)行驗(yàn)證,測(cè)試函數(shù)見表1。
表1 基準(zhǔn)測(cè)試函數(shù)
由表2可以看出,本文提出的ORGABOA 對(duì)所選的單峰測(cè)試函數(shù)均達(dá)到了函數(shù)的理論最優(yōu)值,尤其是標(biāo)準(zhǔn)差體現(xiàn)出來的穩(wěn)定性非常好,說明改進(jìn)算法在求解單峰的問題上有很好的尋優(yōu)能力,求解精度也很理想。此外,ORGAMPA對(duì)復(fù)雜的多峰函數(shù)也展示出非常好的尋優(yōu)性能,尤其是F4,F(xiàn)6 達(dá)到理論最優(yōu)解的同時(shí)又擁有非常好的平均值和標(biāo)準(zhǔn)差,說明改進(jìn)算法的局部開發(fā)能力有了極大的提升,而F5 的結(jié)果也可以看出算法的性能提升也是比較明顯的。從平均值和標(biāo)準(zhǔn)差的結(jié)果也能看出ORGAMPA 相比其他算法具有更好的穩(wěn)定性和魯棒性。
表2 基準(zhǔn)測(cè)試函數(shù)實(shí)驗(yàn)結(jié)果
根據(jù)實(shí)驗(yàn)數(shù)據(jù),繪出函數(shù)迭代圖像,由圖4可以更加形象地看出,ORGAMPA 收斂速度和尋優(yōu)精度比其他算法都要好,曲線下降的速度非???,同時(shí)也保證了算法的抗早熟能力。
圖4 函數(shù)迭代收斂曲線
三桿桁架設(shè)計(jì)問題[10]目的是使三桿的體積最輕,并且也要使每根構(gòu)件的應(yīng)力滿足要求,其模型如圖5所示,該問題的數(shù)學(xué)表達(dá)式如下:
圖5 三桿桁架模型
式 中 :0 ≤A1,A2≤1,L=100 cm,P=2 kN/cm2,σ=2 kN/cm2
ORGABOA和原算法對(duì)該問題求解的最優(yōu)解見表3,結(jié)果表明,ORGABOA 比原算法的結(jié)果更好,最優(yōu)變量為=[0.78868428 0.40822241],相應(yīng)的最優(yōu)體積為263.89584301。兩種算法對(duì)三桿桁架的優(yōu)化迭代收斂曲線見圖6。
表3 三桿桁架設(shè)計(jì)問題的比較結(jié)果
圖6 三桿桁架體積的收斂曲線
本文對(duì)傳統(tǒng)的蝴蝶優(yōu)化算法易造成收斂速度慢、種群多樣性較差等問題,提出了一種基于折射反向?qū)W習(xí)以及自適應(yīng)化的改進(jìn)蝴蝶優(yōu)化算法。通過在算法中引入折射反向?qū)W習(xí),再依據(jù)蝴蝶個(gè)體感官系數(shù)自適應(yīng)化策略,平衡算法的局部開發(fā)和全局搜索能力的同時(shí)也有利于提高算法的種群多樣性。同時(shí)實(shí)驗(yàn)測(cè)試結(jié)果表明改進(jìn)后的算法具有更好的收斂速度和尋優(yōu)精度,對(duì)典型的工程設(shè)計(jì)問題的測(cè)試進(jìn)一步驗(yàn)證了改進(jìn)方法的功能性。接下來的研究重點(diǎn)是希望將該改進(jìn)算法應(yīng)用在實(shí)際的大型工程和社會(huì)實(shí)踐中。