王玉偉,高 永
(海軍航空大學,山東煙臺264001)
目前,飛行動作識別主要依賴于專家系統技術。其中,飛行動作知識庫是識別過程中的關鍵技術。一般情況下,專家系統知識庫是領域專家根據常年積累的經驗制定和維護[1-2]。然而飛行動作識別規則完全由專家人工提取,會存在表達方式、認識水平、專家意見不統一等因素,在知識庫建立的過程中容易存在效率低下,規則建立不充分或冗余等問題。因此,研究一種從飛行數據自動提取規則的方法顯得尤為重要。
針對飛行動作識別規則提取,學者們展開了大量的研究工作,空軍工程大學的王新亮等[3-5]分別采用了粒子群優化算法(PSO)、人工免疫算法(AIS)、量子遺傳算法(QGA)三種智能優化算法進行提取,在規則提取問題中取得了一定優化效果。然而,傳統智能優化算法在實際應用中普遍存在調節參數過多,早熟收斂,容易陷入局部極值問題[6-16]。為此,本文將一種新型仿生智能優化算法——鯨魚優化算法(Whale Optimization Algorithm,WOA)應用于飛行動作識別規則提取的問題中。
鯨魚被認為是世界上最大的哺乳動物。成年鯨魚可長到30 m,體重180 t。有研究表明鯨魚的大腦某些區域的共同細胞和人類相似,稱之為梭形細胞區域,這些細胞負責判斷,情緒和人類的社會行為[17-18]。WOA算法有包圍獵物,搜索獵物和螺旋泡網捕食機動3個數學模型。
1.1.1 包圍獵物
駝背鯨可以識別獵物位置并圈選它們。由于最優設計在搜索空間中的位置并不是先驗知道的,所以WOA算法假定當前最佳候選解決方案是目標獵物或接近最優。在定義了最佳搜索代理之后,其他搜索代理將嘗試將其位置更新為最佳搜索代理。此行為表示為:
系數A、B的計算式如下:

式(2)、(3)中:a在整個過程中從2線性地減少到0;r是取值范圍為[0,1]的一個隨機系數。
1.1.2 泡泡網攻擊法
模仿駝背鯨的氣泡網行為進行數學建模,設計了2種方法。
1)收縮包圍機制。該行為是通過降低式(2)中a值來實現的,同時A也隨著a的減小而減小。A是區間[-a,a]中的隨機值,搜索代理的新位置可以在代理的原始位置和當前最佳代理的位置之間的任何位置定義。
2)螺旋更新位置。該方法首先計算位于(x,y)處的鯨魚和位于(x*,y*)處的獵物之間的距離;然后,在鯨魚和獵物的位置之間創建一個螺旋方程,以模仿駝背鯨的螺旋形運動,即:

式(4)中:D′= |X*(t)-X(t)|;b是定義對數螺線形狀的常數;l是[-1,1]中的隨機常數。
鯨魚沿著縮小的圓形螺旋路徑在獵物周圍徘徊。為了模擬這種同時發生的行為,假設有50%的概率可以選擇縮小的環繞機制,或者選擇螺旋模型來更新鯨魚的位置。在優化期間,數學模型如下:

p是[0 ,1]中的一個隨機數,除了氣泡網攻擊法,座頭鯨還隨機搜索獵物。
1.1.3 搜索獵物
同樣的方法基于變化的矢量同樣可以利用來搜索獵物。事實上,鯨魚可根據彼此的位置搜索獵物。也就是說,當數值A大于1或等于1時,系數A取隨機值,迫使鯨偏離獵物,從而尋找其他更合適的獵物,這與泡泡網攻擊階段相反,其根據隨機選擇的搜索代理更新在搜索階段的位置,取代目前發現的最佳搜索代理。此機制增強了搜索捕食能力,允許WOA算法執行全局搜索。數學模型如下:

Xrand在式(6)、(7)中是當前鯨群中隨機選擇的位置。
為了驗證鯨魚優化算法的性能,選取Rastrigin標準測試函數進行測試,其表達式如下:

Rastrigin函數為多峰函數,存在比較多的局部極小點,各個變量之間相互獨立,其最優狀態和最優值為min(F(x*))=F(0,0,…,0)=0。選取粒子群優化算法PSO和鯨魚優化算法WOA進行對比。
其中,粒子群算法PSO參數設置為:位置變化上限Pmax為5.12,位置變化下線Pmin為-5.12,局部影響c1為0.8,全局影響c2為0.8,慣性權重系數w1、w2分別為0.9、0.1。鯨魚優化算法參數設置為:最大值ub為5.12,最小值lb為-5.12。其中共同參數設置有:種群規模sizepop為100,進化迭代次數為200,變量個數n為30。
圖1是對Rastrigin測試函數重復運行50次2種算法每一種的平均最優解變化曲線。算法測試結果性能的數值對比,如表1所示。由表1及圖1可以看出WOA測試結果,最優值和迭代次數都明顯優于PSO算法。

圖1 Rastrigin測試函數平均最優值對比Fig.1 Rastrigin test function average optimal value comparison

