韓 璐,王 岐
(吉林大學計算機科學與技術學院,長春130012)
多航路作戰推演算法是基于特定戰場環境、敵方預計行動及我方行動方案擬制的戰斗過程仿真演示.多航路作戰推演可根據給定的航線(本文中航路是一個對象,而航線為航路的一個屬性)、速度、行動開始時間模擬海上作戰中各航路上批次的移動,并在多條航路同時推演的情況下給出批次的遭遇、作戰過程、毀傷情況等信息.該算法還能實現有效范圍內的自動打擊功能,如導彈陣地、飛機場等對來犯敵人的自動打擊,并根據給定的固定陣地雷達發現半徑和發現概率演示其與批次間的作戰過程.此外,還支持空域掩護、伴隨掩護、指定航線、佯動和巡邏等輔助作戰方法[1-2].
多航路作戰推演算法體系結構如圖1所示.在開始推演前,要給出待推演批次、各批次的任務航路及戰場環境等.圖1中批次對象的屬性主要有批次編號、名稱、類型、武器型號或名稱、探測半徑、武器的掛載或裝備、批次的當前狀態等.其中武器裝備用于計算批次的作戰效能,批次的當前狀態用于記錄批次狀態參數.每個航路上都有一個批次,所以一個批次對象可以作為一個航路對象的屬性.航路對象的屬性還包括航路類型、作戰方(敵我雙方)、特殊空域相關信息(如特殊空域發現半徑、交戰狀態等)及航線信息等.數據操作包括航線信息和武器裝備信息的采集和管理.作戰推演是整個推演的核心,它負責計算和返回所有的推演數據,推演過程和結果可通過演示窗口以動畫形式顯示到屏幕上.

圖1 體系結構Fig.1 System of architecture
多航路作戰推演算法的關鍵是航線當前狀態的判斷、航路間航行同步、特殊航路實時生成和作戰結果的計算.多航路海上作戰推演算法要求將給定初始狀態的航路進行推演,返回該航路下一時刻的狀態[3].本文假設每條航路都能根據給定的時刻返回對應批次所處的位置和速度,即可將推演過程按固定的時間間隔分成若干時刻,從初始時刻開始依次對每個航路進行計算以得到下一個時刻的狀態.
2.1 航路當前狀態 對航路某一時刻的推演實際上是對該時刻所有航路上的批次進行比較(橫向比較),而要得到航路的所有狀態,還必須對航路不同時刻的狀態進行比較(縱向比較).航路上可能發生的事件有航行狀態(包括起航前、起航、航行、航行結束、航行結束后)和戰爭狀態(包括遭遇、戰斗、戰斗結束).戰爭狀態由橫向比較得到,航行狀態則由縱向比較得到[4],如圖2所示.橫向比較主要是對不同作戰方的批次間進行比較,根據批次間的距離、發現概率和發現半徑判斷是否進入作戰狀態.如果進入作戰狀態,則計算參與戰斗兩個批次的作戰效能,并給出批次的毀傷情況,如批次單位的剩余數量及主要單位的毀傷程度等.此外,參戰批次會產生作戰延遲,涉及到推演算法中的同步問題.縱向比較即對同一條航路上批次不同時刻的比較,一般為與前一時刻的比較,比較的參數為批次的位置信息,比較的結果與狀態信息的對應關系如圖3所示,其中:FM表示批次的前一個狀態;PT表示批次前一個位置與本次位置的比較;T表示相等;F表示不等.

圖2 航路比較示意圖Fig.2 Comparison of multi-voyages

