郭振洲,郝亞茹,拱長青
(沈陽航空航天大學(xué)計算機學(xué)院,遼寧 沈陽 110136)
2016年澳大利亞學(xué)者Mirjalili通過觀察座頭鯨捕食,提出了鯨魚優(yōu)化算法(WOA)[1]。該算法的主要思想是通過模仿座頭鯨的捕食行為實現(xiàn)對目標問題求解。鯨魚優(yōu)化算法具有調(diào)節(jié)參數(shù)少,原理簡單便于編程實現(xiàn)的優(yōu)點,該算法自提出后受到研究學(xué)者廣泛的關(guān)注,許多改進算法相繼被提出。例如:Ling[2]提出了基于levy飛行的鯨魚優(yōu)化算法,將果蠅的運動軌跡和鯨魚算法的運動軌跡結(jié)合通過改變開發(fā)階段的運行路線從而增加算法的多樣性。王堅浩等[3]使用Tent混沌映射生成混沌序列完成種群初始化,并使用混沌擾動協(xié)同更新策略改進收斂因子和慣性權(quán)重提出了基于混沌的鯨魚優(yōu)化算法(CWOA)。Dharmbir[4]將混沌鯨魚優(yōu)化算法應(yīng)用于電力系統(tǒng)暫態(tài)穩(wěn)定約束最優(yōu)潮流(OPF)問題的求解。通過選擇兩個測試電力系統(tǒng),驗證了CWOA算法的有效性。郭振洲等[5]提出了基于自適應(yīng)權(quán)重和柯西變異鯨魚優(yōu)化算法(WOAWC)動態(tài)調(diào)節(jié)算法權(quán)重并在算法勘探階段引入柯西變異提高算法的收斂速度,F(xiàn)eng[6]提出了求解大規(guī)模問題的改進鯨魚優(yōu)化算法,在算法的初始階段加入對立策略加快算法的收斂性,并引入非線性調(diào)節(jié)系數(shù)和變異操作提高算法的多樣性和收斂性。以上對鯨魚算法的改進集中在算法本身算子或初始化方法的改進,并沒有從整體算法策略上加以修改。本文針對鯨魚優(yōu)化算法中個體信息交互少的特點,引入社交學(xué)習(xí)理論,強調(diào)個體之間的信息交互,通過在原算法的思想中加入社交學(xué)習(xí)理論從而提高算法的多樣性和收斂性。
社交學(xué)習(xí)[7]是個體在社交網(wǎng)絡(luò)中學(xué)習(xí)進步的一種有效途徑。它是指同一群體間待學(xué)習(xí)個體向目標個體進行學(xué)習(xí)的一種社交方式。針對鯨魚算法隨機選擇參考鯨魚的勘探方法及逐次向上一代最優(yōu)個體靠攏的策略,本文分別將社交學(xué)習(xí)理論應(yīng)用到鯨魚優(yōu)化算法的勘探和開發(fā)階段提出了社交學(xué)習(xí)鯨魚優(yōu)化算法(SLWOA)。在算法全局勘探和局部開發(fā)階段引入社交學(xué)習(xí)理論,指導(dǎo)個體有意識的向潛在解進行勘探和開發(fā)。首先,隨機挑選出一個個體作為參考鯨魚,對比該個體的學(xué)習(xí)概率上限判斷是否為待學(xué)習(xí)個體,然后根據(jù)判斷結(jié)果選用不同的迭代公式進行更新,實現(xiàn)全局勘探。其次,通過對比剩余個體的學(xué)習(xí)概率上限確定待學(xué)習(xí)個體,并進行標記,然后對待學(xué)習(xí)個體進行社交學(xué)習(xí),實現(xiàn)個體的局部尋優(yōu)。
1921年,英國科學(xué)家首次在Swaythling的小鎮(zhèn)上觀測到一些鳥類能夠用喙打開牛奶瓶,隨后的25年里,英國科學(xué)家觀測到的這種鳥類的開瓶蓋行為已經(jīng)從大不列顛局部地區(qū)擴展到歐洲大陸,甚至擴展到全世界其它的鳥類。英國科學(xué)家認為這種行為產(chǎn)生的原因是群體中的個體不斷向優(yōu)于自己的個體進行學(xué)習(xí),從而保持群體不斷進化繁衍,這是社交學(xué)習(xí)生物學(xué)體現(xiàn)[8]。在過去的幾十年中,社交學(xué)習(xí)理論中提出并討論了各種機制,例如,刺激,增強和局部增強[9],觀察性調(diào)節(jié)[10]和社會促進[11]。而在這些機制中模仿機制一直被認為是最為重要的。基于這種理論,根據(jù)個體的適應(yīng)度值將為個體設(shè)定學(xué)習(xí)概率上限,然后通過隨機產(chǎn)生個體的學(xué)習(xí)概率值模擬個體的學(xué)習(xí)概率,對比個體的學(xué)習(xí)概率上限從而將群體中的個體分為待學(xué)習(xí)個體和非待學(xué)習(xí)個體,通過待學(xué)習(xí)個體向種群均值個體進行學(xué)習(xí),保證個體不斷進化且不會過早的陷入局部最優(yōu)。2015年Jin[9]提出了基于社交學(xué)習(xí)的粒子群優(yōu)化算法(SL-PSO),并將社交學(xué)習(xí)算法概括為適應(yīng)值評估、種群排序以及行為學(xué)習(xí)三個階段。
個體作為群體中很小的一部分,所處位置不同,個體的優(yōu)秀程度也不相同,通過種群個體排名的方法解決個體優(yōu)秀程度判定的問題。假設(shè)個體排名越高越優(yōu)秀,也就越容易作為學(xué)習(xí)的對象。若隨機向比自己優(yōu)秀的個體學(xué)習(xí)則會導(dǎo)致個體學(xué)習(xí)方向模糊,算法的收斂性降低,因而本文中使用該代種群算術(shù)平均值作為種群的學(xué)習(xí)對象,使用個體與該均值之間差值加權(quán)來表示個體向整體趨勢學(xué)習(xí)的狀況。
基于社交學(xué)習(xí)的待學(xué)習(xí)個體位置更新[10]如下方法:

