張安, 徐雙飛, 畢文豪, 徐晗
(西北工業(yè)大學(xué) 航空學(xué)院, 西安 陜西 710072)
遠(yuǎn)距離空地多目標(biāo)攻擊是現(xiàn)代戰(zhàn)爭中的一種新型作戰(zhàn)形式,我方攻擊機(jī)編隊(duì)攜帶并發(fā)射多枚、多種型號的空地導(dǎo)彈[1],各空地導(dǎo)彈由多個(gè)制導(dǎo)站接力制導(dǎo)[2],對敵方多個(gè)地面目標(biāo)實(shí)施精確打擊,具有打擊范圍更廣、抗干擾能力更強(qiáng)的特點(diǎn)。為了提升打擊成功率,并減少資源消耗,需要在一定的約束下,對各攻擊機(jī)的打擊目標(biāo)、使用的空地導(dǎo)彈類型與數(shù)量,以及各導(dǎo)彈的接力制導(dǎo)方案等進(jìn)行規(guī)劃,即涉及武器-目標(biāo)分配(WTA)和接力制導(dǎo)規(guī)劃 2類問題。
WTA將有限的武器彈藥,通過最優(yōu)策略,分配到相關(guān)目標(biāo),實(shí)現(xiàn)作戰(zhàn)效能最大化,是一種多參數(shù)、多約束、非線性優(yōu)化問題[3-5]。傳統(tǒng)WTA方法以解析法為主,包括分支定界法[6]、割平面法[7]、隱枚舉法等,這些方法對復(fù)雜WTA問題的適用性較差。WTA智能優(yōu)化方法是近年來的主要研究方法:夏維等[8]提出包含變量隨機(jī)分解、合作協(xié)調(diào)進(jìn)化和種群非支配排序的改進(jìn)多目標(biāo)粒子群優(yōu)化算法,實(shí)現(xiàn)大規(guī)模WTA問題的實(shí)時(shí)求解;王然輝等[9]使用遺傳算法求解對地打擊WTA問題,并通過控制種群規(guī)模和改進(jìn)變異策略,提升算法效率,避免算法早熟;Chang等[10]針對多階段動(dòng)態(tài)WTA問題,以最小化敵方目標(biāo)的生存概率為優(yōu)化目標(biāo),采用改進(jìn)的人工蜂群算法進(jìn)行求解。其他WTA智能優(yōu)化方法還包括神經(jīng)網(wǎng)絡(luò)法[11]、K近鄰算法[12]、強(qiáng)化學(xué)習(xí)算法[13]、布谷鳥算法[14]、模擬退火算法[15]等。當(dāng)前關(guān)于WTA的研究大多對作戰(zhàn)場景的設(shè)計(jì)較為簡單,直接給定武器種類、數(shù)量以及對各目標(biāo)的毀傷概率[16],忽略了作戰(zhàn)環(huán)境及作戰(zhàn)過程對打擊效果的影響。在遠(yuǎn)距離空地多目標(biāo)攻擊中,WTA需要考慮目標(biāo)位置、武器發(fā)射平臺(tái)位置、不同武器發(fā)射平臺(tái)的火力配置差異等因素,并與導(dǎo)彈的接力制導(dǎo)過程緊密結(jié)合。
規(guī)劃各空地導(dǎo)彈由哪些制導(dǎo)站進(jìn)行接力制導(dǎo)并規(guī)劃制導(dǎo)次序,屬于序列優(yōu)化[17-18]問題。目前關(guān)于序列優(yōu)化算法有一定的研究成果:Xu等[19]采用基于試飛任務(wù)序列的改進(jìn)遺傳算法,優(yōu)化多架試驗(yàn)機(jī)的試飛任務(wù)編排;竇建平等[20]采用基于可行工序序列的遺傳算法,對零件的加工工序和各工序匹配的機(jī)床、刀具等資源進(jìn)行優(yōu)化,這些研究方法對本研究具有指導(dǎo)意義。
本文研究針對遠(yuǎn)距離空地多目標(biāo)攻擊作戰(zhàn)任務(wù),設(shè)計(jì)更為復(fù)雜的作戰(zhàn)場景:對傳統(tǒng)WTA問題中的武器種類、數(shù)量、毀傷概率等因素進(jìn)行擴(kuò)展,考慮不同攻擊機(jī)的導(dǎo)彈配置差異,以及各攻擊機(jī)與各目標(biāo)在戰(zhàn)場中的位置分布,并在戰(zhàn)場中加入制導(dǎo)單元,將WTA與空地導(dǎo)彈的飛行過程及接力制導(dǎo)過程緊密結(jié)合。建立多目標(biāo)、多約束WTA與制導(dǎo)序列優(yōu)化模型,目標(biāo)函數(shù)為目標(biāo)綜合生存概率最小和總用彈量最少,約束條件涉及攻擊機(jī)導(dǎo)彈配置、導(dǎo)彈毀傷能力、目標(biāo)毀傷要求、制導(dǎo)站性能等。提出基于雙序列編碼的多種群帶精英策略的非支配排序遺傳算法(DSMPNSGA-Ⅱ),設(shè)計(jì)適用于WTA與制導(dǎo)序列優(yōu)化模型的編碼、解碼、選擇、交叉、變異等操作,并通過多種群策略提升解的質(zhì)量。通過算例仿真與算法對比,驗(yàn)證DSMPNSGA-Ⅱ求解WTA與制導(dǎo)序列優(yōu)化問題的有效性。
假設(shè)在未來某一遠(yuǎn)距離空地多目標(biāo)攻擊任務(wù)中,我方派出M架攻擊機(jī),每架攻擊機(jī)攜帶一定數(shù)量的同種類型或不同類型的空地導(dǎo)彈,對敵方N個(gè)地面固定目標(biāo)進(jìn)行打擊。我方已在戰(zhàn)場部署K個(gè)地面固定制導(dǎo)站,各制導(dǎo)站的制導(dǎo)區(qū)域(在二維平面的投影)為以制導(dǎo)站為圓心的圓,每個(gè)制導(dǎo)站可承擔(dān)多枚空地導(dǎo)彈的制導(dǎo)任務(wù)。作戰(zhàn)區(qū)域?yàn)槎S平面矩形區(qū)域。以矩形西北頂點(diǎn)為原點(diǎn)O,正東方向?yàn)閤軸正方向,正南方向?yàn)閥軸正方向,建立平面直角坐標(biāo)系。作戰(zhàn)場景如圖1所示。

