徐 航,張達敏,王依柔,宋婷婷,樊 英
徐(貴州大學 大數據與信息工程學院,貴州 貴陽 550025)
群體智能優化算法是近年來興起的一種智能技術,通過模擬群體合作等行為,實現對復雜問題的求解,典型的仿生學算法如模擬螞蟻尋找食物的蟻群算法[1]和模擬鳥類飛行的粒子群算法[2]等。智能優化算法不斷發展,近幾年涌現出許多新型智能優化算法,如松鼠優化算法[3]、螢火蟲優化算法[4]、烏鴉搜索算法[5]和樽海鞘優化算法[6]等。
鯨魚優化算法(whale optimization algorithm, WOA)[7]是一種源于大型捕食者座頭鯨狩獵行為而產生的群體智能優化算法,與大多數優化算法相比,WOA實現更加方便,而且該算法的優化效果更加突出,并在各種優化領域里得到運用,如參數優化[8]、機械故障診斷[9]、神經網絡權值優化[10]等,但在WOA中,通過不斷改變種群領導者在搜索空間中的位置,導致算法在領導者陷入局部最優解時會趨于早熟,針對該算法存在的不足,很多改進鯨魚優化算法被廣泛提出,其中黃元春等[11]提出了一種偽反向學習的種群初始化,并結合了高斯-柯西變異策略,提高了算法的尋優性能。孫希延等[12]提出了一種非線性控制和自適應差分進化的改進策略,實現了算法精準快速的尋優性能。
針對WOA的不足,本文首先利用Tent映射產生的種群來替代原算法中隨機產生的初始種群,實現了種群的多樣性;其次,提出了一種混合反向學習策略,將透鏡成像學習和最優最差反向學習思想結合,提高了算法跳出局部最優的能力;最后,提出了一個自適應的概率閾值,同時利用粒子群算法中的慣性權重來平衡算法的探索能力,達到了對算法改進的最終目的。
座頭鯨體型巨大,由于沒有牙齒,不能像其它鯨魚一樣捕食大型獵物,長期的進化迫使座頭鯨擁有泡泡網的捕食方式,在WOA中,受仿生學的啟發,將鯨魚群標志性的捕獵方式建模為包圍、捕食和隨機搜索幾個過程。
(1)包圍過程
算法在優化函數的過程中,每個個體的位置表示該算法在空間中所搜索到的一個解,在執行優化任務時,為了準確找到最優解的位置,算法中生成的每個個體在初始位置附近區域開始探索,把當前種群中適應度值最小的個體假設為目標獵物,其它鯨魚根據該位置來更新自己的位置,這個階段的數學模型如下
X(t+1)=X*(t)-A·D
(1)
式中:D=|C·X*(t)-X(t)|,X(t) 表示第t代時每個個體的位置,X*(t) 表示第t代時的全局最優位置,t表示當前迭代次數,其中A、C表示如下
A=2ar1-a
(2)
C=2r2
(3)
a=2-2t/max_iter
(4)
其中,r1、r2表示服從[0,1]分布的隨機數,a表示隨迭代次數增加由2遞減到0的調節參數,max_iter表示算法中設置的最大迭代次數。
(2)捕食過程
座頭鯨泡泡網捕食方式是螺旋行進的同時縮小包圍圈,在進行數學建模時,是通過改變參數a來模擬鯨魚群的收縮環繞機制,因為算法中A的取值范圍是在[-a,a]之間的,當A的取值在[-1,1]之間時,此時每個個體t+1代時的位置X(t+1) 是處于第t代時的位置X(t) 和第t代時的全局最優位置X*(t) 之間的,基于這種思想來達到包圍獵物的目的。數學模型表示為
X(t+1)=D′·ebl·cos(2πl)+X*(t)
(5)
式中:D′=|X*(t)-X(t)| 表示第t代時每個個體與最優解之間的距離,b表示鯨魚群螺旋行進方程中的常量,取值為1,l是隨機數,取值范圍是[-1,1]。
每個鯨魚個體在朝目標游動時,采取縮小包圍圈和螺旋前進兩種策略,為使這兩種方式同時進行,在建模中設置執行優化任務時選擇兩種行進方式的概率均為50%,數學模型表示為
(6)
式中:p為隨機數且服從[0,1]分布。
(3)搜索獵物過程
在搜索最優解的過程中,當算法中的參數A的取值是 |A|≥1時,每個個體的位置更新是依賴彼此之間的位置來實現的,這種更新策略使得每個個體有可能遠離當前最優解的所在位置,假如算法陷入局部最優解時,這種方式一定程度上提高了算法跳出局部最優區域的概率。數學模型如下
Drand=|C·Xrand(t)-X(t)|
(7)
X(t+1)=Xrand(t)-A·Drand
(8)
其中,Xrand表示在第t代時種群中的隨機個體位置。
混沌是非線性系統一種復雜的動態行為,表現出貌似無規則、類似隨機的現象[13],可以利用這種隨機性和遍歷性等特點,來提高算法的性能。其中常用的混沌序列模型有Logistic和Tent映射,很多研究中采用的是Logistic映射,但相關研究表明[14,15],Tent映射比Logistic映射擁有更加均勻的分布,能使算法擁有更快的收斂速度。所以本文采用Tent映射來產生混沌序列,表示如下
(9)
經伯努利移位變換后表示如下
xn+1=(2xn)mod1
(10)
因為鯨魚優化算法的參數少,模型簡單,而且容易實現,而Tent映射遍歷性和隨機性的特點使得算法擁有更加廣泛的搜索范圍,利用這種混沌分布來降低算法存在的不利影響是十分必要的,因為它避免了個體在相似區域內進行大量搜索的情況。
為解決算法容易陷入局部最優的問題,有學者提出了反向學習的概念,同時大量研究表明大多數精英粒子的反向解比普通解的反向解更靠近最優解,能夠有效跳出局部最優解[16],本文通過結合透鏡成像反向學習策略[17]和最優最差反向學習策略[18],提出了一種混合反向學習的方法,對WOA中每次更新后的鯨魚領導者位置進行反向學習操作,一定程度上給算法提供更多的選擇條件,進而增加算法避免早熟的概率。
2.2.1 透鏡成像反向學習策略
當前解決局部最優問題主要有兩種方案,一是在當前最優位置上向其它區域進行尋優,二是放棄當前最優位置,轉而向新的區域進行搜索。本文選擇第一種手段,引入透鏡成像原理來幫助算法跳出局部最優區域。如圖1所示。