(1)


(2)
其中以1-(i-1)/m表示學(xué)習(xí)概率和個體排名i成反比的關(guān)系,指數(shù)alog「n/m?則表示學(xué)習(xí)概率與維度n成反比的關(guān)系,從而模擬問題難度越大,個體越不會進行社交學(xué)習(xí)。對于每一代最優(yōu)的個體因其無需向其它個體學(xué)習(xí)故其學(xué)習(xí)概率為0。學(xué)習(xí)因子ε調(diào)節(jié)整個社交學(xué)習(xí)行為,往往和問題的難度有關(guān),作為調(diào)節(jié)學(xué)習(xí)步調(diào)的參數(shù)太大或太小都直接影響到算法的運行效果,本文設(shè)其運算表達式如下:
ε=0.1×n/100
(3)
其中m表示在群體中的個體數(shù)目,n表示群體中個體的維度。
鯨魚優(yōu)化算法是模仿座頭鯨捕食行為而提出的。自然界中座頭鯨通過收縮包圍,螺旋上升的策略實現(xiàn)獵食,算法中為了模擬座頭鯨此種捕食策略,使用隨機數(shù)作為輔助。首先隨機產(chǎn)生一個小于1的數(shù),若該數(shù)小于0.5則使用收縮包圍模型,若該數(shù)數(shù)不小于0.5則使用螺旋上升模型。鯨魚優(yōu)化算法中具體的鯨魚捕食過程主要包括三個部分:包圍獵物、氣泡攻擊、搜尋獵物。
在此部分座頭鯨并不知道食物的位置,算法中假設(shè)距離食物最近的鯨魚就是當前的局部最優(yōu)解,其它鯨魚個體都會朝著這個位置靠近,從而完成包圍獵物。具體位置更新如下方法

(4)

(5)
A=2ar-a
(6)
C=2r
(7)
其中A和C是系數(shù)向量,X*是局部最優(yōu)解,且是α∈[0,2]從2線性遞減到0,r∈[0,1],c∈[0,2]。
該部分為啟發(fā)式算法中的開發(fā)階段,該階段的主要目的是在全局勘探找到潛在目標方向的基礎(chǔ)上進行局部尋優(yōu)。鯨魚優(yōu)化算法是通過收縮包圍圈和螺旋更新位置的方式達到鯨魚局部尋優(yōu)的目的。
3.2.1 收縮包圍原理
根據(jù)式(5)鯨魚群進行收縮包圍。當|A|<1時,鯨魚個體會向當前位置最優(yōu)的鯨魚靠近。并且|A|越大鯨魚游走的步伐越大,|A|越小鯨魚游走的步伐越小,從而控制收斂速度。
3.2.2 螺旋更新位置
首先計算與當前最優(yōu)鯨魚的距離,然后再以螺旋方式游走,螺旋游走方式更新如下方法