表1 Rastrigin函數測試結果對比Tab.1 Comparison of Rastrigin function test results
利用鯨魚群算法提取飛行動作規則的基本思路:首先進行飛行規則屬性選擇。本文提取了12個動作屬性作為決策變量,再對規則進行了二進制編碼,并由數據求出12個規則的邊界;初始化鯨魚種群,隨機生成個體,鯨魚群中每個個體代表了一組飛行規則;然后,設定目標函數,確定每個鯨魚個體所處空間位置的優劣,利用鯨群的不同形式的捕食策略不斷更新當前鯨魚個體的空間位置,反復迭代直到獲得最優個體,即規則提取的最優解。具體步驟如下:
1)屬性選擇。飛機飛行過程中會采集各種數據,其中與飛行動作最為密切的參數有高度H、速度v、航向角θ、滾轉角φ、俯仰角γ。在飛行動作時間段內,由這5個關鍵參數提取了12個動作識別屬性。識別屬性定義為:為高度差;為速度差;為航向角差;為高度累加變化量;為速度累加變化量;為航向角累加變化量 ;為滾轉角累加變化量;為俯仰角累加變化量;C9=max(φi)為最大滾轉角;C10=min(φi)為最小滾轉角;C11=max(γi)為最大俯仰角;C12=min(γi)為最小俯仰角。
2)規則編碼。規則的獲取過程就是對各個屬性相互結合、取舍的過程。因此,根據屬性的取舍對規則采取二進制編碼的方法,編碼的長度與規則數量相同。從獲取的正例樣本中,統計C1~C12及每個參數的最大值和最小值,得出24條規則邊界值。將24個規則邊界按規定的順序排列,如:minC1,minC2,…,minC12;maxC1,maxC2,…,maxC12。
編碼為0表示沒有選擇此規則,編碼為1表示選中此規則。如100000000000100000000000表示選中的規則為:{C1>minC1C1<maxC1} 。
3)目標函數設置。目標函數是評價種群所表示規則優劣程度的尺度。好的目標函數應該符合如下條件,規則應該盡量多的符合正例;規則應該盡量多排斥反例;規則數量應適中。根據以上條件,設計目標函數為:

式(9)中:a為規則排斥反例的數量;max(a)為全部的反例數量;b為選中規則的數量;max(b)=24是所有規則的數量;λ為比例系數。
由式(9)可知,規則越排斥反例,解越好,目標函數值則越大。比例系數λ是規則正確性與簡潔性的比例,系數過大,得到規則數量過多,出現冗余規則,影響后期識別效率;系數過小,得到規則數量過少,造成識別精度不夠。經多次仿真實驗得到,系數取3~5時,結果較理想。
以平飛為實驗動作來提取規則,其中,選取正例樣本23個,反例樣本26個,空間維度24。設置種群規模為20,迭代次數為50。其中,1個平飛正例,1個平飛反例,如圖2、3所示。

圖2 正例Fig.2 Positive example

圖3 反例Fig.3 Counter example
采用Matlab編程,流程如下:
1)導入數據樣本,正例z1~z23,反例f1~f26;
2)提取數據屬性C1~C12,并用正例樣本統計得出24個規則邊界值 minC1,minC2,…,minC12,maxC1,maxC2,…,maxC12;
3)初始化種群,包括最優個體位置的位置初始化,以及最優個體目標函數值的初始化;設置種群規模,迭代次數,最大最小值;
4)進行第一次尋優過程,計算種群目標函數值,得到第一次尋優的最優個體位置及目標函數值,更新種群,再進行第二次尋優。到尋優次數達到50時,運行結束。
將算法獨立運行15次,得到最優解為:

其目標函數值均收斂到4.815,對應4條飛行動作識別規則為:
物理含義為:高度差小于8.51 m,高度差大于-11.63 m,高度累加變化量小于20.34 m,航向角累加變化量小于6.84°。且規則對應正例全部符合,反例沒有漏判。
為證明鯨魚算法在飛行動作識別規則提取的優越性能,復現了文獻[5]基于PSO的規則提取方法。由于原PSO優化算法是對連續函數,文中的解形式是符號化的01形式,無法用正常PSO算法計算,因而采用了離散二進制PSO,即BPSO算法進行計算,具體理論和公式見文獻[5]。
將BPSO算法獨立運行15次,其最優解為:

其目標函數值收斂到4.52,對應8條規則:

物理意義為:高度差大于-11.63 m,速度差大于-0.58,航向角累加變化量大于0.087,俯仰角累加變化量大于0.054,高度差小于8.51 m,高度累加變化量小于20.34 m,航向角累加變化量小于6.84°滾轉角最大值小于0.72°。
2種算法運行迭代曲線對比如圖4所示。由圖4和規則可以看出,WOA算法相比于BPSO收斂的目標函數值更大,結果更優,且規則更加簡潔,沒有冗余規則。

圖4 WOA與BPSO迭代曲線對比Fig.4 Comparison of WOAand BPSO iteration curves
本文針對智能優化算法提取飛行動作規則存在早熟收斂,容易陷入局部極值現象,介紹了一種新型仿生智能優化算法——鯨魚優化算法。經過Rastrigin測試函數及仿真實例表明,鯨魚優化算法尋優精度高于傳統智能優化算法PSO,提取的規則相比BPSO方法更簡潔、有效,提高了飛行動作識別知識庫建立的效率和精度,工程應用性較強。