圖3 狀態判斷示意圖Fig.3 State judgment
2.2 推演的同步問題 在解決推演批次的同步問題中,本文算法加入3個關于時間延遲的參數:1)戰爭用時參數,設置一次遭遇戰所用的時間;2)戰爭過程中記錄狀態數的參數,用于控制戰斗過程中批次的位置;3)遭遇戰延遲時間參數,用于計算遭遇戰后航路點坐標.參數1)是一個常量T,不同批次用不同的參數值控制戰爭耗時(參考實際的經驗值);參數2)為一個鏈表,鏈表的長度為批次數量,每個鏈表元素代表對應批次戰爭用時(用狀態數表示);參數3)也是一個鏈表,長度等于批次數量,它的每個元素記錄對應批次累計的延遲時間G.當橫向比較中發現批次遭遇后,將對應鏈表元素賦值成戰爭用時T和兩個相鄰狀態間的時間間隔I之比W.計算每個時刻的批次狀態前,先判斷該批次對應的戰斗用時是否為0,如果不為0,將本次比較的狀態賦值為上一次的狀態,然后將戰斗用時減1,并繼續其他批次的比較.對于戰斗用時為0的批次,如果本次比較沒有與其他批次遭遇,則返回當前時刻減去累計延遲時刻的狀態;如果本次比較的結果為該批次與其他批次遭遇,則將該批次的戰斗用時和累計時間都加上一個W[5].下面給出一個實際推演的例子.
設有3個批次,A,B為我方批次,C為敵方批次,假設一次戰斗用時為T,推演中兩個相鄰時間間隔為 I,戰斗用時鏈表為 a,累計延遲鏈表為 b,A,B,C 對應的元素為 a[0],a[1],a[2]和b[0],b[1],b[2],初始值都為0.用x表示第幾個狀態,A和C在第n個狀態上遭遇.由上述算法可知W=T/I,當x<n時,A,B,C分別按自己的航路航行,沒有累計延遲;當x=n時,A和C對應的鏈表元素a[0]=W,a[2]=W,b[0]=W,b[2]=W,B 正常航行,A,B,C 的狀態分別為An,Bn,Cn;當x=n+1時,由于A和C對應的戰斗用時不為0,則A和C的狀態賦值為count=An,Cn,a[0]=W-1,a[2]=W-1,而B的狀態為Bn+1;直到A和C的戰斗用時重新為0,即第n+W個狀態時刻,a[0],a[1],a[2]都重新變為 0,A,B,C 的狀態分別是 An+W-b[0],Bn+W-b[1],Cn+W-b[2],即 An,Bn+W,Cn,以后的狀態依次類推,直到所有批次完成航行[6].
通過分析可見,如果在初始化批次時把批次啟航的初始時間加到批次的累計延遲上,即可實現所有航路起始時間的設定.推演的總狀態數c取決于三方面,假設有n條航線,以第i條航線為例,它們分別是航線的航行用時Ti,推演的采點間隔I,單條航線上總延遲時間Li,則

其中:max{Ti/I}為待推演航路中航行用時最大航路的航行用時;max{Li}為所有航線中延遲時間最長航線的總延遲.假設每條航線上有m次遭遇(由于每條航線上批次的遭遇次數不一定,所以m為一個變量),令max{Li}=L,則

2.3 特殊航路的處理 多航路作戰推演算法不但能對一般航路進行推演,還能處理導彈陣地、空域掩護、伴隨掩護、巡邏、飛機場等非主動作戰狀況的推演,本文把這些情況下的航路統稱為特殊航路.
導彈陣地可視為不移動的航路,它的速度永遠為0,具有發現半徑和發現概率,剩余數量和毀傷程度由武器效能對比給出.導彈陣地發現敵方飛機后,連續發出導彈對敵機進行攻擊直到敵機飛出攻擊范圍,每次導彈攻擊計算一次敵機毀傷,如圖4所示.由圖4可見,導彈陣地發現敵機后發射導彈攻擊,導彈分別在A,B,C三點擊中敵機.通過敵航線上的小圓圈可明顯看出敵機的毀傷程度.此外,當敵機距離足夠近,即導彈陣地在敵機的攻擊范圍內時,敵機也可對導彈陣地進行攻擊并給出毀傷.導彈航線的算法和飛機場特殊航路中殲擊機追趕敵機的算法相同.
空域掩護是戰斗機在一定空域范圍內進行掩護,一般受掩護的空域是固定的.雖然空域掩護的武器是戰斗機,但在推演過程中假設該批次不動,批次位置為該空域的中心.空域半徑就是發現半徑,再根據戰斗機的性能和掩護飛行方式(如八字飛行、圓周飛行等)計算發現概率.在推演演示窗口中,該空域中的批次做給定方式的往復飛行,當與敵機遭遇時處理交戰狀態并計算雙方毀傷.
伴隨掩護和巡邏都是作戰中必要的戰術,伴隨掩護批次與所伴隨的主任務批次在指定匯合點匯合,當主任務完成后,伴隨任務飛機返航;后者按要求在固定的航線上飛行,與一般航路的實現相似.
飛機場與導彈陣地相似,只是在交戰時,前者的武器為殲擊機,后者是導彈.飛機場(用航路表示)本身有發現半徑和發現概率,飛機場發現敵機后,會派出殲擊機出動攔截或追擊,這就需要實時計算殲擊機的航線.當殲擊機飛離機場一定距離后,需計算返航路線并返回.關于殲擊機飛離機場最遠距離的控制,可參考批次遭遇延遲算法[7],設置一個殲擊機飛離機場距離參數,每次追擊前將其賦值,每計算一個狀態判斷一次,若不為0繼續追擊,并將該參數減1;為0則殲擊機返航.
下面給出機場殲擊機攔截(追擊)航線的計算方法,在算法中將空間坐標簡化為平面投影坐標.將殲擊機的初始位置設為機場位置(x0,y0),敵機進入機場發現半徑并被發現時的位置為(x1,y1),殲擊機速度v.首先容易求得殲擊機與敵機之間的距離d(算法省略),然后再令