(8)

(9)
其中式(9)是鯨魚個體到目前最好的鯨魚距離向量,b是常量系數(shù),l∈[-1,1]的隨機數(shù)。pro∈[0,1]的隨機數(shù)用來選擇收縮包圍或螺旋更新模型。該階段更新如下方法

(10)
當|A|>1時,進入全局勘探階段,該階段主要目的是擴大搜索域,提高算法多樣性,避免陷入局部最優(yōu)。算法中通過隨機選擇策略,隨機選擇一個鯨魚個體作為參考鯨魚,然后其它鯨魚均向其方向前進,從而實現(xiàn)獵物搜索如下方法

(11)

(12)

為了提高鯨魚優(yōu)化算法的全局尋優(yōu)能力及收斂精度,引入社交學(xué)習(xí)策略即單獨為待學(xué)習(xí)的后進生進行補習(xí)的方式,在算法的全局勘探和局部開發(fā)階段對待學(xué)習(xí)的個體進行學(xué)習(xí)操作,提高群體收斂速度及收斂的精度。鯨魚優(yōu)化算法的全局勘探階段,由式(11)和(12)可知,需要在該代種群中隨機選擇一頭鯨魚作為參考鯨魚,然后其它鯨魚依次向其靠攏,從而不斷更新鯨魚位置。參考鯨魚的選擇直接影響到算法收斂速度,本文在全局勘探階段引入學(xué)習(xí)因子和學(xué)習(xí)概率,首先參考鯨魚對比個體學(xué)習(xí)概率上限,從而判斷是否需要學(xué)習(xí),待學(xué)習(xí)個體則向群體的均值趨勢進行偏移,從而完成參考鯨魚的學(xué)習(xí),該方式通過主動選擇最有“潛力”的參考個體,避免不必要的采樣,從而提高算法的收斂速度。勘探階段改進如下方法
X(t+1)
Δ(t)=Ave(t)-X(t)
(15)

(16)
式(15)表示均值個體與當前個體之間的矢量距離,式(16)為理想均值個體的計算公式。在鯨魚優(yōu)化算法中局部開發(fā)階段,位置更新迭代的式(10)無論收縮包圍還是螺旋上升均是基于當前的局部最優(yōu)解X*,缺少與外界信息交互,使得算法很容易陷入局部最優(yōu),故而引入社交學(xué)習(xí)的理論針對待學(xué)習(xí)個體向群體均值個體進行學(xué)習(xí),從而提高個體之間的信息交互能力。此外將群體個體依照學(xué)習(xí)概率上限分為兩個部分,對待學(xué)習(xí)個體單獨進行學(xué)習(xí)操作,能夠有效的減少算法的計算次數(shù)及群體中個體之間的差距從而提高算法收斂精度。在算法的開發(fā)階段具體的操作流程為首先通過學(xué)習(xí)概率來區(qū)分是否為待學(xué)習(xí)個體,然后在待學(xué)習(xí)個體中引入種群均值個體作為學(xué)習(xí)對象,而其它個體則保持原有的更新策略。開發(fā)階段改進如下方法:
社交學(xué)習(xí)鯨魚優(yōu)化算法分別在勘探和開發(fā)階段對算法進行改進,具體的算法流程如圖1。

圖1 社交學(xué)習(xí)鯨魚優(yōu)化算法流程圖

為驗證SLWOA算法的性能,分別在22個基準函數(shù)[11]進行30次測試,其中包括7組單峰函數(shù)、6組可變維多峰測試函數(shù)和9組固定維測試函數(shù),見表1~3。另外本文分別對Sphere,RosenBrock以及Griewank函數(shù)進行若干平移,平移量見表4。

表1 單峰測試函數(shù)

表2 可變維多峰測試函數(shù)

表3 固定維多峰測試函數(shù)

表4 基準函數(shù)的位置偏移
本文所有實驗均在CPU 主頻3.90GHz的Intel Core(TM) i3-7l00h、內(nèi)存8GB的PC機上進行,操作系統(tǒng)為Microsoft Windows 10專業(yè)版,編程工具MATLAB R2015b。
本實驗中SLWOA算法及其對比的四種算法的種群規(guī)模均為30,最大迭代次數(shù)均為1000,參數(shù)設(shè)置見表5。