圖1 透鏡成像反向學習

(11)
設h/h*=n, 通過變換得到X*,表達式如下
(12)
由式(12)可以看出,當n=1時的透鏡成像反向學習策略就是一般意義上的反向學習策略,通過調節n值來尋找位置更好的個體,本文設置n為1.2×104。由于精英個體比普通個體擁有更加廣闊的搜索區域,所以當WOA陷入局部最優解時,對其采用上述透鏡成像反向學習機制,提高算法擺脫局部極值的能力。
2.2.2 最優最差反向學習策略
為增加種群中鯨魚領導者位置的多樣性,提高算法的搜索能力,對全局最差位置的鯨魚采用隨機反向學習的策略,公式如下
在農業圈,從來不乏感人至深、艱苦奮斗的故事,自“一懂兩愛”活動開展以來,太多奮戰在農業一線的農資人平凡卻精彩的故事,立身為農、艱苦創業的精神融入了他們的工作日常,劉立魯正是其中之一。
(13)
式中:Xworst表示當前最差位置向量,rand是服從[0,1]分布的隨機數。
算法每迭代一次,都通過式(12)和式(13)進行位置篩選,通過對比反向學習前后的適應度值大小,對最優位置和適應度值進行更新。與精英反向學習相比,本文選擇的是當前種群中位置最優和最差的兩個個體來進行處理,而精英反向學習中常采用種群中前幾個個體進行位置縮放,但幾個差異不大的個體對增加算法跳出局部最優區域的可能性影響不會很大,反而會增加算法計算的復雜性,與最優最差反向學習策略中固定搜索邊界相比,本文采用動態變化的邊界使算法具備更有效的搜索范圍,一定程度上能夠改善算法尋優精度。
為了同步包圍和螺旋行進過程,原始算法設置概率閾值均為0.5,通過隨機生成的p值與概率閾值作比較來選擇狩獵策略,隨著迭代次數增加,這種等概率的捕食方式會導致算法陷入局部最優等問題,受文獻[19]啟發,本文提出了一個對數形式的自適應概率閾值p′來平衡全局搜索和局部開發的能力。表達式如下
(14)
式中:max_iter為最大迭代次數,t為當前迭代次數。
在迭代初期,自適應閾值較大,此時p≤p′, 算法以大概率且較快的速度完成全局搜索;到迭代后期,隨著概率閾值以緩慢的速度減小至0,由于p>p′, 此時算法將大概率選擇螺旋行進方式對領導者位置進行更新,IWO通過不斷更新算法中的自適應概率閾值,使鯨魚群不斷靠近最優解,進而提升算法的收斂精度。
原始WOA在后期進行局部開發時,沒有相應的權值對更新公式進行調整,隨著搜索過程的深入可能會導致鯨魚個體在理論位置附近停留,也可能陷入局部極值,因此本文把粒子群算法中的慣性權重引入WOA中,對算法位置更新公式調整如下
(15)
式中:t為當前迭代次數,max_iter為最大迭代次數,ωstart表示迭代開始時的初始權值,即當t=0時,ωstart=0.9,ωend表示迭代結束時的權值,即當t=max_iter時,ωend=0.4,k為控制因子,控制ω曲線的平滑度,本文k=0.6。 權值ω隨著迭代次數的增加而非線性遞減,當算法在初期時的權重系數比較大時,此時具有較強的全局搜索能力;隨著迭代次數的增加,權重系數在逐漸減小,此時算法采用較小權重以螺旋行進方式在最優解鄰域內進行搜索,防止陷入局部最優。改進WOA公式如下
X(t+1)=ω·X*(t)-A·D|A|<1,p
(16)
X(t+1)=ω·Xrand-A·Drand|A|≥1,p
(17)
X(t+1)=D′·ebl·cos(2πl)+ωX*(t)p≥p′
(18)
步驟1 設置算法中鯨魚種群大小N=30,最大迭代次數max_iter=1000。
步驟2 采用Tent混沌映射的策略在搜索空間中初始化位置分布相對均勻的N個個體。
步驟3 根據測試函數f(x)得出混沌種群中30個鯨魚個體的函數值,依照得到的函數值大小將整個種群進行排序,同時將函數值最小的位置作為最優位置進行保存。
步驟4 根據式(14)和式(15)更新參數p′和ω,并更新算法中a、A、C、l等相關參數。
步驟5 通過比較算法中參數 |A| 的大小和自適應的概率閾值p′與隨機生成的p值的大小,進而選擇相應的更新方案:當p
步驟6 挑選出當前種群中一個精英個體和一個位置最差個體,按式(12)和式(13)進行混合反向學習,通過比較反向操作后的適應度值,更新全局最優位置和適應度值。
步驟7 判斷算法是否達滿足停止的條件,若滿足則跳出循環過程,同時返回當前最優解及適應度值,反之繼續運行步驟4~步驟6。
為了驗證本文所提算法在求解函數中的優越性和魯棒性,將改進鯨魚優化算法(IWOA)與原始鯨魚優化算法(WOA)、灰狼算法(GWO)、粒子群算法(PSO)、改進概率閾值的鯨魚優化算法(PWOA)、加入權重的鯨魚優化算法(WWOA)、加入Tent映射的鯨魚優化算法(TWOA)和加入混合反向學習策略鯨魚優化算法(OWOA)同時在表1中10個測試函數下進行30次重復實驗,通過對比實驗驗證所提算法的有效性。考慮到維度也會影響算法在搜索空間中求解性能,所以將函數F1~F10的維度范圍設置為4維到200維不等,以驗證算法在不同空間維度中是否同樣具備良好的搜索能力。本文使用的編程語言為MATLABR2014b,仿真環境為Win10操作系統,16 G內存和2.9 Hz CPU。

