侯文姝,陸銘華
(海軍潛艇學院,山東 青島,266199)
潛艇使用自航式聲誘餌對抗聲自導魚雷主要在于迅速抉擇對抗方案,確定潛艇機動規避的時機、潛艇轉向角、航速、聲誘餌發射時機、一次轉向角、變深航深和二次轉向角等參數,從而達到使魚雷與潛艇距離最大的優化目標。幾何分析[1]、解析模型[2]、并行算法[3-4]以及遺傳算法[5-7]等方法被用于求解該類問題。孟慶玉等[8]指出如果目標隨機機動或魚雷非直航搜索,由于魚雷和目標相互運動的確定性,使得應用解析法比較困難。采用大規模并行算法則對硬件要求比較高,在潛艇上實現難度較大。
粒子群優化(particle swarm optimization,PSO)[9]算法是計算智能領域除了蟻群算法、魚群算法之外的一種群體智能算法[10]。在此基礎上開展的研究也有很多,如Shi 等[11]提出動態調整慣性權重策略對其進行改進,Wang 等[12]引入收縮因子,Niu 等[13]采用自適應學習策略等。
對于潛艇使用單個小口徑自航式聲誘餌防御正在進行蛇形搜索聲自導魚雷,使魚雷與潛艇距離最大的問題,采用基于并行計算的改進PSO 算法進行優化。首先通過分別改變種群粒子數、迭代次數和粒子速度的上限以及加速度因子等參數和種群初始化方法,研究這些因素對并行計算PSO算法的影響,然后進行算法改進,使得算法在不增加計算量的情況下得到更快收斂。
在三維空間中,當潛艇接收到魚雷報警信號時,聲自導魚雷正在采用主被動聯合自導進行蛇行搜索,發現潛艇或誘餌后立即進行尾追機動跟蹤。對聲誘餌進行尾追跟蹤時,一旦潛艇進入魚雷對潛艇的開始識別距離且在魚雷主被動聲自導探測范圍內,魚雷棄聲誘餌改為尾追潛艇。魚雷一旦丟失聲誘餌或與聲誘餌接近到一定距離時,識別出誘餌為假目標,魚雷進行環形機動搜索潛艇[14]。若環形機動一圈后未搜索到潛艇,則繼續進行蛇形機動搜索潛艇。
傳播損失TL采用Baker 給出的表面聲道經驗公式計算[15];海洋環境噪聲NL服從Kundson 譜[15];潛艇反射強度TS隨信號入射方向的變化規律可以近似表示為蝶形[8];潛艇輻射噪聲強度采用經驗公式[8]計算。由于聲誘餌尾部存在盲區[5],如果目標和誘餌同時進入魚雷的自導作用范圍,則魚雷優先跟蹤目標[5]。魚雷的主被動聲自導能否發現目標采用基于聲吶方程的魚雷主動檢測模型和被動檢測模型[7-8]進行判別。魚雷接收頻段內的魚雷自噪聲隨深度變化[8]。
基于并行計算的PSO 算法適應度值取潛艇聲誘餌防御魚雷仿真結束時潛艇與魚雷的距離d,采用四線程并行計算方法對一次迭代過程中的多個粒子適應度值進行計算。設D(D=7)維空間中,由n個粒子組成的種群為P=(P1,P2,···,Pn),第i個粒子為向量Pi=(t1,α1,z1,t2,α2,z2,α3)iT,代表第i個粒子在D維搜索空間中的位置,也代表問題的一個潛在解[10],其中:t1為潛艇機動規避的時機;α1為潛艇轉向角;z1為潛艇變深航深;t2為聲誘餌發射時機;α2和 α3為聲誘餌一次和二次轉向角;z2為聲誘餌變深航深。參數取值范圍:t1,t2∈[0,tend],z1,z2∈[10,300],α1∈(-180,180],α2,α3∈[-90,90],粒子位置被限制的區間記為[Pmin,Pmax]。轉向角為0 表示不變向,小于0 表示左轉,大于0 表示右轉,所有參數取整。第i個粒子的速度為Vi=(V1i,V2i,V3i,V4i,V5i,V6i,V7i)T,速度被限制的區間為[-Vmax,Vmax]。粒子和速度初始化是通過生成取值范圍內的隨機數取整得到的。第k+1 次迭代中粒子速度更新和位置更新分別為[10]
式中:c1和c2為加速度因子,為非負的常數;r1和r2為分布在[0,1]區間內的隨機數[10];個體極值是第i個粒子計算出的最優適應度值所對應的粒子位置;群體極值Pgbest是種群中所有粒子搜索到的適應度最優位置[10]。
假設潛艇航向為90°,航深為80 m;魚雷報警舷角右舷140°,航向為40°,航深為40 m。時長tend=7 min,仿真間隔dt=0.1 s。
粒子群迭代次數50 次,種群粒子數為60 個,粒子群加速度因子c1和c2均取值為1,粒子速度的上限Vmax=[10,6,20,10,20,10,20]T,種群初始化采用取隨機數的方法,1 次仿真中粒子個體極值的適應度值如圖1(a)所示。圖1(a)中,有4 個粒子表現比較優異,適應度值大于7 000 m,還有2 個粒子適應度值分別在6 700 m 左右,這些表現優異的粒子大多在第20~40 次迭代過程中收斂。