表5 優(yōu)化算法的參數(shù)
5種算法在22個測試函數(shù)獨立運行30次尋優(yōu)計算的均值和標準差見表6。其中最優(yōu)者用黑體標注。表中“+”表示SLWOA算法效果優(yōu)于該列算法;“=”表示SLWOA算法效果與該列算法的效果相當;“-”表示SLWOA算法效果不如該列算法。部分測試函數(shù)的收斂曲線如圖2。對Sphere,RosenBrock以及Griewank函數(shù)的7次位置偏移,運行30次的平均值見表7。

表6 5種算法在22個基準函數(shù)上的測試結(jié)果

圖2 部分測試函數(shù)收斂曲線

表7 平移函數(shù)運行30次均值結(jié)果
根據(jù)表6結(jié)果可知SLWOA在f1-f13相比其它四種算法結(jié)果均為最優(yōu),結(jié)合圖2中算法的收斂曲線SLWOA在單峰函數(shù)f3上能夠較快地得到全局最優(yōu)解且在收斂速度和搜索精度上優(yōu)于其它四種算法。這是因為在單峰函數(shù)中不存在多個最優(yōu)解,而SLWOA算法通過引入均值,確保個體向種群行動總趨勢的方向移動,提高了算法的收斂速度。盡管WOA算法、WOAWC算法在測試函數(shù)f9和f11上也獲得了全局最優(yōu)解,但結(jié)合圖2中f9可以看出SLWOA算法在收斂速度方面均優(yōu)于WOA和WOAWC算法。這說明在多模態(tài)空間中,SLWOA算法經(jīng)過若干次的迭代運算之后仍具有跳出局部最優(yōu)解的能力。待學(xué)習(xí)的個體進行學(xué)習(xí)操作,能夠有針對性的提高個體的優(yōu)秀程度;提高種群每次迭代后結(jié)果的準確度。在f14-f22函數(shù)中,SLWOA算法在標準差最小的情況下結(jié)果仍優(yōu)于其它四種算法說明SLWOA算法在函數(shù)f14、f21,f22中不僅能夠獲得好的結(jié)果,而且還穩(wěn)定收斂于這個解,因為是針對待學(xué)習(xí)的個體進行學(xué)習(xí)過程,是一種類似于后進生補習(xí)的方式,彌補了群體之間的差距縮小了群體成績的標準差從而提高了結(jié)果的穩(wěn)定性。表7可知,隨著函數(shù)縱軸位置偏移的變大,SLWOA在偏移函數(shù)Sphere,RoseBrock,Griewank,的結(jié)果始終最優(yōu),即SLWOA算法在該類偏移函數(shù)上具有穩(wěn)定性。除此之外對于多峰函數(shù)Girewank均選擇最值的標準差和其平均值在同一個數(shù)量級上的結(jié)果,以此排除了某一次陷入局部最優(yōu)。綜上可知通過加入社交學(xué)習(xí),針對性的為待學(xué)習(xí)個體補習(xí),彌補群體間的優(yōu)劣差距,從而達到提高收斂速度和穩(wěn)定性的功能。
本文將社交學(xué)習(xí)的理論應(yīng)用于鯨魚優(yōu)化算法之中,在鯨魚算法的勘探和開發(fā)階段對適應(yīng)值較差的個體根據(jù)學(xué)習(xí)概率判斷是否需要進行社交學(xué)習(xí),然后通過學(xué)習(xí)因子對學(xué)習(xí)程度進行控制。SLWOA算法相比于傳統(tǒng)的鯨魚算法提高了算法的收斂精度,從而避免鯨魚算法陷入局部最優(yōu)解的問題,同時也進一步提高了鯨魚個體的全局搜索能力和局部尋優(yōu)能力。通過對比5種算法在22個基準函數(shù)獨立運行30次的均值和標準差并結(jié)合函數(shù)的收斂曲線,實驗結(jié)果顯示除了f15-f20函數(shù)組,SLWOA算法在收斂速度和收斂精度方面都有要優(yōu)于其它四種對比算法。為了排除原點收斂的影響,對Sphere,RoseBrock,Griewank函數(shù)分別根據(jù)函數(shù)邊界進行7次偏移并獨立運行30次求均值,而SLWOA的結(jié)果在這21個偏移函數(shù)中結(jié)果均為最優(yōu)。故此可認為引入社交學(xué)習(xí)提高了算法的穩(wěn)定性和收斂速度,除此之外也說明社交學(xué)習(xí)鯨魚優(yōu)化算法適用于單峰函數(shù)和可變維多峰函數(shù)的應(yīng)用場景,而對于固定維測試函數(shù)的應(yīng)用場景的優(yōu)勢不明顯。