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