圖1 粒子個體極值適應度值Fig.1 Fitness of individual extreme value of each particle
通過分別改變種群粒子數、迭代次數、粒子速度的上限、加速度因子等參數和種群初始化方法,研究這些因素對算法的影響。粒子個體極值的適應度值如圖1(b)~(f)所示。其中,圖1(f)采用的種群初始化方法為在一個可行解附近生成粒子的方法,可行解為[10,6,20,10,20,10,20]T,對應的適應度值d=7 348 m。該可行解為圖1(a)最后一次迭代群體極值。
分別采用增加種群粒子數(圖1(b))、增加迭代次數(圖1(c))、改變粒子速度上限的方法(圖1(d))使得個體極值適應度值大于7 000 m 的粒子個數也有所增加。加速度因子均取值為2(圖1(e))對結果影響不大。種群初始化方法改變(圖1(f))后,20 個粒子在第1 次迭代時的個體極值的適應度值大于7 000 m,其他粒子在迭代過程中個體極值的適應度值也能逐步增大,到仿真結束有51 個粒子適應度值大于7 000 m,20 個粒子大于7 500 m。由于種群初始化方法為在一個可行解附近生成粒子,因此所有粒子都是在該可行解附近更新位置,達到了針對該可行解進一步尋優的目的。
對這6 種情況分別進行1 000 次仿真,每一次仿真最后一次迭代群體極值的適應度值分布如圖2 所示,平均仿真耗時分別為18.82、39.05、36.16、18.80、18.78 和21.88 s。圖2(a)群體極值的適應度值在1 500~7 700 m 范圍內,主要分布在1 800、3 800 和7 600 m 左右,這說明在1 000 次仿真中,并不是所有仿真最后一次迭代群體極值適應度值都能達到7 000 m,仍然存在粒子無法尋優至適應度值較大的情況。且根據分布情況可以看出,圖2(c)和(d)所示群體極值的適應度值在7 500 m以上的統計次數較多,分別達到741 和785 次,表現比較優秀,圖2(b)所示次之,圖2(e)最差。圖2(f)所示的1 000 次仿真適應度值均大于7 500 m,而且出現40 次仿真適應度值大于7 700 m 的情況。

圖2 最后一次迭代群體極值適應度值分布Fig.2 Distribution of fitness of swarm extreme value in the last iteration
參數和種群初始化方法的改變對優化結果的影響主要是: 增大加速度因子沒有改善結果;增加種群粒子數和迭代次數對仿真結果有一定的改善,但是計算量也相應增加;擴大粒子速度的上限取值對仿真結果改善較大;改變種群初始化方法對仿真結果改善的最大,絕大多數粒子都能獲得較大的適應度值,而且適應度值偏高。因此改進的方向主要是: 1) 擴大粒子速度的上限;2) 引入在可行解附近生成粒子群的方法。
算法結構改進采用引入在可行解附近生成粒子群的方法時,不能直接采用圖1(f)所示在一個可行解附近生成粒子的種群初始化方法,因為該可行解的獲取必須建立在一次仿真基礎上,其計算量時必須疊加這次仿真,導致仿真耗時增加近一倍。
在粒子群算法流程[10]基礎上,選擇在迭代過程中獲取可行解并在其附近生成粒子群對PSO 算法進行改進,基于四線程并行計算對潛艇聲誘餌防御魚雷數學模型進行尋優的改進PSO 算法流程如圖3 所示,改進部分用虛線框表示。在粒子位置被限制的區間內生成隨機數并取整獲得初始化種群,計算初始化種群的粒子適應度值,并取最大值對應的粒子位置為群體極值。為了在不大幅增加計算量的情況下引入在可行解附近生成粒子群的方法,須在迭代過程中獲得可行解。取迭代過程中某一次迭代較優的群體極值為可行解。當群體極值適應度值較大時,群體極值適應度值對應的粒子位置為可行解,隨即在群體極值附近生成粒子位置。當群體極值適應度值較小時,隨機生成粒子群粒子位置。然后采用式(1)和式(2)粒子速度更新和位置更新,再采用四線程并行計算粒子適應度值,并更新個體極值和群體極值。

