彭君君,劉勇進(jìn)
(1.沈陽(yáng)航空航天大學(xué) 計(jì)算機(jī)學(xué)院,遼寧 沈陽(yáng) 110136;2.沈陽(yáng)航空航天大學(xué) 理學(xué)院,遼寧 沈陽(yáng) 110136)
最優(yōu)化問(wèn)題是一類重要的數(shù)學(xué)問(wèn)題,普遍存在于工程實(shí)際和應(yīng)用中,其中包括連續(xù)、離散、光滑、非光滑、凸和非凸等類型。對(duì)于具有良好數(shù)學(xué)特性的問(wèn)題,如凸規(guī)劃,已經(jīng)有很多成熟的數(shù)值方法求解,如內(nèi)點(diǎn)法[1-2],但是工程實(shí)際和應(yīng)用中的優(yōu)化問(wèn)題往往是復(fù)雜的,具有非凸和高度非線性等特性。因而,傳統(tǒng)的優(yōu)化方法并不能有效求解,于是一種模擬生物進(jìn)化和仿生自然界動(dòng)物覓食筑巢行為的啟發(fā)式智能優(yōu)化仿生算法應(yīng)運(yùn)而生。仿生優(yōu)化算法一般建立在生物智能或物理現(xiàn)象基礎(chǔ)之上,通過(guò)模擬某些自然現(xiàn)象或過(guò)程求解復(fù)雜優(yōu)化問(wèn)題。目前常見的智能優(yōu)化算法有:粒子群算法(PSO)[3-4]、人工魚群算法(AFSA)[5]、人 工蜂群算法(ABC)[6]、布谷鳥搜索算法(CS)[7]、蝙蝠算法(BA)[8]等,各種群體智能算法在求解最優(yōu)化問(wèn)題中側(cè)重點(diǎn)不同,因此各有優(yōu)缺點(diǎn)。
為了使其獲得更好的尋優(yōu)特性,文獻(xiàn)[9]根據(jù)自然界鳥群覓食、警覺(jué)和遷移等生物行為提出一種新型生物啟發(fā)式算法——鳥群算法。鳥群算法根據(jù)鳥群生存特性,通過(guò)構(gòu)建覓食行為、警覺(jué)行為、遷徙行為的機(jī)制完成整個(gè)鳥群的繁殖生存(迭代尋優(yōu)),相比傳統(tǒng)群體智能算法擁有更良好的尋優(yōu)特性。但是鳥群算法也存在許多局限性,例如:在進(jìn)行覓食行為和警覺(jué)行為過(guò)程中,基本鳥群算法在每一次迭代時(shí)都依賴于之前迭代求得的個(gè)體最優(yōu)值和群體最優(yōu)值,若上一次的個(gè)體最優(yōu)或群體最優(yōu)值陷入局部極值點(diǎn)時(shí)或者陷入別的極壞情況(如鞍點(diǎn)[10]),則種群易陷入局部最優(yōu)或者徘徊于當(dāng)前迭代值并導(dǎo)致收斂極慢。在基本鳥群算法的遷徙行為中,其只依賴于簡(jiǎn)單的隨機(jī)函數(shù),忽略了算法已產(chǎn)生的尋優(yōu)信息,不能根據(jù)當(dāng)前尋優(yōu)空間的變化而變化,浪費(fèi)了尋優(yōu)資源。在整個(gè)基本鳥群算法中,鳥群個(gè)體的尋優(yōu)方向都趨向于當(dāng)前生產(chǎn)者的尋優(yōu)方向,這可能導(dǎo)致算法處于固化狀態(tài),即下一次迭代的尋優(yōu)方向很難擺脫上一次生產(chǎn)者的尋優(yōu)方向,致使種群缺乏多樣性,進(jìn)而導(dǎo)致算法尋優(yōu)速度緩慢。
針對(duì)基本鳥群算法存在的局限性,人們充分重視鳥群尋優(yōu)過(guò)程產(chǎn)生的尋優(yōu)信息,研究種群尋優(yōu)時(shí)表現(xiàn)出的種群特性,并添加人為影響尋優(yōu)空間多樣性的更新機(jī)制,構(gòu)建改進(jìn)的高效鳥群優(yōu)化算法。新算法在原算法的基礎(chǔ)上添加挑食行為,即在鳥群開啟群體行為之前,通過(guò)挑食行為選擇鳥群中的個(gè)體最優(yōu)值與群體最優(yōu)值,避免算法一開始就陷入比較壞的情況;在鳥群的遷徙行為中,加入智能學(xué)習(xí)尋優(yōu)行為,有效地避免鳥群尋優(yōu)過(guò)程中的盲目性;同時(shí)構(gòu)建能夠更好地避免群體智能算法早熟的雙高斯函數(shù)更新法[11-13],對(duì)于鳥群每次迭代之后,在保留群體最優(yōu)個(gè)體的基礎(chǔ)上,將會(huì)淘汰一部分不具有優(yōu)勢(shì)的弱勢(shì)個(gè)體,然后通過(guò)雙高斯函數(shù)生成新一代鳥群個(gè)體,拓展種群多樣性,提高算法的全局搜索能力。
本文構(gòu)建基于雙高斯函數(shù)的高效鳥群優(yōu)化算法,并通過(guò)對(duì)具備不同測(cè)試特性(單峰/多峰、低維/高維、可分/不可分)的多種典型標(biāo)準(zhǔn)測(cè)試函數(shù)(Benchmark)進(jìn)行最優(yōu)化尋優(yōu)仿真。仿真結(jié)果表明,改進(jìn)的智能鳥群算法在對(duì)各種類型標(biāo)準(zhǔn)函數(shù)尋優(yōu)時(shí)均具備穩(wěn)定性,同時(shí)可以較好地避免算法早熟。
鳥群算法(BSA)[9]是通過(guò)模仿鳥群的覓食行為、警覺(jué)行為和遷徙行為的一種新型生物啟發(fā)式算法。鳥群算法模仿的生物行為可簡(jiǎn)化為如下規(guī)則:
1)鳥群中的每一只鳥可自由選擇覓食行為或警覺(jué)行為。
2)鳥群處于覓食狀態(tài)時(shí),每只鳥即時(shí)記錄并更新其所經(jīng)過(guò)的最佳覓食位置,并記錄種群最佳覓食位置,同時(shí)將此信息分享至整個(gè)鳥群。
3)鳥群處于警覺(jué)狀態(tài)時(shí),每只鳥試圖飛往種群的中心,這種行為會(huì)因種群間的競(jìng)爭(zhēng)而受到影響,食物儲(chǔ)存多的鳥比儲(chǔ)存少的有更大的幾率飛往鳥群中心。
4)鳥群會(huì)按周期性地飛往另外一區(qū)域。種群中食物儲(chǔ)存最多的稱為生產(chǎn)者,儲(chǔ)存最少的稱為乞食者,其他的鳥隨機(jī)選擇作為生產(chǎn)者或乞食者。當(dāng)鳥群從一個(gè)區(qū)域飛往另一個(gè)區(qū)域,各只鳥的角色都將發(fā)生改變。鳥群之間會(huì)分享所尋覓的食物信息,這一習(xí)性使得種群更有利地生存下去。
5)生產(chǎn)者積極尋找食物,乞食者隨機(jī)跟隨一位生產(chǎn)者尋找食物。
假設(shè)有N只鳥在D維空間中飛行覓食,第i只鳥Xi在j維空間t時(shí)刻的位置為xti,j,i=1,2,…,N;j=1,2,…,D,規(guī)則1)可被表述為一個(gè)隨機(jī)決策過(guò)程。以均勻概率在(0,1)之間產(chǎn)生的一個(gè)隨機(jī)數(shù),同時(shí)設(shè)定一個(gè)常數(shù)P∈[0,1],若隨機(jī)數(shù)大于常數(shù)P,鳥覓食,否則保持警覺(jué)。
基于規(guī)則2),鳥群的覓食行為服從每只鳥自身積累的經(jīng)驗(yàn)以及群體經(jīng)驗(yàn),覓食行為的位置更新公式為:
式中:rand(0,1)表示[0,1]范圍內(nèi)獨(dú)立均勻分布的隨機(jī)數(shù);為鳥更新的位置;為鳥當(dāng)前所在位置;pi,j為第i只鳥經(jīng)過(guò)的最佳位置;gj為種群最佳位置;C,S為兩個(gè)正的常數(shù),分別稱為認(rèn)知系數(shù)及社會(huì)進(jìn)化系數(shù)。覓食行為在每一次更新時(shí)都依賴于已求得的個(gè)體最佳位置和種群最佳位置,當(dāng)已知的個(gè)體最優(yōu)或種群最優(yōu)值陷入局部極值點(diǎn)或者鞍點(diǎn)[10]時(shí),算法易陷入局部最優(yōu)或者徘徊于當(dāng)前迭代值。
對(duì)于規(guī)則3),鳥群在保持警戒狀態(tài)下競(jìng)爭(zhēng)地嘗試飛往種群中心,這種行為的數(shù)學(xué)表達(dá)式如下:
式中:meanj為整個(gè)種群平均位置的第j個(gè)元素;a1,a2是[0,2]之間的常數(shù);k(k≠i)是[1,N]之間的隨機(jī)整數(shù);pk,j為第k只鳥所經(jīng)過(guò)的最佳位置;pFiti為第i只鳥的適應(yīng)度值;sumpFit為整個(gè)種群的適應(yīng)度之和;N為種群的規(guī)模;ε用來(lái)避免零分割,是計(jì)算機(jī)里最小的常數(shù)。A1的含義是其中一只鳥向種群中心移動(dòng)過(guò)程中由環(huán)境引發(fā)的間接作用,而A2闡述的則是由某個(gè)具體競(jìng)爭(zhēng)沖突而引發(fā)的直接作用。由上述可知,警覺(jué)行為也嚴(yán)重依賴于之前迭代求得的個(gè)體最佳位置。
針對(duì)規(guī)則4)和規(guī)則5),鳥群因?yàn)樘颖茏凡痘驅(qū)ふ沂澄锏仍颍瑫?huì)定期飛往其他區(qū)域。當(dāng)?shù)竭_(dá)另一區(qū)域后,它們會(huì)重新覓食,一些作為生產(chǎn)者的鳥開始尋找食物,其他鳥跟隨生產(chǎn)者尋覓食物。生產(chǎn)者和乞食者可由規(guī)則4)從種群中篩選,生產(chǎn)者和乞食者的行為可描述為:
式中:rand(0,1)代表服從期望值為0,標(biāo)準(zhǔn)差為 1的高斯分布的一個(gè)隨機(jī)數(shù);k∈[1,N],且k≠i;FL(FL∈[0,1])為乞食者隨同生產(chǎn)者覓食的概率。鳥群的遷移有一個(gè)固定的周期,設(shè)為FQ,F(xiàn)Q為正整數(shù)。遷徙行為僅依據(jù)簡(jiǎn)單的隨機(jī)函數(shù),不能依據(jù)當(dāng)前尋優(yōu)空間的變化而變化,浪費(fèi)了尋優(yōu)資源。
分析整個(gè)基本鳥群算法可知,鳥群個(gè)體的尋優(yōu)趨勢(shì)為向當(dāng)前生產(chǎn)者的尋優(yōu)方向靠近,這可能導(dǎo)致算法下一次迭代的尋優(yōu)方向很難擺脫上一次生產(chǎn)者的尋優(yōu)方向,致使種群缺乏多樣性,進(jìn)而導(dǎo)致算法尋優(yōu)速度緩慢。
高效鳥群優(yōu)化算法(EBSA)在原算法的基礎(chǔ)上添加挑食行為、智能學(xué)習(xí)行為和雙高斯函數(shù)更新法則,保障鳥群優(yōu)化算法擁有更佳的尋優(yōu)能力和收斂性質(zhì)。
在鳥群處于覓食行為與警覺(jué)行為時(shí),鳥群算法依賴于當(dāng)前的個(gè)體最優(yōu)位置pi,j與種群最優(yōu)位置gj,原始的鳥群算法只簡(jiǎn)單選取了當(dāng)前最優(yōu)值,若其處于比較壞的情況時(shí)(局部極值點(diǎn)、鞍點(diǎn)),則嚴(yán)重影響算法的尋優(yōu)方向。在本文中添加一個(gè)挑食行為,即令鳥群在每一次迭代過(guò)程中對(duì)當(dāng)前最優(yōu)值再進(jìn)行一次小范圍的尋優(yōu),避免上述情況的發(fā)生。當(dāng)前鳥群最優(yōu)個(gè)體i在第j維空間時(shí)第m個(gè)挑食位置的計(jì)算公式為:
式中:m∈{1,2,…,N}為挑食次數(shù);隨機(jī)因子λ為[-1,1]均勻分布的隨機(jī)數(shù);stepi,j為第j維的挑食步長(zhǎng),一般取0.1。
根據(jù)當(dāng)前最優(yōu)值的小范圍擴(kuò)散準(zhǔn)則,當(dāng)前最優(yōu)鳥群個(gè)體Xi在t時(shí)刻第j維上生成的m個(gè)挑食點(diǎn)位置可用集合表示為選擇適應(yīng)度最大值,設(shè)為并與當(dāng)前最優(yōu)鳥群個(gè)體的適應(yīng)度值fpi,j和當(dāng)前最優(yōu)種群適應(yīng)度值fgj相比較,若挑食最大適應(yīng)度值pFitmaxi大于fpi,j,則個(gè)體最優(yōu)位置pi,j更新為pFitmaxi對(duì)應(yīng)位置,個(gè)體最優(yōu)適應(yīng)度值fpi,j=pFitmaxi。若鳥群個(gè)體的最優(yōu)適應(yīng)度值大于種群最優(yōu)個(gè)體所對(duì)應(yīng)的適應(yīng)度值,則該個(gè)體將代替種群最優(yōu)個(gè)體,即gj=pi,j,fgj=fpi,j。若pFitmaxi<fgj,則保持原種群最優(yōu)個(gè)體不變。挑食行為可重復(fù)進(jìn)行,最多不超過(guò)Tmax。挑食行為結(jié)束時(shí),確定種群最優(yōu)個(gè)體位置及其適應(yīng)度值,進(jìn)入下一步。
為了更好地利用優(yōu)化算法當(dāng)前已產(chǎn)生的尋優(yōu)信息結(jié)構(gòu),在鳥群的遷徙行為中加入智能學(xué)習(xí)行為,即當(dāng)生產(chǎn)者確定后,生產(chǎn)者通過(guò)信息告訴乞食者自己的位置及適應(yīng)度值,乞食者Xi通過(guò)判別自身位置的適應(yīng)度值與生產(chǎn)者Xk的位置及其適應(yīng)度值的差距,以智能學(xué)習(xí)步長(zhǎng)逼近生產(chǎn)者所在的位置。乞食者第j維空間位置由智能學(xué)習(xí)前位置、智能學(xué)習(xí)步長(zhǎng)和學(xué)習(xí)方向決定,即:
式中:Sstepi,j為乞食者Xi進(jìn)行智能學(xué)習(xí)時(shí)第j維的智能步長(zhǎng);k表示生產(chǎn)者中隨機(jī)選擇的一個(gè)個(gè)體。智能學(xué)習(xí)步長(zhǎng)表示乞食者Xi在學(xué)習(xí)空間中向具有最優(yōu)適應(yīng)度值的生產(chǎn)者趨近的移動(dòng)幅度。為了獲得更好的尋優(yōu)效率,乞食者自身適應(yīng)度值與生產(chǎn)者適應(yīng)度值之間的差距越大,則學(xué)習(xí)步長(zhǎng)越大;反之,當(dāng)乞食者自身適應(yīng)度值與生產(chǎn)者適應(yīng)度值之間的差距越小時(shí),學(xué)習(xí)步長(zhǎng)越??;當(dāng)乞食者自身適應(yīng)度值與生產(chǎn)者適應(yīng)度值之間無(wú)差距時(shí),乞食者根據(jù)適應(yīng)度值環(huán)境限制以最小步長(zhǎng)進(jìn)行尋優(yōu)。以尋優(yōu)空間和尋優(yōu)空間中最優(yōu)適應(yīng)度值與最劣適應(yīng)度值之差為基準(zhǔn),取乞食者智能學(xué)習(xí)步長(zhǎng)與乞食者適應(yīng)度值和生產(chǎn)者適應(yīng)度值差形成正相關(guān)關(guān)系來(lái)構(gòu)建智能學(xué)習(xí)步長(zhǎng),即:
式中:xmaxj,xminj分別為鳥群在當(dāng)前第j維尋優(yōu)空間最大、最小邊界值;maxpFit,minpFit分別為xmaxj,xminj對(duì)應(yīng)的鳥群最優(yōu)食物資源和最差食物資源;stepminij為乞食者尋優(yōu)過(guò)程中受環(huán)境等原因限制時(shí)的最小步長(zhǎng),為非負(fù)數(shù)。
為了更好地保持鳥群多樣性,避免陷入局部最優(yōu),在進(jìn)行智能學(xué)習(xí)行為后,根據(jù)尋優(yōu)空間的狀態(tài)平衡,以“優(yōu)勝劣汰”自然法則淘汰其中最差的Q只鳥,并重新生成與淘汰個(gè)體同等數(shù)量的鳥群個(gè)體數(shù),這里Q取[N(2β),N β]之間的隨機(jī)整數(shù),β為群體更新比例因子。為了更好地提高鳥群的種群多樣性,設(shè)計(jì)一種雙高斯函數(shù)更新法,通過(guò)構(gòu)建雙高斯函數(shù),使得新生個(gè)體的位置遠(yuǎn)離原淘汰個(gè)體所處的不具備良好種群多樣性的位置。定義新生個(gè)體第j維的位置為:
式中:δi,j為新生個(gè)體第j維更新系數(shù),該系數(shù)為隨機(jī)生成的0或1,用以確定該維位置是否更新;N2為基于雙高斯函數(shù)的新生個(gè)體位置更新系數(shù)。從概率統(tǒng)計(jì)的角度來(lái)看,鳥群新生成個(gè)體之間的差別是許多微小的獨(dú)立隨機(jī)因素影響的結(jié)果。根據(jù)中心極限定理可以認(rèn)為,新生成鳥群位置差別具有正態(tài)分布特性。同時(shí),為了促使新生成個(gè)體更好地逃離原淘汰個(gè)體所處的位置,本文通過(guò)雙高斯函數(shù)生成新鳥群個(gè)體,越是遠(yuǎn)離原個(gè)體位置的點(diǎn),成為新生個(gè)體的概率越高,即:
式中:σ1和σ2為雙高斯函數(shù)的均方差;e為符合標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù);r1為隸屬于[0,1]間的隨機(jī)數(shù),用以促使新生成個(gè)體傾向于向更加遠(yuǎn)離原區(qū)域的位置逃離;θ(x)為階躍函數(shù),具體定義如下:
一旦新生成個(gè)體的第j維位置超出尋優(yōu)空間的范疇,則重新進(jìn)行雙高斯位置更新,直至新生個(gè)體第j維新生位置處于尋優(yōu)空間內(nèi)。
2.4.1 高效鳥群優(yōu)化算法的步驟
高效鳥群優(yōu)化算法的步驟如下:
Step1:初始化鳥群X和相關(guān)參數(shù)。
N:鳥群個(gè)體的數(shù)目;M:最大迭代次數(shù);Tmax:最大挑食次數(shù);FQ:鳥群遷徙周期;P:覓食的可能性;C,S,a1,a2,FL,step,β七個(gè)常數(shù)。
Step2:評(píng)估N個(gè)個(gè)體的適應(yīng)度值和最優(yōu)解,而且令t=1。
Step3:鳥群最優(yōu)個(gè)體以式(5)進(jìn)行挑食行為。
Step4:判斷t%FQ≠0,若成立,則對(duì)鳥群的N個(gè)個(gè)體分別在rand(0,1)里取隨機(jī)數(shù),若隨機(jī)數(shù)小于P,則該個(gè)體以式(1)形式進(jìn)行覓食;若隨機(jī)數(shù)大于P,則該個(gè)體以式(2)形式進(jìn)入警覺(jué)行為;否則,進(jìn)入下一步。
Step5:求出鳥群N個(gè)個(gè)體中的生產(chǎn)者和乞食者,并且乞食者以式(6)形式向生產(chǎn)者進(jìn)行智能學(xué)習(xí)。然后,生產(chǎn)者以式(3)形式進(jìn)行迭代;乞食者以式(4)形式進(jìn)行迭代。
Step6:針對(duì)上述更新得到的N個(gè)鳥群個(gè)體,挑出最差的Q個(gè)個(gè)體(Q?N),按式(7)的雙高斯函數(shù)形式進(jìn)行迭代更新。
Step7:判斷得到的最優(yōu)解是否優(yōu)于已有最優(yōu)解,若滿足,則更新鳥群最優(yōu)值;否則,進(jìn)入下一步。
Step8:令t=t+1,判斷t≤M是否成立,若成立,轉(zhuǎn)Step2;否則,算法終止。
2.4.2 高效鳥群優(yōu)化算法的時(shí)間復(fù)雜度
基于雙高斯函數(shù)的高效鳥群優(yōu)化算法時(shí)間復(fù)雜度可以根據(jù)2.4.1節(jié)的算法詳細(xì)步驟求得。高效鳥群優(yōu)化算法的時(shí)間復(fù)雜度[14-15]主要花費(fèi)于解在尋優(yōu)空間里的產(chǎn)生、評(píng)估和更新,其所需要的最大計(jì)算量可稱為時(shí)間復(fù)雜度,而其他簡(jiǎn)單計(jì)算可忽略?;绝B群算法[9]的時(shí)間復(fù)雜度為O(MN)(詳見參考文獻(xiàn)[9]),影響其主要復(fù)雜度的因素為最大迭代次數(shù)和鳥群個(gè)體數(shù)目。為了提高高效鳥群優(yōu)化算法的收斂性能和處理復(fù)雜函數(shù)的尋優(yōu)能力,引入挑食行為、智能學(xué)習(xí)行為和雙高斯函數(shù)更新法則,致使算法在時(shí)間復(fù)雜度上有一定的提高。挑食行為由于在算法的每次迭代中增加了最多Tmax次運(yùn)算,其時(shí)間復(fù)雜度為O(Tmax),且Tmax一般取N的20%左右,增加幅度并不大。由于智能尋優(yōu)行為只針對(duì)每一次迭代的生產(chǎn)者和乞討者,其增加的復(fù)雜度可忽略不計(jì)。對(duì)于雙高斯函數(shù)更新法則,其在算法的每一次迭代時(shí)選擇Q個(gè)劣等個(gè)體進(jìn)行更新,Q一般取N的25%左右。綜合上述行為,由增加的時(shí)間復(fù)雜度可得高效鳥群優(yōu)化算法的時(shí)間復(fù)雜度為O(MN2),由于N?M,因而這種程度的計(jì)算開銷增加是完全可以接受的。
為了驗(yàn)證本文提出的EBSA的有效性和實(shí)用性,選用具有不同特性的9個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)進(jìn)行算法有效性測(cè)試。
標(biāo)準(zhǔn)測(cè)試函數(shù)包括單峰函數(shù)與多峰函數(shù)、可分函數(shù)與不可分函數(shù)、低維函數(shù)與高維函數(shù)。單峰函數(shù)僅有一個(gè)極值,即局部極值就是全局最優(yōu)值[16],可以很好地驗(yàn)證算法尋優(yōu)的快速性;多峰函數(shù)一般有多個(gè)局部極值,在驗(yàn)證算法逃離局部極值、避免早熟收斂等方面有較好的測(cè)試能力。函數(shù)的維數(shù)越高,運(yùn)算復(fù)雜度越大,因而選用高維函數(shù)可以驗(yàn)證智能算法的尋優(yōu)性能是否足夠好。本文所選標(biāo)準(zhǔn)測(cè)試函數(shù)如表1所示。
為了驗(yàn)證本文算法的有效性和可行性[17-18],將EBSA與5種經(jīng)典的群體智能優(yōu)化算法(包括基本鳥群算法)分別在標(biāo)準(zhǔn)測(cè)試函數(shù)上進(jìn)行多次測(cè)試。由于不同文獻(xiàn)對(duì)智能優(yōu)化算法進(jìn)行有效性測(cè)試時(shí)采用的測(cè)試參數(shù)有差別[3-9],本文在通用參數(shù)設(shè)置相同的基礎(chǔ)上,對(duì)各個(gè)優(yōu)化算法的參數(shù)采用參考文獻(xiàn)中的默認(rèn)設(shè)置。設(shè)最大迭代次數(shù)M=1 000,種群規(guī)模(初始鳥群、粒子群、魚群等)N=30。粒子群算法(PSO)、人工魚群算法(AFSA)、布谷鳥搜索算法(CS)、蝙蝠算法(BA)、鳥群算法(BSA)的其余參數(shù)設(shè)置如表2所示。
表1 標(biāo)準(zhǔn)測(cè)試函數(shù)Table 1 Standard test function
為了實(shí)驗(yàn)的準(zhǔn)確性,對(duì)6種智能優(yōu)化算法按表1所示9個(gè)典型測(cè)試函數(shù)分別進(jìn)行50次獨(dú)立實(shí)驗(yàn)。仿真實(shí)驗(yàn)環(huán)境為:運(yùn)行內(nèi)存8 GB,Win7 64位操作系統(tǒng),Matlab R2016a。評(píng)價(jià)指標(biāo)里的BEST,MEAN,WORST,STD,SR值分別代表50次試驗(yàn)中結(jié)果的最優(yōu)值、平均值、最差值、標(biāo)準(zhǔn)差以及尋優(yōu)成功率(尋優(yōu)差小于10-5認(rèn)定為尋優(yōu)成功)。實(shí)驗(yàn)仿真結(jié)果如表3所示。由表3可知:對(duì)于函數(shù)f1,f2,6種智能優(yōu)化算法具有良好的尋優(yōu)能力,即都能夠找到全局最優(yōu)解,而BSA和EBSA擁有比其他算法更好的尋優(yōu)效果,它們的最優(yōu)值BEST、最差值WORST、平均值MEAN、標(biāo)準(zhǔn)差STD都比其他6種算法提升了一個(gè)數(shù)量級(jí)。對(duì)于函數(shù)f3~f5,只有BSA和EBSA能準(zhǔn)確找到函數(shù)最優(yōu)值,可見具有較理想的尋優(yōu)結(jié)果,而其他4種算法的尋優(yōu)率并不理想。對(duì)于復(fù)雜函數(shù)f6~f9,基本鳥群算法擁有良好的最優(yōu)值BEST,但其最差值WORST、平均值MEAN、標(biāo)準(zhǔn)差STD和尋優(yōu)成功率SR較差,表明其在尋優(yōu)計(jì)算中易陷入局部極值從而影響算法整體尋優(yōu)性能。而高效鳥群優(yōu)化算法在最優(yōu)值BEST,最差值WORST、平均值MEAN、標(biāo)準(zhǔn)差STD和尋優(yōu)成功率SR這五個(gè)指標(biāo)都表現(xiàn)出了優(yōu)異的效果,尋優(yōu)成功率提高10%左右。為了更加明顯地體現(xiàn)高效鳥群優(yōu)化算法對(duì)復(fù)雜函數(shù)的收斂效果,畫出6種智能優(yōu)化算法對(duì)于9個(gè)測(cè)試函數(shù)達(dá)到收斂時(shí)的平均迭代次數(shù)條形對(duì)比圖,如圖1所示,圖中收斂次數(shù)置頂說(shuō)明該算法對(duì)目標(biāo)函數(shù)的收斂成功率為0。從1圖中可以看出對(duì)于復(fù)雜函數(shù),EBSA達(dá)到收斂時(shí)的迭代次數(shù)較BSA有了明顯的提升,基本上可以達(dá)到原始鳥群算法次數(shù)的50%。綜上可知,改進(jìn)的EBSA對(duì)不同類型的單峰/多峰、低維/高維、可分/不可分測(cè)試函數(shù)具有較好的尋優(yōu)能力,比原鳥群算法擁有更好的尋優(yōu)能力和收斂速度,尤其是在較復(fù)雜函數(shù)尋優(yōu)時(shí)較好地避免了早熟收斂、落入局部極值點(diǎn)。
圖1 六種算法針對(duì)9個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)的迭代次數(shù)圖Fig.1 Diagram of iteration times of six algorithms for nine standard test functions
表2 智能優(yōu)化算法參數(shù)設(shè)置Table 2 Parameter setting of intelligent optimization algorithm
表3 不同智能算法之間的性能比較Table 3 Performance comparison of different intelligent algorithms
為了提高鳥群算法在群智能進(jìn)化過(guò)程中的尋優(yōu)特性,本文在BSA中加入挑食行為、智能學(xué)習(xí)行為,提高算法尋優(yōu)的能力;同時(shí)將雙高斯函數(shù)引入鳥群更新行為,人為干預(yù)尋優(yōu)空間內(nèi)鳥群的多樣性,構(gòu)建雙高斯函數(shù)更新行為,進(jìn)一步提高算法在求解復(fù)雜函數(shù)時(shí)的全局尋優(yōu)性能,較好避免了算法早熟而陷入局部極值。
對(duì)具備不同測(cè)試特性(單峰/多峰、低維/高維、可分/不可分)的9個(gè)典型標(biāo)準(zhǔn)函數(shù)進(jìn)行尋優(yōu)仿真。仿真結(jié)果表明,本文提出的EBSA的收斂性能和尋優(yōu)能力均優(yōu)于(或針對(duì)部分測(cè)試函數(shù)不亞于)BSA,PSO,AFSA,CS,BA等群體智能優(yōu)化算法,尤其在對(duì)復(fù)雜度更高的函數(shù)進(jìn)行尋優(yōu)仿真時(shí),收斂速度和收斂精度遠(yuǎn)遠(yuǎn)優(yōu)于其他幾種智能算法,并有效提高了鳥群算法的全局尋優(yōu)性能。