圖1 作戰(zhàn)場景示意圖
圖1表示我方派出3架攻擊機(jī)P1~P3,對敵方2個(gè)地面目標(biāo)T1和T2進(jìn)行打擊,由4個(gè)制導(dǎo)站G1~G4對導(dǎo)彈進(jìn)行制導(dǎo)。目標(biāo)T1由攻擊機(jī)P1發(fā)射導(dǎo)彈進(jìn)行打擊,導(dǎo)彈由制導(dǎo)站G1和G2依次制導(dǎo);目標(biāo)T2由攻擊機(jī)P2和P3發(fā)射導(dǎo)彈進(jìn)行打擊,兩枚導(dǎo)彈分別由G1和G4、G3和G4依次制導(dǎo)。
本文研究假設(shè):圖1所示各攻擊機(jī)位置即為該攻擊機(jī)攜帶導(dǎo)彈的發(fā)射位置;各空地導(dǎo)彈在巡航平飛階段高度一致,在該高度對應(yīng)二維水平面內(nèi)進(jìn)行WTA與接力制導(dǎo)規(guī)劃;兩個(gè)制導(dǎo)站的制導(dǎo)區(qū)域有交集即可進(jìn)行制導(dǎo)交接。WTA與制導(dǎo)序列優(yōu)化問題需要在一定的約束下,對以下內(nèi)容進(jìn)行規(guī)劃:
1)規(guī)劃每個(gè)目標(biāo)由哪些攻擊機(jī)進(jìn)行打擊;
2)規(guī)劃每架攻擊機(jī)使用的導(dǎo)彈類型與數(shù)量;
3)規(guī)劃各導(dǎo)彈由哪些制導(dǎo)站依次接力制導(dǎo)。
優(yōu)化目的為提升對目標(biāo)的整體毀傷概率,并減少資源消耗。
1.2.1 模型參數(shù)定義
模型中的參數(shù)定義為:
1)攻擊機(jī)參數(shù)。攻擊機(jī)數(shù)量為M,第m架攻擊機(jī)記為Pm,位置為ppm=(ppxm,ppym),引入攻擊機(jī)導(dǎo)彈配置矩陣PM:
(1)
式中:pmm,h為第m行第h列元素,表示攻擊機(jī)Pm裝備第h種類型導(dǎo)彈的數(shù)量,取值范圍為非負(fù)整數(shù)集,h=1,2,…,H,H為導(dǎo)彈類型數(shù)量。
2)目標(biāo)參數(shù)。目標(biāo)數(shù)量為N,第n個(gè)目標(biāo)記為Tn,位置ptn=(ptxn,ptyn),價(jià)值系數(shù)為vn,各目標(biāo)的最小毀傷概率均為dpm,對各目標(biāo)的最大毀傷次數(shù)均為dnm。
3)制導(dǎo)站參數(shù)。制導(dǎo)站數(shù)量為K,第k個(gè)制導(dǎo)站記為Gk,位置為pgk=(pgxk,pgyk),制導(dǎo)區(qū)域?yàn)間xyk,各制導(dǎo)站制導(dǎo)半徑均為RG,制導(dǎo)能力均為CG。
4)導(dǎo)彈參數(shù)。空地導(dǎo)彈數(shù)量等于PM中所有元素之和,記為sum(PM),導(dǎo)彈類型數(shù)量為H,第i枚導(dǎo)彈的類型為mtypei(取值為不超過H的正整數(shù)),所屬攻擊機(jī)為mpi(取值為不超過M的正整數(shù)),引入導(dǎo)彈殺傷概率矩陣MT:
(2)
式中:mth,n為第h行第n列元素,表示第h種類型導(dǎo)彈對目標(biāo)Tn的殺傷概率,取值范圍為實(shí)數(shù)集(0,1)。
5)其他參數(shù):引入WTA矩陣PT和制導(dǎo)矩陣MG,作為本文研究的決策變量:
(3)
(4)
式中:pti,j為PT中的第i行第j列元素,取值為0或1,若取值為1則表示第i枚空地導(dǎo)彈攻擊目標(biāo)Tj,1在PT的每行元素中最多出現(xiàn)1次;MGi為第i枚導(dǎo)彈的制導(dǎo)序列,該導(dǎo)彈由制導(dǎo)站mgi,1、mgi,2、…、mgi,kmg(i)依次接力制導(dǎo),kmg(i)表示為第i枚導(dǎo)彈進(jìn)行制導(dǎo)的制導(dǎo)站數(shù)量,若該導(dǎo)彈不攻擊任何目標(biāo)則MGi=?,kmg(i)為0。
目標(biāo)綜合生存概率為f1,總用彈量為f2,f1和f2作為目標(biāo)函數(shù)。
1.2.2 目標(biāo)函數(shù)
本研究考慮目標(biāo)綜合毀傷概率最大和總用彈量最少兩個(gè)優(yōu)化目標(biāo)。為了使各目標(biāo)函數(shù)優(yōu)化方向一致(即均為最小值優(yōu)化),用目標(biāo)綜合生存概率最小代替目標(biāo)綜合毀傷概率最大的優(yōu)化目標(biāo)。兩個(gè)目標(biāo)函數(shù)計(jì)算公式如下:
1)目標(biāo)綜合生存概率最小:
(5)
式(5)以目標(biāo)的價(jià)值系數(shù)為權(quán)重,對各目標(biāo)的毀傷概率進(jìn)行線性加權(quán)求和,獲得目標(biāo)綜合毀傷概率,進(jìn)而計(jì)算目標(biāo)綜合生存概率,式(5)的推導(dǎo)過程見文獻(xiàn)[8]。
2)總用彈量最少:
(6)
式(6)表示PT中所有元素之和為總用彈量。
1.2.3 約束條件
本研究考慮約束條件包括:決策變量取值范圍約束、導(dǎo)彈攻擊能力約束、目標(biāo)最大毀傷次數(shù)約束、目標(biāo)最小毀傷概率約束、制導(dǎo)區(qū)域約束、制導(dǎo)能力約束。
1)決策變量取值范圍約束:
pti,j=0,1,i=1,2,…,sum(PM),j=1,2,…,N
(7)
(8)
式(7)表示PT中的元素取值為0或1;式(8)表示MG中元素的取值為制導(dǎo)站的編號,各制導(dǎo)站在同一導(dǎo)彈的制導(dǎo)序列中最多出現(xiàn)1次。
2)導(dǎo)彈攻擊能力約束:
(9)
式(9)表示每一枚導(dǎo)彈最多攻擊一個(gè)目標(biāo)。
3)目標(biāo)最大毀傷次數(shù)約束:
(10)
式(10)表示攻擊每個(gè)目標(biāo)的導(dǎo)彈數(shù)量最多為dnm。
4)目標(biāo)最小毀傷概率約束:
(11)
式(11)表示每個(gè)目標(biāo)的毀傷概率不小于dpm。
5)制導(dǎo)區(qū)域約束:
(12)
式(12)表示每一枚導(dǎo)彈所屬攻擊機(jī)的位置應(yīng)在其制導(dǎo)序列第一個(gè)制導(dǎo)站的制導(dǎo)范圍內(nèi);該導(dǎo)彈打擊的目標(biāo)應(yīng)在其制導(dǎo)序列最后一個(gè)制導(dǎo)站的制導(dǎo)范圍內(nèi);每個(gè)制導(dǎo)序列中相鄰制導(dǎo)站的制導(dǎo)范圍應(yīng)有交集,以滿足制導(dǎo)交接條件。
6)制導(dǎo)能力約束:
(13)
式中:fnum(x,y)表示x在向量y中出現(xiàn)的次數(shù)。式(13)表示每個(gè)制導(dǎo)站最多承擔(dān)CG枚空地導(dǎo)彈的制導(dǎo)任務(wù)。
帶精英策略的非支配排序遺傳算法(NSGA-Ⅱ)[21]是目前最流行的多目標(biāo)優(yōu)化算法之一,具有運(yùn)算速度較快、收斂性較好等優(yōu)點(diǎn),但也存在算法早熟、最優(yōu)解多樣性差的問題。本文需要對WTA方案和接力制導(dǎo)方案進(jìn)行規(guī)劃,求解空間以及約束條件都較為復(fù)雜。為將NSGA-Ⅱ合理應(yīng)用于WTA與制導(dǎo)序列優(yōu)化模型的求解,并克服傳統(tǒng)NSGA-Ⅱ的算法早熟問題,本文提出基于雙序列編碼的多種群NSGA-Ⅱ。本節(jié)內(nèi)容對DSMPNSGA-Ⅱ的關(guān)鍵步驟進(jìn)行介紹,其中涉及非支配排序、擁擠距離計(jì)算、精英保留等操作與傳統(tǒng)NSGA-Ⅱ相同,具體流程見文獻(xiàn)[22]。
2.1.1 編碼與解碼基本步驟
設(shè)計(jì)種群中每個(gè)個(gè)體包含兩條染色體,編碼分別為st和sg。st為WTA序列,sg為制導(dǎo)站序列,兩序列編碼分別為
(14)
(15)
式(14)表示st中sti的取值為第i枚導(dǎo)彈的打擊目標(biāo),若取值為0則該導(dǎo)彈不參與打擊任務(wù);式(15)表示每個(gè)制導(dǎo)站在sg中均出現(xiàn)CG次。
在編碼時(shí)需初始化st中每個(gè)目標(biāo)至少出現(xiàn) 1次(在目標(biāo)最小毀傷概率約束下,各目標(biāo)最少需要被攻擊1次),最多出現(xiàn)dnm次。
解碼過程如下所示:
1)對st進(jìn)行解碼,初始化PT中所有元素均為0,對于i=1,2,…,sum(PM),若sti≠0,則更新pti,n=1,其中n=sti;
2)根據(jù)式(10)和式(11)判斷PT是否滿足目標(biāo)最大毀傷次數(shù)約束和最小毀傷概率約束,若不滿足約束則賦值f1?1、f2?sum(PM),解碼結(jié)束,否則繼續(xù)解碼sg,初始化l=1,執(zhí)行步驟3;
3)根據(jù)PT確定第l枚導(dǎo)彈的攻擊目標(biāo),若該導(dǎo)彈無攻擊目標(biāo)則跳轉(zhuǎn)至步驟5,否則根據(jù)導(dǎo)彈發(fā)射位置(即所屬攻擊機(jī)位置)和目標(biāo)位置,對sg的剩余制導(dǎo)站進(jìn)行搜索,獲得該導(dǎo)彈的制導(dǎo)序列MGl,若無可行制導(dǎo)序列,則賦值f1?1、f2?sum(PM),解碼結(jié)束,否則執(zhí)行步驟4;
4)將MGl中的制導(dǎo)站從sg中刪除,每個(gè)制導(dǎo)站僅刪除一次;
5)更新l=l+1;
6)重復(fù)步驟3~步驟5,直到l>sum(PM);
7)計(jì)算目標(biāo)函數(shù)值f1和f2;
8)輸出決策變量PT和MG,目標(biāo)函數(shù)值f1和f2,解碼結(jié)束。
在解碼的步驟3中,導(dǎo)彈制導(dǎo)序列搜索方法為深度優(yōu)先搜索-Dijkstra(DFS-DJ)算法。
2.1.2 空地導(dǎo)彈制導(dǎo)序列搜索方法
本研究提出DFS-DJ搜索方法,用于空地導(dǎo)彈制導(dǎo)序列搜索,實(shí)現(xiàn)制導(dǎo)站序列的解碼。給定第l枚導(dǎo)彈所屬攻擊機(jī)位置、打擊目標(biāo)位置、剩余制導(dǎo)站序列sgl,制導(dǎo)序列搜索過程為:
1)對sgl進(jìn)行去重,每個(gè)制導(dǎo)站僅保留第1次出現(xiàn)的位置,去重后的制導(dǎo)站序列為sgl′;
2)構(gòu)建無向無權(quán)圖Gdfs=〈Vdfs,Edfs〉,頂點(diǎn)集Vdfs中的元素依次為起始點(diǎn)(對應(yīng)攻擊機(jī)位置)、中間點(diǎn)(依次對應(yīng)sgl′中的制導(dǎo)站位置)、目標(biāo)點(diǎn)(對應(yīng)目標(biāo)位置),根據(jù)各制導(dǎo)站的制導(dǎo)區(qū)域是否覆蓋攻擊機(jī)與目標(biāo)位置,以及制導(dǎo)區(qū)域是否有交集,構(gòu)建邊集Edfs;
3)對Gdfs進(jìn)行深度優(yōu)先搜索(DFS),獲得制導(dǎo)區(qū)域連通起始點(diǎn)到目標(biāo)點(diǎn)的制導(dǎo)站序列sgl″;
4)根據(jù)攻擊機(jī)位置、目標(biāo)位置和sgl″中的制導(dǎo)站位置重新構(gòu)建無向無權(quán)圖Gdj=〈Vdj,Edj〉,并采用Dijkstra算法[23]獲得導(dǎo)彈的制導(dǎo)序列MGl。
Dijkstra算法能夠獲得導(dǎo)彈的最短制導(dǎo)序列,減少制導(dǎo)站的占用,提升后續(xù)導(dǎo)彈制導(dǎo)序列搜索的成功率。本研究在使用Dijkstra算法搜索之前先進(jìn)行DFS,而不是直接使用Dijkstra算法,原因如下:
1)sgl中的制導(dǎo)站數(shù)量較多,對應(yīng)搜索節(jié)點(diǎn)較多,導(dǎo)致Dijkstra算法運(yùn)算速度較慢,通過DFS可以減少制導(dǎo)站數(shù)量,進(jìn)而減少搜索節(jié)點(diǎn)數(shù)量,提升運(yùn)算速度。
2)DSMPNSGA-Ⅱ旨在通過優(yōu)化sg中制導(dǎo)站的次序來優(yōu)化MG中各導(dǎo)彈的制導(dǎo)序列,Dijkstra算法在搜索過程中會(huì)遍歷當(dāng)前節(jié)點(diǎn)的所有相鄰節(jié)點(diǎn),sg中的制導(dǎo)站次序?qū)ijkstra算法結(jié)果影響較小,而對DFS結(jié)果影響較大,因此在Dijkstra算法前加入DFS算法,有利于提升DSMPNSGA-Ⅱ的搜索能力。
2.1.3 編碼與解碼示例
這里通過一個(gè)例子說明編碼與解碼的過程,如圖2所示,本例包含3架攻擊機(jī)、2個(gè)目標(biāo)和4個(gè)制導(dǎo)站,設(shè)每個(gè)攻擊機(jī)攜帶1枚導(dǎo)彈,CG為2。