表1 部分基準測試函數
首先,為了最大程度地降低偶然性對函數求解的影響,如圖2所示為10個測試函數運行30次的平均收斂曲線(縱坐標取10的對數)。圖2(a)~圖2(f)為單峰函數的平均收斂曲線,由于加入混合反向學習和自適應概率閾值,IWOA收斂速度和收斂精度都比其它算法要高。圖2(g) ~圖2(j)為多峰函數的平均收斂曲線,由于加入Tent映射和粒子群慣性權重,前期收斂速度比較快,到迭代后期更容易跳出局部最優,所以收斂精度比其它算法更高。
其次,表2為8個算法在相同條件下重復求解30次的各項評價指標,通過對結果的分析來驗證針對算法不足而提出的改進策略的可行性。優化算法的性能一般通過最優值、最差值和平均值等指標來反映,對于單峰函數F1~F6,IWOA在F1、F2、F3、F4的求解中達到了理論值0,雖然WWOA在求解F1、F3時同樣達到了理論效果,這是由于WOA容易陷入局部極值,在算法中加入慣性權重,使得算法在中后期能夠擺脫局部最優區域的束縛,同時也說明對WOA改進的必要性,但由圖2(a)~圖2(c)可知,IWOA的收斂速度明顯優于WWOA,驗證IWOA的性能更好;在求解F5、F6時,雖然沒有達到理論值,但可以看出IWOA的最優值、最差值和均值都比其它算法要好;同時,由于OWOA、PWOA等算法對函數F1~F6的尋優精度仍優于未改進的WOA、GWO等算法,而融合4個改進策略的IWOA相對于其它算法尋優精度更高。針對函數F7~F10實驗結果,在求解函數F7時除了PSO沒有達到最優,其它算法都達到理論值,但是TWOA、WOA、GWO等的最差值、均值相對于IWOA都較差;雖然函數F8~F10沒有達到理論值,但是相比于參與對比的算法,IWOA的性能指標都表現較優,進而驗證本文所提改進策略提高了算法的尋優能力。
然后,表2中的標準差可以衡量算法的穩定性和跳出局部最優的能力,F1~F4的求解中,除了WWOA在F1、F3的標準差和IWOA一樣,IWOA都比其它算法要好,在F5、F6的求解中,雖然沒有達到理論值,但IWOA的標準差都比其它算法要小,說明IWOA在求解過程中具有一定的穩定性;在求解多峰函數F7時,雖然PWOA、TWOA等也能達到了理論值,但如圖2所示,IWOA的收斂精度和收斂速度明顯比其它幾種算法要好,在求解F8~F10時,IWOA的標準差均小于其它算法,進而說明本文算法的穩定性和局部尋優能力比其它法更優秀。

圖2 函數平均收斂曲線

表2 測試函數結果對比

表2(續)

表2(續)
最后,從表2中平均耗時可以看出,在相同維度下,融合4種改進策略的IWOA平均耗時最長,加入1種改進方法的WWOA、TWOA、OWOA、PWOA這4種算法的平均耗時次之,但都比WOA的平均耗時要長,原因是增加算法的種群大小、增加算法探索區域等改進方式都可能引導算法找到更好的解,但與此同時也會相應消耗整個尋優過程的時間,而相比于其它算法,GWO和PSO的平均耗時是最短的。
針對WOA的不足,提出一種混合反向學習策略,首先引進混沌理論優化初始種群分布,使其分布均勻;然后利用概率閾值p′和權重ω對算法進行適當平衡,提高了算法的尋優速度和尋優精度,最后提出一種混合反向學習機制,改善了原始算法易陷入局部極值的缺陷。經實驗仿真表明本文算法具有較高的競爭性和魯棒性。在未來研究中,計劃將改進算法用于優化認知無線電頻譜分配問題,以進一步驗證算法性能。