王天喜,祁 濤,張 程,蘇凝鋼
(1.北方自動控制技術(shù)研究所,太原 030006;2.中國華陰兵器試驗中心,陜西 華陰 714200)
隨著精確制導(dǎo)武器精度和威力的不斷提升,現(xiàn)代戰(zhàn)場上應(yīng)用精確制導(dǎo)武器實施地面精確打擊成為常見的作戰(zhàn)形式。引導(dǎo)打擊作為特種作戰(zhàn)的一種作戰(zhàn)樣式,是實現(xiàn)特殊條件下精確打擊的一種作戰(zhàn)手段,其目的是為了在敵戰(zhàn)區(qū)精確引導(dǎo)制導(dǎo)武器對發(fā)現(xiàn)的目標(biāo)實施有效打擊。
引導(dǎo)打擊的典型作戰(zhàn)流程為滲透占位→偵察→定位→上報情報→引導(dǎo)任務(wù)分配→引導(dǎo)打擊→評估→校正→再打擊→摧毀→撤退[1]。本文主要考慮引導(dǎo)任務(wù)分配部分,當(dāng)前的火力引導(dǎo)任務(wù)分配主要依賴人工分配,當(dāng)短時間內(nèi)需要決策大量目標(biāo)的引導(dǎo)任務(wù)時,指揮員往往需要耗費大量時間,而且分配結(jié)果也容易陷入局部最優(yōu),本文設(shè)計了一種快速、最優(yōu)的火力引導(dǎo)任務(wù)分配算法,來輔助指揮員完成火力引導(dǎo)任務(wù)分配。
1)已部署的照射器與火力單元的通信質(zhì)量良好,能夠保證情報信息和任務(wù)口令的正常傳輸;
2)照射器能夠與指定火力單元進(jìn)行協(xié)同指揮,完成火力引導(dǎo)打擊任務(wù)。
已知有n個目標(biāo),m個照射器,k個火力單元,其中每個目標(biāo)的打擊次數(shù)為Si,打擊時刻為ti(i=1,2,3,…,n);每個照射器同一時刻只能照射一個目標(biāo),照射時間間隔為10 min,如何將這些目標(biāo)合理地分配給照射器。其中,每個目標(biāo)要盡量分配備用照射器,并考慮地圖通視、目照距離、照炮夾角等限制條件[2-4]。
線性規(guī)劃方程為:
式(4)和式(5)中的5 和20,分別代表距離限制和角度限制。
采用FFD(降序首次適應(yīng))+GGA(組遺傳)[2]算法來求解該問題[5-6]。
首先初始化照射器序列,排序為L1,L2,...,Lm,將目標(biāo)根據(jù)打擊時刻遞增進(jìn)行排序,排序后序列為a1,a2,...,an逐個對照射器與目標(biāo)進(jìn)行匹配,篩分出目標(biāo)對應(yīng)的照射器集合C1,C2,...,Cn。從對應(yīng)的集合中選擇兩個照射器,作為該目標(biāo)的照射引導(dǎo)單元。算法流程圖如下頁圖1所示。
圖1 FFD算法流程圖Fig.1 FFD algorithm flow chart
圖2 分組遺傳算法流程圖Fig.2 Flow chart of grouping genetic algorithm
目標(biāo)火力引導(dǎo)分配問題只和所用的照射器數(shù)有關(guān),而與每個目標(biāo)具體分給哪個照射器是沒有關(guān)系的,在分組遺傳算法采用以下的編碼方式[7-8]:
假設(shè)編號為1 到6 的目標(biāo)編碼為:{L1,L4},{L3,L5},{L1,L2},{L2,L3},{L6,L7},{L4},它所代表的是目標(biāo)1 分配給1、4 號照射器,目標(biāo)2 分配給3、5 號照射器,目標(biāo)3 分配給1、2 號照射器,目標(biāo)4 分配給2、3號照射器,目標(biāo)5 分配給6、7 號照射器,目標(biāo)6 分配給4號照射器。
按照隨機的順序生成初始種群,L1,L2,...,Lm,然后按照FFD算法的步驟進(jìn)行分配。
遺傳算法是利用種群中每個個體的適應(yīng)度值進(jìn)行搜索,對于算法迭代過程中每代個體的優(yōu)劣程度通過個體適應(yīng)度的大小進(jìn)行評價。所以,適應(yīng)度函數(shù)的設(shè)計至關(guān)重要,它將直接影響遺傳算法收斂速度的快慢以及是否能找到最優(yōu)解,適應(yīng)度值越大,遺傳到下一代的概率就越大,質(zhì)量就越好。
確定適應(yīng)度函數(shù)的原則:最終解中使用的照射器個數(shù)盡量少,每個照射器與所照目標(biāo)在要求范圍內(nèi)距離越大越好,每個照射器的任務(wù)盡量平均,每個目標(biāo)盡量分配兩個照射器,每個目標(biāo)與所對應(yīng)照射器的目照夾角在5°~15°之內(nèi)越好。適應(yīng)度函數(shù)為:
其中,N為分配結(jié)果中照射器使用的個數(shù);Fi為第i個照射器所負(fù)責(zé)的目標(biāo)個數(shù);C為分配結(jié)果中照射器所負(fù)責(zé)目標(biāo)的最大個數(shù);K為大于1 的常數(shù),這里取k=2;L為分配結(jié)果中負(fù)責(zé)兩個目標(biāo)的照射器個數(shù);M為分配結(jié)果中所分配的目標(biāo)的個數(shù);Dj為第j個目標(biāo)與所對應(yīng)照射器的距離;j=1,2,3,...,m,第j個目標(biāo)與所對應(yīng)照射器的目照夾角。
3.3.1 選擇算子
在生成初始種群后,用新設(shè)計的適應(yīng)度函數(shù)計算每一個個體的適應(yīng)度值。使用精英選擇法去選擇適應(yīng)度較大的部分個體遺傳到下一代種群中。
3.3.2 交叉算子
針對以上編碼方式,采用以下交叉操作:
1)隨機選擇一個集合中2 個交叉點,并在父代中選出交叉片段。
2)將第2個父代的交叉片段插入到第1個父代的交叉點前面。這意味著第2個父代中的一些分組插入到第1個父代中。
3)刪除第1個父代中出現(xiàn)兩次的目標(biāo)。第1個父代中的分組也會跟著改變。
4)重新插入被刪除的目標(biāo),在本文采用FFD 方法進(jìn)行插入。
5)改變2 個父代的角色并重新應(yīng)用步驟2)~步驟4)操作來產(chǎn)生下一代。
交叉操作的具體步驟如下所示:
使用FFD算法隨機產(chǎn)生兩個父代染色體。
對照射器隨機排列得到一個隨機序列并按照FFD算法進(jìn)行分配,得到一個分配方案為:
{L1,L4},{L3,L5},{L1,L2},{L2,L3},{L6,L7},{L4}
它所代表的是目標(biāo)1 分配給1、4 號照射器,目標(biāo)2 分配給3、5 號照射器,目標(biāo)3 分配給1、2 號照射器,目標(biāo)4 分配給2、3 號照射器,目標(biāo)5 分配給6、7號照射器,目標(biāo)6分配給4號照射器。
再對一個隨機序列進(jìn)行分配,得到另一個分配方案為:
{L4,L6},{L5,L7},{L1,L5},{L2,L3},{L6,L7},{L1,L4}
它所代表的是目標(biāo)1 分配給4、6 號照射器,目標(biāo)2 分配給5、7 號照射器,目標(biāo)3 分配給1、5 號照射器,目標(biāo)4 分配給2、3 號照射器,目標(biāo)5 分配給6、7號照射器,目標(biāo)6分配給1、4號照射器。
得到兩個染色體及其交叉點如下所示:
在選定的染色體上選定如上交叉位置,把第1個染色體的交叉片段替換掉第2 個染色體交叉點處,得到如下所示的新的染色體:
就得到一條新的染色體來說,需注意的是,新插入的染色體片段,要進(jìn)行合格性驗證。
3.3.3 變異算子
交叉操作產(chǎn)生的后代不能進(jìn)行迭代進(jìn)化時,算法不一定已經(jīng)收斂。進(jìn)行變異操作可產(chǎn)生更廣泛的個體,避免陷入局部最優(yōu)。變異操作是先給定一個變異概率p,再從群體中任意選擇一個個體,產(chǎn)生隨機數(shù)rand,若rand<p,那么就對這個個體實施變異。具體方法是隨機選取個體染色體的兩個位置,對這兩個位置一定長度的染色體片段進(jìn)行交換,完成變異操作。
例如得到一個染色體:
選取上圖所指的染色體片段,把5 變成7(根據(jù)條件進(jìn)行篩選)從而產(chǎn)生一條新的染色體,如下所示:
以上,應(yīng)用混合分組遺傳算法來求解火力引導(dǎo)
利用C++實現(xiàn)該算法,進(jìn)行仿真實驗,首先任意生成一些目標(biāo)和與之匹配的照射器,取交叉概率為Pc=0.8,變異概率Pm=0.15,種群規(guī)模m=10,種群最大迭代次數(shù)為4 000,目標(biāo)個數(shù)為20~40 個。本次實驗了10個實例。表1分別列出了求解結(jié)果。
表1 仿真計算結(jié)果Table 1 Simulation calculation results
當(dāng)前火力引導(dǎo)任務(wù)分配還處于人工手動決策階段,當(dāng)短時間內(nèi)有大量目標(biāo)需要決策時,就需要一種快速、最優(yōu)的火力引導(dǎo)任務(wù)分配算法,來實現(xiàn)火力引導(dǎo)任務(wù)自動分配,從而大大提高指揮員戰(zhàn)場作戰(zhàn)效率。本文基于火力引導(dǎo)任務(wù)分配問題的需求,建立了火力引導(dǎo)任務(wù)分配模型,提出采用FFD+GGA 算法來求解該問題,通過進(jìn)行仿真實驗,比對人工決策和BF+GGA 算法的求解結(jié)果,發(fā)現(xiàn)FFD+GGA算法能夠取得很好的分配結(jié)果。