圖4 導彈陣地示意圖Fig.4 Missile position


如果在殲擊機飛離機場最遠距離時還沒有追上敵機,或與敵機遭遇戰后殲擊機直接返航,返航路線為殲擊機返航點與機場的連線.圖5為殲擊機追趕航線示意圖(殲擊機追上敵機并交戰的情形).A點表示敵機進入飛機場發現半徑,在發現半徑范圍內,每推演一個狀態計算一次發現概率,發現敵機則出動殲擊機追擊.對每個敵方批次只追擊一次.如果在固定的時間內還追不上敵機則返航[8].
綜上所述,多航路作戰推演算法主要用到兩次比較,假設有10條航路(橫向比較為10),推演過程需要500個狀態(縱向比較為500),時間復雜度為O(10×10×500).該算法返回類似于圖2所示的數據結構,并能給出所有航路不同時刻的狀態屬性,根據這些屬性可設計對應的推演界面,直觀展示海上作戰過程[9].此外,根據不同的需求,算法還能提供關鍵事件及推演時間的顯示,在推演過程中,可選擇暫停推演和繼續推演.由于推演中批次發現概率的引入,所以即使推演前的初始狀態完全相同,推演的結果也可能會不同,這就需要對同一初始狀態進行多次推演,從而得出較客觀的結論[10].該算法可為軍事作戰的諸多系統進行任務推演,對預測戰爭結果、制定戰爭計劃有一定的理論指導作用.

圖5 殲擊機追趕航線示意圖Fig.5 Fighter catching routes
[1]趙曉哲,沈治河.海軍作戰數學模型[M].北京:國防工業出版社,2004.
[2]賀毅輝.作戰模擬基礎[M].北京:國防工業出版社,2012.
[3]Watman K.War Gaming and Its Role in Examining the Future[J].Brown Journal of World Affairs,2003,2003,X(1):51-61.
[4]Perry W L,Signori D,Boon J,Jr.Exploring Information Superiority[DB/OL].2012-11-14.http://www.rand.org/content/dam/rand/pubs/monograph-reports/2005/MR1467.pdf.
[5]SU Chun-mei,FENG Zhao-yang,WANG Li-jun.Automatic Creating Technique of Universal Flight Track [J].Ordnance Industry Automation,2010,29(12):20-25.(蘇春梅,馮朝陽,王力軍.通用飛機航跡生成技術[J].兵工自動化,2010,29(12):20-25.)
[6]YANG Yong,YAO Yi-ping,LIANG Hong-bo.Parallelization Techniques for Multi-core-cluster-based RTI[J].Journal of System Simulation,2012,24(9):1785-1789.(楊勇,姚益平,梁洪波.基于多核集群的RTI并行優化技術[J].系統仿真學報,2012,24(9):1785-1789.)
[7]GAO Xiang,WANG Hong-ke,WANG Zhi-jun,et al.Multi-aircraft Coordination Warfare Simulation System Based on Multi-agent[J].Systems Engineering and Electronics,2010,32(4):807-811.(高翔,王宏柯,王治軍,等.基于多Agent的多機協同空戰仿真系統設計和實現[J].系統工程與電子技術,2010,32(4):807-811.)
[8]LIU Ming,XU Yang,CHEN Zheng,et al.Decentralized Multi-agent Based Cooperative Path Planning for Multi-UAVs[J].Computer Science,2012,39(1):219-222.(劉銘,徐楊,陳崢,等.基于Multi-agent系統的多飛行器協同路徑規劃方法的研究[J].計算機科學,2012,39(1):219-222.)
[9]WEI Tie-tao,QU Xiang-ju.Route Planning Method Formultiple Vehicles Coordinated Target Assignment[J].Journal of Beijing University of Aeronautics and Astronautics,2009,35(8):917-920.(魏鐵濤,屈香菊.多機協同與多目標分配任務規劃方法[J].北京航空航天大學學報,2009,35(8):917-920.)
[10]HU Gen-sheng,KONG Xiang-hua,WANG Ran-hui,et al.Design and Implementation of Battlefield Target Simulation Based on FLAMES[J].Journal of System Simulation,2010,22(11):2502-2504.(胡艮勝,孔向華,王然輝,等.基于FLAMES的戰場目標仿真設計與實現[J].系統仿真學報,2010,22(11):2502-2504.)