鄭洪清,謝 聰,周永權(quán)
(1.廣西職業(yè)師范學(xué)院教育學(xué)院,廣西南寧 530007;2.廣西農(nóng)業(yè)職業(yè)技術(shù)大學(xué),廣西南寧 530007;3.廣西民族大學(xué)人工智能學(xué)院,廣西南寧 530006)
群智能算法在許多領(lǐng)域發(fā)揮著重要的作用,近年來各種受自然界生物群體行為啟發(fā)的群智能算法被提出,如布谷鳥搜索(Cuckoo Search,CS)算法[1],灰狼優(yōu)化(Grey Wolf Optimizer,GWO)算法[2]和鯨魚優(yōu)化算法(Whale Optimization Algorithm,WOA)[3]等。Mirjalili等[4]根據(jù)樽海鞘群的覓食行為提出一種樽海鞘群算法(Salp Swarm Algorithm,SSA),因其原理簡單和易于實(shí)現(xiàn),已成功應(yīng)用于多個(gè)領(lǐng)域[5,6]。然而,樽海鞘群算法與其他群智能算法一樣,必須克服求解精度低和易陷入局部最優(yōu)等缺點(diǎn)。諸多學(xué)者針對這一缺陷提出各種改進(jìn)策略,如白鈺等[7]提出基于自適應(yīng)慣性權(quán)重的樽海鞘群算法,引入慣性權(quán)重和差分變異思想提高算法性能;陳連興等[8]提出一種改進(jìn)的樽海鞘群算法,對領(lǐng)導(dǎo)者引入加權(quán)重心取代最優(yōu)個(gè)體位置和對個(gè)體逐維隨機(jī)差分變異,改進(jìn)了算法的尋優(yōu)性能,但這兩種算法的Rosenbrock函數(shù)求解精度較低。張鑄等[9]提出基于自適應(yīng)正態(tài)云模型的引力樽海鞘群算法,結(jié)合引力搜索技術(shù)和正態(tài)云發(fā)生器有效提高收斂精度,全局搜索能力大大增強(qiáng),但局部搜索能力相對較弱。王彥軍等[10]提出改進(jìn)的樽海鞘群算法及其在焊接梁問題中的應(yīng)用,利用精英反向?qū)W習(xí)、差分策略和Gauss變異為算法全局搜索奠定基礎(chǔ);康俊濤等[11]提出基于樽海鞘群算法的桁架結(jié)構(gòu)優(yōu)化設(shè)計(jì),在搜索過程中引入個(gè)體歷史信息改進(jìn)算法,但算法改進(jìn)效果不明顯。周新等[12]提出融合黃金正弦混合變異的自適應(yīng)樽海鞘群算法,通過黃金正弦算法(Golden Sine Algorithm,Gold-SA)替換樽海鞘群算法領(lǐng)導(dǎo)者位置更新方式,并融合鄰域重心反向?qū)W習(xí)與柯西變異,改善算法性能,測試函數(shù)較為簡單。范千等[13]提出一種改進(jìn)的樽海鞘群算法,采用折射反向?qū)W習(xí)機(jī)制和自適應(yīng)控制因子提高優(yōu)化性能;陳忠云等[14]提出基于混沌精英質(zhì)心拉伸機(jī)制的樽海鞘群算法,采用Tent混沌和精英質(zhì)心拉伸機(jī)制增強(qiáng)全局搜索能力;張嚴(yán)等[15]提出基于Levy飛行策略的改進(jìn)樽海鞘群算法,對領(lǐng)導(dǎo)者位置進(jìn)行Levy飛行更新,但以上算法求解精度較低。
雖然上述改進(jìn)算法與基本SSA相比在性能上有了一定程度的改善,但求解精度還有提升空間。因此,本研究提出一種改進(jìn)的樽海鞘群算法(Improved Salp Swarm Algorithm,ISSA),通過在追隨者階段引入差分進(jìn)化策略和黃金正弦機(jī)制,共同增強(qiáng)算法尋優(yōu)能力。通過23個(gè)基準(zhǔn)函數(shù)測試,驗(yàn)證ISSA算法的有效性。
樽海鞘群算法是模擬樽海鞘群覓食行為而衍生的一種群智能算法,在SSA中領(lǐng)導(dǎo)者引導(dǎo)群體進(jìn)行食物搜索,其位置更新公式為
(1)
c1=2e-(4×l/lmax)2,
(2)
其中,F(xiàn)j表示第j維領(lǐng)導(dǎo)者位置;c1是平衡全局搜索和局部搜索的重要參數(shù),在迭代前期c1值較大有利于全局搜索,在迭代后期c1值較小有利于局部搜索;c2,c3∈[0,1];ubj,lbj表示第j維的上下界;l表示當(dāng)前迭代次數(shù);lmax表示最大迭代次數(shù)。
追隨者緊隨領(lǐng)導(dǎo)者后并依次形成鏈?zhǔn)浇Y(jié)構(gòu),其位置更新公式為
(3)
基本SSA中,領(lǐng)導(dǎo)者完全依靠式(1)進(jìn)行搜索,若領(lǐng)導(dǎo)者陷入局部最優(yōu),則追隨者必陷入局部最優(yōu)。因此考慮對領(lǐng)導(dǎo)者第j維值采用隨機(jī)維度以拓展種群多樣性,有利于算法跳出局部最優(yōu),故領(lǐng)導(dǎo)者位置更新公式修改為
k=randperm(n),
(4)
(5)
其中,n為問題維數(shù),randperm為生成不重復(fù)的隨機(jī)整數(shù)。
在基本SSA中,當(dāng)前追隨者位置僅取自身位置和上一個(gè)位置的平均值,若追隨者緊密相連,則不利于全局搜索,且未利用群體之間的交流信息,因此考慮對追隨者采用差分進(jìn)化策略進(jìn)一步拓展種群多樣性。首先剔除種群中領(lǐng)導(dǎo)者位置,從剩下種群中隨機(jī)生成3個(gè)不同位置的追隨者進(jìn)行差分進(jìn)化操作,具體計(jì)算公式如下:
(6)
其中,r1,r2,r3為追隨者中任意一個(gè),且r1≠r2≠r3,b∈[0,1]為控制變異概率。
(7)
其中,cr∈[0,1]為控制交叉概率。
黃金正弦算法是Tanyildizi等[16]提出的一種元啟發(fā)式算法,該算法基于正弦函數(shù)和單位圓的關(guān)系求解優(yōu)化問題。Gold-SA遍歷單位圓上所有點(diǎn),因而具有較強(qiáng)的全局搜索能力,而且在全局最優(yōu)位置和當(dāng)前位置采用黃金分割系數(shù),因此也具有較強(qiáng)的局部搜索能力。Gold-SA位置更新公式為
(8)
其中,r1∈[0,2π]內(nèi)的隨機(jī)數(shù),r2∈[0,π]內(nèi)的隨機(jī)數(shù),x1=-π+(1-τ)×2π,τ為黃金分割系數(shù),
x2=-π+τ×2π。為進(jìn)一步提升Gold-SA局部搜索能力,在自身位置引入自適應(yīng)慣性權(quán)重式(2),因此最終Gold-SA位置更新公式為
(9)
輸入:種群規(guī)模N,函數(shù)名稱及最大迭代次數(shù),設(shè)置變異概率b和交叉概率cr,計(jì)算黃金分割系數(shù)。
①在領(lǐng)域范圍內(nèi)隨機(jī)產(chǎn)生初始種群,計(jì)算其最優(yōu)值及食物源位置。
②Whilel ③ 計(jì)算式(2); ④ Fori=1∶N ⑤ Ifi≤N/2i ⑥ 執(zhí)行式(4)、式(5); ⑦ Else ⑧ If rand ⑨ 執(zhí)行式(6)、式(7); (3)氧化鋅回收技術(shù)仍需改進(jìn),火法回收應(yīng)注重解決生產(chǎn)過程中能耗高且氧化鋅純度較低等問題,還應(yīng)注重解決回轉(zhuǎn)窯內(nèi)結(jié)圈問題。酸法回收過程產(chǎn)生的廢酸回收處理有待研究,氨法回收過程中產(chǎn)生的氨氣直接排放造成大氣污染,因此回收并處理氨氣也是氨法回收氧化鋅的重要研究內(nèi)容 ⑩ Else 在ISSA中只是一定概率下執(zhí)行式(6)、式(7)和式(9),并替換基本SSA中的式(3),因此并沒有增加算法的時(shí)間復(fù)雜度。 為檢驗(yàn)ISSA的性能,選取文獻(xiàn)[9]中23個(gè)基準(zhǔn)函數(shù)進(jìn)行測試,并將其計(jì)算結(jié)果與基本SSA、Gold-SA和改進(jìn)算法LECUSSA[15]、RCSSA[13]及CGSSA[9]進(jìn)行比較,以驗(yàn)證ISSA綜合改進(jìn)策略的效果。為公平比較,所有算法的參數(shù)設(shè)置如下:N=30,lmax=500,b=0.2,cr=0.1,其余參數(shù)設(shè)置與原文獻(xiàn)相同。每種算法在Matlab 2016a軟件中獨(dú)立運(yùn)行30次,計(jì)算每個(gè)函數(shù)的平均值(Mean)和方差(Std.),Mean和Std.越小,則性能越佳,結(jié)果如表1所示。 表1 基準(zhǔn)函數(shù)的實(shí)驗(yàn)結(jié)果Table 1 Experimental results of benchmark functions 續(xù)表Continued table 從表1可知,ISSA與基本SSA和Gold-SA比較,在7個(gè)單峰函數(shù)(f1-f7)測試下,ISSA的計(jì)算結(jié)果除函數(shù)f6比SSA、函數(shù)f7比Gold-SA差且相差甚微以外,其余5個(gè)函數(shù)的計(jì)算結(jié)果均優(yōu)于SSA和Gold-SA,其中函數(shù)f1-f4達(dá)到理論值,函數(shù)f5的計(jì)算結(jié)果分別比Gold-SA和SSA高出5個(gè)和9個(gè)數(shù)量級,可見ISSA局部勘探能力優(yōu)異。在6個(gè)多峰函數(shù)(f8-f13)測試下,ISSA的計(jì)算結(jié)果都優(yōu)于SSA,有3個(gè)函數(shù)的計(jì)算結(jié)果與Gold-SA相等,有3個(gè)函數(shù)的計(jì)算結(jié)果優(yōu)于Gold-SA,可見ISSA全局搜索能力更強(qiáng)。在10個(gè)固定維多峰函數(shù)(f14-f23)測試下,ISSA的計(jì)算結(jié)果除函數(shù)f19和f20比SSA稍差以外,大多數(shù)函數(shù)的計(jì)算結(jié)果均優(yōu)于SSA或Gold-SA,證明ISSA全局搜索能力優(yōu)異。 再將ISSA與改進(jìn)算法LECUSSA、RCSSA及CGSSA進(jìn)行比較,LECUSSA僅函數(shù)f15、f20求解結(jié)果比ISSA優(yōu)越且差別不大,其余21個(gè)函數(shù)中有2個(gè)函數(shù)(f16、f18)求解結(jié)果與ISSA一致,另外19個(gè)函數(shù)求解結(jié)果均比ISSA算法差;RCSSA有5個(gè)函數(shù)(f1、f3、f9、f10、f11)求解結(jié)果與ISSA一致,有3個(gè)函數(shù)(f7,f19,f20)求解結(jié)果優(yōu)于ISSA,其余函數(shù)求解結(jié)果均比ISSA差;除函數(shù)f8外,CGSSA有8個(gè)函數(shù)(f1-f4、f18、f20、f22、f23)求解結(jié)果比ISSA差,有3個(gè)函數(shù)(f9、f11、f16)求解結(jié)果與ISSA相等,其余11個(gè)函數(shù)求解結(jié)果優(yōu)于ISSA。因此,總體來看,ISSA優(yōu)于LECUSSA和RCSSA,次于CGSSA。 為直觀展示ISSA的收斂速度和計(jì)算精度,給出部分函數(shù)平均收斂曲線如圖1所示;為便于比較,縱坐標(biāo)取平均函數(shù)值對數(shù)。從圖1可知,ISSA的平均收斂曲線速度比SSA快,計(jì)算精度比SSA高;但在迭代前期ISSA收斂速度慢于Gold-SA,這是由于在迭代前期ISSA以大概率執(zhí)行差分進(jìn)化策略,而在迭代后期ISSA收斂速度明顯優(yōu)于Gold-SA。 圖1 函數(shù)收斂曲線Fig.1 Convergence curve of function 本研究提出了一種改進(jìn)的樽海鞘群算法,通過在領(lǐng)導(dǎo)者位置引入隨機(jī)維度以拓展種群多樣性。在算法前期,追隨者以較大概率執(zhí)行差分進(jìn)化策略,進(jìn)一步增強(qiáng)種群多樣性;在算法后期,追隨者以較大概率執(zhí)行黃金正弦算法,同時(shí)在黃金正弦算法自身位置引入自適應(yīng)慣性權(quán)重增強(qiáng)局部勘探能力。使用23個(gè)基準(zhǔn)函數(shù)評估算法,結(jié)果表明ISSA尋優(yōu)性能優(yōu)于基本SSA和Gold-SA,同時(shí)與其他改進(jìn)的樽海鞘群算法相比,ISSA算法也具有一定優(yōu)勢。2.5 ISSA時(shí)間復(fù)雜度分析
3 仿真實(shí)驗(yàn)與結(jié)果
4 結(jié)論