圖2 編碼和解碼示意圖
假設(shè)某一個(gè)體的兩條染色體編碼為st=[1,2,0]、sg=[1,2,3,4,1,2,3,4],解碼過程如下:
1)根據(jù)st確定P1發(fā)射導(dǎo)彈打擊T1,P2發(fā)射導(dǎo)彈打擊T2,P3攜帶的導(dǎo)彈不參與打擊任務(wù);
2)設(shè)sgl=sg,對sgl去重得到sgl′=[1,2,3,4],根據(jù)P1和T1的位置以及sgl′,通過深度優(yōu)先搜索獲得sgl″=[1,2,3],再使用Dijkstra算法獲得第1枚導(dǎo)彈的制導(dǎo)序列MG1=[1,3];
3)從sg中將1和3均刪除一次,更新制導(dǎo)站序列為sg=[2,4,1,2,3,4];
4)根據(jù)P2和T2的位置以及sg,使用DFS算法和Dijkstra算法,獲得MG2=[1,2,4];
5)由于P3攜帶的導(dǎo)彈不參與打擊任務(wù),故解碼結(jié)束,得到PT和MG分別為
根據(jù)PT和MG計(jì)算f1和f2。
可以看出,本文研究設(shè)計(jì)的編碼與解碼方式建立了從st和sg到PT和MG的映射,后續(xù)通過遺傳算法的選擇、交叉、變異等操作,實(shí)現(xiàn)對st和sg的優(yōu)化,進(jìn)而實(shí)現(xiàn)對WTA方案及導(dǎo)彈制導(dǎo)序列的優(yōu)化。
2.2.1 選擇算子
選擇算子采用二元錦標(biāo)賽選擇法[24]。在選擇之前已對種群進(jìn)行了非支配排序與擁擠距離計(jì)算。對于待選擇的兩個(gè)個(gè)體,選擇Pareto等級較小的個(gè)體進(jìn)入新種群;若Pareto等級相同,則選擇擁擠距離較大的個(gè)體進(jìn)入新種群;若擁擠距離也相同,則隨機(jī)選擇一個(gè)個(gè)體進(jìn)入新種群。
2.2.2 交叉算子
設(shè)計(jì)交叉算子基本步驟如下所示(其中對sg的交叉參考文獻(xiàn)[19]):
1)設(shè)交叉概率為pc(0≤pc≤1),待交叉的兩個(gè)個(gè)體的染色體分別為st1和sg1、st2和sg2;
2)生成隨機(jī)數(shù)0≤r≤1,若r>pc則兩個(gè)體不進(jìn)行交叉,否則交叉繼續(xù)進(jìn)行;
3)st1與st2進(jìn)行交叉,生成隨機(jī)整數(shù)i和j滿足1≤i 4)sg1與sg2進(jìn)行交叉,生成隨機(jī)整數(shù)i和j滿足1≤i 5)在sg2中尋找s1中的所有基因,并記錄基因相對位置為s1′,在sg1中尋找s2中的所有基因,并記錄基因相對位置為s2′(這里對同一制導(dǎo)序列中多次出現(xiàn)的相同制導(dǎo)站進(jìn)行嚴(yán)格區(qū)分,確保序列中各基因的唯一性); 6)在sg1中用s1′替換s1,在sg2中用s2′替換s2,得到兩條新的染色體sg1′和sg2′。 這里給出st與sg的交叉示例: ①假設(shè)st1=[1,2,2,3],st2=[3,1,1,2],交叉位置為第1位和第2位,首先交換st1和st2的第1位基因,交換后st1不滿足目標(biāo)1的毀傷次數(shù)約束(無導(dǎo)彈攻擊目標(biāo)1,必然違反目標(biāo)最小毀傷概率約束),故兩基因再次交換;然后交換st1和st2的第2位基因,不違反目標(biāo)毀傷次數(shù)約束;交叉后的基因序列為st1′=[1,1,2,3]、st2′=[3,2,1,2]。 ②假設(shè)sg1=[1,2,3,4,5,6]、sg2=[1,3,5,2,4,6],若選取sg1中的片段s1=[2,3,4],則s1′=[3,2,4](因?yàn)樵趕g2中,基因2、3、4的相對位置為3-2-4),即sg1變?yōu)閟g1′=[1,3,2,4,5,6],對sg2執(zhí)行類似的操作。 2.2.3 變異算子 設(shè)計(jì)變異算子基本步驟如下所示(其中對sg的變異參考文獻(xiàn)[19]): 1)設(shè)變異概率為pmu(0≤pmu≤1),待變異個(gè)體的兩條染色體為st和sg; 2)生成隨機(jī)數(shù)0≤r≤1,若r>pmu則該個(gè)體不進(jìn)行變異,否則變異繼續(xù)進(jìn)行; 3)生成隨機(jī)整數(shù)1≤i≤sum(PM),設(shè)st的第i位基因?yàn)閚0,生成隨機(jī)整數(shù)0≤n1≤N,用n1替換n0; 4)若n0≠0,且fnum(n0,st)<1,則隨機(jī)選擇一位st中值為0的基因(非第i位基因),將其值變?yōu)閚0;若n1≠0,且fnum(n1,st)>dnm,則隨機(jī)選擇一位st中值為n1的基因(非第i位基因),將其值變?yōu)?;得到新的染色體st′; 5)隨機(jī)選取sg中的某一片段s,將s隨機(jī)打亂為s′,用s′替換s,得到新的染色體sg′。 這里給出st和sg的變異示例: ①假設(shè)st=[2,1,1,1,0,3],變異位置為第1位,st的第1位基因?yàn)閚0=2,生成隨機(jī)數(shù)n1=1,則st變?yōu)閟t=[1,1,1,1,0,3];判斷攻擊目標(biāo)2的導(dǎo)彈數(shù)量小于1,需要將st的第5位基因由0變?yōu)?;假設(shè)dnm=3,則判斷攻擊目標(biāo)1的導(dǎo)彈數(shù)量超過目標(biāo)最大毀傷次數(shù),需要將st的第2、3、4位基因中的一位由1變?yōu)?;最終得到新的染色體st′。 ②假設(shè)sg=[1,2,3,2,1,3],選取s=[2,3,2],則s′的可能取值為[2,2,3]、[2,3,2]、[3,2,2],用s′替換s得到新的染色體sg′。 將本文研究設(shè)計(jì)的交叉算子和變異算子作用于原本可行的個(gè)體(即解碼結(jié)果不違反約束),操作后的個(gè)體解碼結(jié)果必然滿足1.2.3節(jié)的約束1、2、3、6,減少非可行解的產(chǎn)生。對于違反約束4或5的個(gè)體(即目標(biāo)毀傷概率達(dá)不到最小毀傷概率,或找不到可行的制導(dǎo)序列),通過選擇操作進(jìn)行淘汰。 多種群NSGA-Ⅱ設(shè)置多個(gè)子種群,各子種群采用不同的控制參數(shù),在迭代進(jìn)化的過程中,通過移民算子,將各子種群中較為優(yōu)秀的個(gè)體加入其它子種群,實(shí)現(xiàn)各子種群的協(xié)同進(jìn)化,有利于克服傳統(tǒng)遺傳算法的算法早熟問題。 本文研究設(shè)計(jì)多種群NSGA-Ⅱ的子種群數(shù)量為nGA,各子種群規(guī)模均為nscale,迭代次數(shù)均為nev,第i個(gè)子種群的初始交叉概率為pc0i,最終交叉概率為pc1i,初始變異概率為pmu0i,最終變異概率為pmu1i,第i個(gè)種群在第j輪迭代中的交叉概率為pci,j,變異概率為pmui,j,計(jì)算公式為 (16) 在每一代進(jìn)化中,各子種群均完成精英保留操作之后,進(jìn)行移民操作,步驟如下: 1)對于每個(gè)子種群,選出所有Pareto等級為1的個(gè)體,目標(biāo)函數(shù)值相同的多個(gè)個(gè)體只保留一個(gè),獲得各子種群的移民個(gè)體; 2)將第i個(gè)子種群的所有移民個(gè)體復(fù)制添加至第i+1個(gè)子種群(i=1,2,…,nGA-1),第nGA個(gè)子種群的所有移民個(gè)體復(fù)制添加至第1個(gè)子種群; 3)各子種群重新進(jìn)行非支配排序、擁擠距離計(jì)算和精英保留。 決策者根據(jù)任務(wù)需求或自身偏好,從最終種群中選擇某一個(gè)體,解碼獲得WTA方案與接力制導(dǎo)方案,作為最終方案。 DSMPNSGA-Ⅱ流程如圖3所示。 圖3 DSMPNSGA-Ⅱ流程圖 具體流程如下: 1)參數(shù)與種群初始化,初始化參數(shù)包括攻擊機(jī)、目標(biāo)、制導(dǎo)站、導(dǎo)彈參數(shù)及遺傳算法相關(guān)參數(shù),種群初始化隨機(jī)生成各子種群各個(gè)體的染色體基因序列,并解碼計(jì)算目標(biāo)函數(shù); 2)各子種群進(jìn)行非支配排序、擁擠距離計(jì)算、選擇、交叉、變異、精英保留等操作; 3)子種群進(jìn)行移民操作; 4)重復(fù)步驟2和步驟3,直到達(dá)到最大迭代次數(shù); 5)將各子種群合并,并進(jìn)行非支配排序; 6)從非支配個(gè)體中選擇某一個(gè)體,解碼獲得最終WTA與制導(dǎo)序列結(jié)果; 7)輸出最終方案。 為了驗(yàn)證本文提出的DSMPNSGA-Ⅱ求解空地多目標(biāo)攻擊WTA與制導(dǎo)序列優(yōu)化問題的有效性,在Intel(R) Core(TM) i9-10900K 3.7 GHz CPU、16.0 GB RAM、Windows 7實(shí)驗(yàn)平臺(tái)上,在Python 3.6實(shí)驗(yàn)環(huán)境下進(jìn)行仿真計(jì)算。 作戰(zhàn)區(qū)域東西距離為400 km,南北距離為200 km;攻擊機(jī)數(shù)量M為10;目標(biāo)數(shù)量N為5,目標(biāo)最小毀傷概率dpm為0.6,最大毀傷次數(shù)dnm為3,各目標(biāo)價(jià)值系數(shù)v1~v5分別為0.2、0.1、0.3、0.25、0.15;制導(dǎo)站數(shù)量K為25,制導(dǎo)半徑RG為60 km,制導(dǎo)能力CG為3。各攻擊機(jī)位置、目標(biāo)位置和制導(dǎo)站位置如表1所示。 表1 攻擊機(jī)、目標(biāo)、制導(dǎo)站位置 空地導(dǎo)彈類型數(shù)量H為3,導(dǎo)彈數(shù)量為25,攻擊機(jī)導(dǎo)彈配置矩陣PM如下: 導(dǎo)彈殺傷概率矩陣MT如下: 作戰(zhàn)場景如圖4所示,圖4展示了本算例中各攻擊機(jī)、目標(biāo)、制導(dǎo)站的位置與編號,以及各制導(dǎo)站的制導(dǎo)區(qū)域。 圖4 算例作戰(zhàn)場景示意圖 遺傳算法參數(shù)為:子種群數(shù)量nGA為3,種群規(guī)模nscale為50,迭代次數(shù)nev為30,3個(gè)種群的初始交叉概率分別為0.5、0.8、0.5,最終交叉概率分別為0.1、0.3、0.1,初始變異概率分別為0.1、0.1、0.3,最終變異概率分別為0.02、0.02、0.1。 經(jīng)過仿真計(jì)算,得到10種非支配的WTA與制導(dǎo)序列結(jié)果,各結(jié)果的目標(biāo)綜合生存概率f1、總用彈量f2如表2所示。 表2 算例結(jié)果 在表2中,完成空地多目標(biāo)攻擊任務(wù)所需的最少用彈量為5,此時(shí)每個(gè)目標(biāo)僅被一枚空地導(dǎo)彈攻擊,滿足各目標(biāo)最小毀傷次數(shù)與最小毀傷概率約束;隨著用彈量的不斷增加,目標(biāo)的綜合生存概率不斷減小,即綜合毀傷概率不斷增大;最大用彈量為14,受到目標(biāo)最大毀傷次數(shù)與制導(dǎo)站制導(dǎo)能力的限制,用彈量無法繼續(xù)增加,綜合毀傷概率無法繼續(xù)提升。 決策者根據(jù)任務(wù)需求或自身偏好,從表2中選擇一種方案作為最終方案。例如打擊任務(wù)要求目標(biāo)的綜合毀傷概率達(dá)到0.93,即目標(biāo)綜合生存概率不得超過0.07,則從結(jié)果7~10中選擇用彈量最少的方案,即將結(jié)果7對應(yīng)的WTA方案與接力制導(dǎo)方案作為最終方案,方案詳情如表3所示。 表3 最終方案詳情 繪制最終WTA與接力制導(dǎo)方案如圖5所示,圖5(a)~圖5(e)展示了參與打擊任務(wù)的各導(dǎo)彈航跡以及為導(dǎo)彈進(jìn)行接力制導(dǎo)的制導(dǎo)站,各導(dǎo)彈航跡使用A*算法[25]規(guī)劃得到。其中對于圖5(d),打擊目標(biāo)4的空地導(dǎo)彈有3枚,而圖中只顯示了2條導(dǎo)彈軌跡,原因是其中兩枚導(dǎo)彈均由6號攻擊機(jī)發(fā)射,導(dǎo)彈軌跡重合。 圖5 最終WTA與接力制導(dǎo)方案 為充分展示DSMPNSGA-Ⅱ的優(yōu)化效果,將算法運(yùn)行20次,繪制平均f1、f2的變化曲線如圖6所示。平均目標(biāo)函數(shù)值計(jì)算方法為:記錄每次運(yùn)行的每一輪迭代中,種群所有個(gè)體f1、f2的平均值,并計(jì)算相同迭代次數(shù)下,各目標(biāo)函數(shù)平均值對算法運(yùn)行次數(shù)的平均值。 圖6 平均目標(biāo)函數(shù)值變化曲線 從圖6可以看出:在迭代初期,f1與f2均呈下降趨勢,故DSMPNSGA-Ⅱ能夠有效實(shí)現(xiàn)空地多目標(biāo)攻擊WTA與制導(dǎo)序列的優(yōu)化;而在迭代后期,兩目標(biāo)函數(shù)值均出現(xiàn)波動(dòng),平均總用彈量甚至略有上升,原因是兩個(gè)目標(biāo)函數(shù)存在耦合,不會(huì)同時(shí)達(dá)到最小,并且迭代后期,很多個(gè)體已成為非支配最優(yōu)個(gè)體,繼續(xù)迭代只會(huì)將一種非支配最優(yōu)個(gè)體轉(zhuǎn)化為另一種非支配最優(yōu)個(gè)體,若出現(xiàn)大量個(gè)體向f1減小、f2增加方向轉(zhuǎn)化的情況,則平均用彈量上升。 對本研究提出的DSMPNSGA-Ⅱ,與單種群NSGA-Ⅱ以及文獻(xiàn)[26]提出的多目標(biāo)離散粒子群優(yōu)化(MODPSO)算法分別進(jìn)行對比,對比算法參數(shù)設(shè)置如下: 1)單種群NSGA-Ⅱ:種群規(guī)模為150(與多種群NSGA-Ⅱ的子種群規(guī)模之和相同),初始交叉概率為0.5,最終交叉概率為0.1,初始變異概率為0.1,最終變異概率為0.02; 2) MODPSO算法:種群規(guī)模為150,初始變異概率為0.1,最終變異概率為0.02,Pareto外部檔案最大規(guī)模為50。 通過3個(gè)算例進(jìn)行對比,各算例的主要區(qū)別為制導(dǎo)站的數(shù)量K與制導(dǎo)能力CG,各算例參數(shù)設(shè)置如下: 1)算例1:算例參數(shù)與3.1節(jié)所述參數(shù)相同; 2)算例2:CG為2,其余參數(shù)與算例1相同; 3)算例3:K為17(從圖4中刪去編號為2、4、6、8、16、17、23、24的制導(dǎo)站),其余參數(shù)與算例1相同。 在每個(gè)算例中,3種算法均運(yùn)行20次,算法性能的評價(jià)指標(biāo)如下: 1)平均計(jì)算時(shí)長:算法每次運(yùn)行時(shí)長的平均值,反映算法的計(jì)算速度; 2)平均非支配解數(shù)量:算法每次運(yùn)行所得非支配解種類數(shù)的平均值,反映算法優(yōu)化結(jié)果的多樣性; 3)平均非支配比率:將不同算法的非支配解合并,并進(jìn)行非支配排序,獲得總非支配解集,各算法原非支配解在總非支配解集中所占比例即為各算法的非支配比率[27],該指標(biāo)反映算法所得非支配解的質(zhì)量。 各算例對應(yīng)的算法對比結(jié)果如表4~表6所示。 表4 算例1算法對比結(jié)果 表5 算例2算法對比結(jié)果 表6 算例3算法對比結(jié)果 從表4~表6可以看出,對于3種多目標(biāo)優(yōu)化算法,在算例1中,平均計(jì)算時(shí)長更長、平均非支配解數(shù)量更多。與算例1相比,算例2降低了制導(dǎo)站的制導(dǎo)能力,算例3減少了制導(dǎo)站的數(shù)量,二者都會(huì)造成可行WTA與接力制導(dǎo)方案數(shù)量的下降,即平均非支配解數(shù)量的下降,但也使得算法搜索空間變小、染色體長度縮短,算法操作得以簡化,因此算法速度有所提升,即平均計(jì)算時(shí)長下降。 3種算法對比結(jié)果如下: 1)計(jì)算速度方面,DSMPNSGA-Ⅱ略慢于單種群NSGA-Ⅱ(平均計(jì)算時(shí)長在算例1~算例3中分別落后1.61 s、1.08 s、0.55 s),而明顯快于MODPSO算法(平均計(jì)算時(shí)長在算例1~3中分別提升79.01 s、54.37 s、48.10 s)。算法的計(jì)算量主要在對個(gè)體的解碼并計(jì)算目標(biāo)函數(shù)值上,一旦個(gè)體基因發(fā)生了改變,則需要重新計(jì)算目標(biāo)函數(shù)值。DSMPNSGA-Ⅱ的第2和第3種群分別擁有更大的交叉概率與變異概率,與單種群NSGA-Ⅱ相比,個(gè)體交叉或變異次數(shù)更多,因此DSMPNSGA-Ⅱ的計(jì)算速度略慢于單種群NSGA-Ⅱ;而MODPSO算法的每個(gè)個(gè)體在每輪迭代中都會(huì)進(jìn)行交叉操作,并重新解碼計(jì)算目標(biāo)函數(shù)值,因此計(jì)算速度最慢; 2)優(yōu)化結(jié)果多樣性方面,DSMPNSGA-Ⅱ顯著優(yōu)于單種群NSGA-Ⅱ(平均非支配解數(shù)量在算例1~3中分別提升1.05、0.60、0.85),略優(yōu)于MODPSO算法(平均非支配解數(shù)量在算例1~3中分別提升0.45、0.20、0.05)。可以看出,采用了多種群策略的DSMPNSGA-Ⅱ能夠獲得更為多樣的WTA與接力制導(dǎo)方案。 3)非支配解質(zhì)量方面,與單種群NSGA-Ⅱ和MODPSO算法相比,DSMPNSGA-Ⅱ的非支配比率更高(在算例1~3中的平均非支配比率比單種群NSGA-Ⅱ分別高26.00%、30.94%、36.78%,比MODPSO算法分別高12.24%、4.57%、6.05%),因此DSMPNSGA-Ⅱ的求解質(zhì)量更高。 綜上,根據(jù)不同制導(dǎo)站數(shù)量與制導(dǎo)能力下的算例仿真與算法對比結(jié)果,DSMPNSGA-Ⅱ在計(jì)算速度上略慢于單種群NSGA-Ⅱ,但明顯快于MODPSO算法;在優(yōu)化結(jié)果多樣性以及求解質(zhì)量方面,均優(yōu)于單種群NSGA-Ⅱ和MODPSO算法。在優(yōu)化問題規(guī)模較大、可行WTA與接力制導(dǎo)方案數(shù)量較多時(shí),DSMPNSGA-Ⅱ的優(yōu)勢更為明顯。 本文對遠(yuǎn)距離空地多目標(biāo)攻擊中亟需解決的WTA與空地導(dǎo)彈接力制導(dǎo)規(guī)劃問題進(jìn)行了研究。得出以下主要結(jié)論: 1)構(gòu)建遠(yuǎn)距離空地多目標(biāo)攻擊作戰(zhàn)場景,并建立多目標(biāo)、多約束WTA與制導(dǎo)序列優(yōu)化模型,以目標(biāo)綜合生存概率最小和總用彈量最少為優(yōu)化目標(biāo),綜合考慮攻擊機(jī)導(dǎo)彈配置、導(dǎo)彈毀傷能力、目標(biāo)毀傷要求、制導(dǎo)站制導(dǎo)性能等約束條件。 2)提出基于雙序列編碼的多種群NSGA-Ⅱ,對WTA與制導(dǎo)序列優(yōu)化模型進(jìn)行求解。建立WTA序列和制導(dǎo)站序列到WTA方案與接力制導(dǎo)方案的映射,通過DFS-DJ搜索方法、改進(jìn)的染色體交叉與變異操作、多種群策略等,提升算法性能。 3)通過算例仿真,驗(yàn)證了DSMPNSGA-Ⅱ求解WTA與制導(dǎo)序列優(yōu)化問題的有效性,并將DSMPNSGA-Ⅱ與單種群NSGA-Ⅱ以及MODPSO算法進(jìn)行比較,驗(yàn)證了DSMPNSGA-Ⅱ在計(jì)算速度、優(yōu)化結(jié)果多樣性、求解質(zhì)量等方面的優(yōu)越性。 本文研究有助于提升遠(yuǎn)距離空地多目標(biāo)攻擊的成功率、減少資源消耗。未來研究擬考慮更為復(fù)雜的戰(zhàn)場環(huán)境,加入地形、禁飛區(qū)、敵方威脅等約束條件,并提升算法計(jì)算速度。2.3 多種群NSGA-Ⅱ
2.4 最終方案選擇
2.5 算法流程

3 仿真與算例分析
3.1 參數(shù)說明


3.2 仿真結(jié)果




3.3 算法對比



4 結(jié)論