圖3 基于并行計算的改進PSO 算法流程Fig.3 Flowchart of improved PSO algorithm based on parallel computation
圖3 中,當迭代次數為50 次時,在第20 次迭代開始時根據第19 次迭代群體極值是否超過閾值來選擇2 種不同的方法重新生成第19 次迭代所有粒子位置。閾值為4 000 m 是根據圖2 統計結果分布情況選取的,當適應度值大于4 000 m 時,適應度值主要分布在7 600 m 左右。粒子群算法改進主要體現在: 第19 次迭代群體極值適應度值大于等于4 000 m 時,在第19 次迭代群體極值附近生成粒子群,小于4 000 m 時,隨機生成粒子群,為
取粒子群迭代次數50 次,種群粒子數為60個,粒子群加速度因子c1和c2均取值為1,粒子速度的上限取圖1(d)中采用的Vmax=[20,12,40,20,40,20,40]T,仿真耗時20.29 s,最后一次迭代群體極值為Pgbest=[0,71,272,0,-90,10,-71]T,得d=7 647 m,潛艇聲誘餌防御魚雷仿真軌跡如圖4 所示。粒子個體極值的適應度值隨迭代次數的變化情況如圖5 所示,在第20 次迭代時16 個粒子適應度值大于4 000 m,其中有12 個粒子適應度值大于7 000 m,最后一次迭代時,35 個粒子適應度值大于7 000 m,其中15 個粒子適應度值大于7 500 m,該次仿真粒子群總體明顯優于圖1(a)~(e)的情況。第20 次迭代開始粒子適應度值部分大幅上升,與圖1(f)中種群初始化時獲得大量適應度值較高粒子的情況相仿,說明在迭代過程中獲取可行解并在其附近生成粒子群的方法對PSO 算法進行改進取得成效。

圖4 潛艇聲誘餌防御魚雷仿真軌跡Fig.4 Simulation track of defending torpedo by acoustic decoy of submarine

圖5 改進PSO 算法的粒子個體極值適應度值Fig.5 Fitness of individual extreme value of each particle of improved PSO algorithm
對改進PSO 算法進行1 000 次仿真,每一次仿真最后一次迭代群體極值的適應度值分布如圖6所示,907 次仿真最后一次迭代群體極值的適應度值達到7 000 m 以上,7 500 m 以上的統計次數達到867 次,適應度值大于7 500 m 的仿真次數比改進前(圖2(a))提高了95%,高于種群粒子數為120個(圖2(c))和擴大粒子速度的上限(圖2(d))這2 種情況,接近種群初始化方法為在一個可行解附近生成粒子(圖2(f))情況,說明算法得到改善。

圖6 改進PSO 算法群體極值適應度值分布Fig.6 Distribution of fitness of swarm extreme value for improved PSO algorithm
在潛艇聲誘餌防御聲自導魚雷時,為快速得出魚雷與潛艇距離最大化的防御方案,分析了種群粒子數、迭代次數、粒子速度的上限、加速度因子和種群初始化方法等因素對基于并行計算的PSO算法的影響,確定了算法的改進方向主要有: 1) 擴大粒子速度的上限;2) 引入在可行解附近生成粒子的方法。改進PSO 算法借鑒了在可行解附近生成粒子的方法,在迭代過程中重新生成粒子群。這種方法改善了算法的收斂情況,適應度值大于7 500 m 的仿真次數比改進前提高了95%,且沒有增加計算量,收斂得更快,能夠提升解算效率。
該算法存在的問題是粒子群的多樣性仍受到一定的影響,下一步可以通過增加可行解數量的方法改進種群多樣性的問題。