馬 也 ,常天慶 ,范文慧 ,李 婕 ,孔德鵬
(1.陸軍裝甲兵學(xué)院 兵器與控制系,北京 100072;2.清華大學(xué) 自動(dòng)化系,北京 100084;3.解放軍總醫(yī)院京南醫(yī)療區(qū) 杜家坎門診部,北京 100072;4.92942部隊(duì),北京 100161)
OODA環(huán)理論是由BOYD J提出的軍事作戰(zhàn)中的戰(zhàn)略決策理論[1],成為對(duì)作戰(zhàn)中出現(xiàn)的沖突問(wèn)題進(jìn)行描述的一種科學(xué)方法。該理論一經(jīng)提出,便立即被整個(gè)西方世界的軍事界所認(rèn)可,至今仍被廣泛應(yīng)用于軍事作戰(zhàn)仿真問(wèn)題的研究[2]。眾多學(xué)者對(duì)其進(jìn)行研究并提出模塊化OODA環(huán)、智能OODA環(huán)及認(rèn)知OODA環(huán)等衍生理論[3-5]。在信息化戰(zhàn)爭(zhēng)時(shí)代,對(duì)多國(guó)聯(lián)合軍事演習(xí)、協(xié)同軍事打擊以及與其他軍兵種部隊(duì)的共同作戰(zhàn)需求的增加,使得普通仿真難以應(yīng)對(duì)[6-7]。分布式仿真因其更高的性能及靈活性越來(lái)越多地被軍事作戰(zhàn)仿真所采用。分布式仿真的技術(shù)難點(diǎn)是如何確保系統(tǒng)的因果邏輯關(guān)系,正確及可重復(fù)地在并行系統(tǒng)上高效合理地處理事件并推進(jìn)仿真時(shí)間。時(shí)間管理技術(shù)是分布式仿真的一項(xiàng)重點(diǎn)技術(shù),用于解決分布式仿真的時(shí)間推進(jìn)問(wèn)題,它決定了分布式仿真系統(tǒng)的整體性能,被該領(lǐng)域的研究者廣泛關(guān)注[8-9]。
典型的時(shí)間管理算法有保守算法及樂(lè)觀算法兩種。保守算法雖可以嚴(yán)格保證系統(tǒng)因果約束,正確地進(jìn)行時(shí)間推進(jìn)。但其依賴前瞻量和空消息機(jī)制,給系統(tǒng)帶來(lái)無(wú)法避免的死鎖問(wèn)題,嚴(yán)重影響系統(tǒng)性能。樂(lè)觀算法允許違反系統(tǒng)因果約束,通過(guò)回退機(jī)制來(lái)解決因果關(guān)系錯(cuò)誤。雖能夠積極地處理事件并避免保守算法帶來(lái)的死鎖問(wèn)題,但回退機(jī)制會(huì)占用系統(tǒng)內(nèi)存,過(guò)度的樂(lè)觀又會(huì)造成多級(jí)回退現(xiàn)象,從而不利于系統(tǒng)的并行性并使性能大幅下降。后續(xù)的研究者針對(duì)以上問(wèn)題提出了一些解決方法,大多存在系統(tǒng)實(shí)現(xiàn)復(fù)雜、在犧牲系統(tǒng)性能的前提上保證因果約束以及需要改變模型來(lái)獲取計(jì)算性能等缺點(diǎn)。
本文綜合考慮保守及樂(lè)觀算法的優(yōu)缺點(diǎn),針對(duì)OODA環(huán)作戰(zhàn)仿真的特點(diǎn),提出一種基于改進(jìn)GVT的自適應(yīng)時(shí)間窗混合推進(jìn)時(shí)間管理算法并對(duì)全局虛擬時(shí)間算法的計(jì)算進(jìn)行改進(jìn)。算法能夠改善傳統(tǒng)時(shí)間窗算法頻繁同步問(wèn)題,同時(shí)避免出現(xiàn)傳統(tǒng)時(shí)間管理算法的死鎖及多級(jí)回退等缺點(diǎn)。
BOYD J提出的OODA環(huán)理論指出,軍事行動(dòng)基本上是由一系列決策過(guò)程或循環(huán)組成的。基礎(chǔ)OODA環(huán)主要包括偵察(Observation)、判斷(Orientation)、決策(Decision)和行動(dòng)(Action)四部分[10-11]。具有指揮控制特點(diǎn)的軍事作戰(zhàn)OODA環(huán)按照上述四部分進(jìn)行循環(huán)的戰(zhàn)斗,在一個(gè)循環(huán)結(jié)束后便開始新的循環(huán),如此往復(fù)。循環(huán)周期的時(shí)間長(zhǎng)短與作戰(zhàn)單位的兵力規(guī)模、作戰(zhàn)環(huán)境的范圍以及作戰(zhàn)的方式相關(guān)。
在作戰(zhàn)過(guò)程中,己方和敵方將持續(xù)進(jìn)行戰(zhàn)場(chǎng)觀察獲取作戰(zhàn)信息,對(duì)信息進(jìn)行判斷和分析后進(jìn)行決策并采取相應(yīng)的行動(dòng)。其對(duì)抗沖突主要體現(xiàn)在OODA的周期長(zhǎng)短上,優(yōu)先采取行動(dòng)的一方將獲取主動(dòng)權(quán)和優(yōu)勢(shì),雙方都將盡可能地縮短自己的循環(huán)周期。OODA環(huán)作戰(zhàn)雙方交戰(zhàn)因果關(guān)系如圖1所示。
圖1 OODA環(huán)作戰(zhàn)雙方交戰(zhàn)因果關(guān)系
模型采用美國(guó)海軍分析中心(Center for Naval Analyses,CAN)提出的經(jīng)典Agent作戰(zhàn)模型EINSTein的框架[12],在該框架的基礎(chǔ)上構(gòu)建一個(gè)基于多Agent的作戰(zhàn)仿真模型,該模型用于測(cè)試分布式仿真時(shí)間管理算法的有效性。模型中每個(gè)Agent代表一個(gè)作戰(zhàn)兵力,它有3種狀態(tài),分別為存活、受傷和死亡。每個(gè)Agent賦予一個(gè)特征權(quán)值向量:
式中,-1 ≤ωx≤1,∑|ωx|=1。x的取值為{x|AF,AE,IF,IE}。每個(gè)權(quán)值向量由4個(gè)分量組成,分別為己方存活權(quán)值分量(ωAF)、敵方存活權(quán)值分量(ωAE)、己方受傷權(quán)值分量(ωIF)、和敵方受傷權(quán)值分量(ωIE)。Agent將根據(jù)各自特征權(quán)值向量的值決定自己在所處戰(zhàn)場(chǎng)環(huán)境中的移動(dòng)策略。當(dāng)分量值為正時(shí),代表該Agent有靠近分量給定特征的Agent的意愿;當(dāng)分量值為負(fù)時(shí),則為撤退意愿。Agent所有可能進(jìn)行的移動(dòng)策略將由懲罰函數(shù)z來(lái)排序,通過(guò)計(jì)算懲罰函數(shù)z的最小值確定Agent具體的移動(dòng)方向。懲罰函數(shù)z定義為:
其中,Bxy是Agent所處環(huán)境的坐標(biāo)位置;AF、IF、AE、IE、Nx分別定義為當(dāng)前Agent感知范圍內(nèi)的己方存活的Agent集合、己方受傷的Agent集合、敵方存活的Agent集合、敵方受傷的Agent集合以及x類型Agent的總數(shù);為己方比例因子;為敵方比例因子;DX,Y為X到Y(jié)的距離;懲罰函數(shù)z可以有效權(quán)衡Agent與其他敵我雙方在內(nèi)的Agent的距離,其下標(biāo)與Agent特征權(quán)值向量下標(biāo)相同。通過(guò)懲罰函數(shù),Agent將移動(dòng)到懲罰最低的方向,該方向能最大程度地滿足其特征權(quán)值向量的大小所期望的方向。
懲罰函數(shù)同時(shí)也受μ 規(guī)則的限制作出部分改變,Agent將根據(jù)環(huán)境的動(dòng)態(tài)變化改變個(gè)性權(quán)值。μ 規(guī)則如下式所示:
其中,NF(rF)為在已方觀察范圍內(nèi)己方的Agent數(shù)量;NE(rE)為敵方觀察范圍內(nèi)敵方的Agent數(shù)量;Δ 為戰(zhàn)斗閾值數(shù)量。μ 規(guī)則可描述為,當(dāng)Agent的觀察范圍內(nèi)存在的己方數(shù)量比敵方數(shù)量具有不到戰(zhàn)斗閾值的優(yōu)勢(shì),那么該Agent將遠(yuǎn)離敵方Agent。
模型中的戰(zhàn)場(chǎng)地形為離散的二維網(wǎng)格,初始狀態(tài)下,敵方和我方以中軸線為軸,隨機(jī)分布在其所屬的地形中。Agent初始默認(rèn)狀態(tài)為存活狀態(tài),當(dāng)其被攻擊命中后,Agent的狀態(tài)將降級(jí)為受傷狀態(tài),若再次受到攻擊,將降級(jí)為死亡狀態(tài),死亡狀態(tài)的Agent在仿真結(jié)束前不會(huì)再出現(xiàn)。處于受傷狀態(tài)的Agent的作戰(zhàn)命中率為存活狀態(tài)的命中率的一半。每個(gè)Agent又包括觀察范圍、移動(dòng)范圍和火力范圍的3種距離范圍,用于進(jìn)行作戰(zhàn)OODA環(huán)的執(zhí)行。Agent的攻擊目標(biāo)為其火力范圍內(nèi)所有的敵方Agent,每次隨機(jī)從中挑選一個(gè)進(jìn)行攻擊。
OODA環(huán)作戰(zhàn)模型作戰(zhàn)流程如圖2所示。
圖2 OODA環(huán)作戰(zhàn)模型流程圖
首先對(duì)戰(zhàn)場(chǎng)及作戰(zhàn)兵力進(jìn)行初始化,隨后進(jìn)入OODA環(huán)循環(huán)過(guò)程。每個(gè)Agent根據(jù)觀察范圍觀察戰(zhàn)場(chǎng)情況;隨后通過(guò)懲罰函數(shù)z對(duì)接收到的戰(zhàn)場(chǎng)情況進(jìn)行判斷,計(jì)算移動(dòng)范圍內(nèi)所有的移動(dòng)策略并進(jìn)行排序;當(dāng)判斷階段結(jié)束,進(jìn)入決策階段。根據(jù)懲罰函數(shù)z的最小值確定Agent移動(dòng)策略并選擇火力范圍內(nèi)的攻擊目標(biāo)。若無(wú)攻擊目標(biāo),則不進(jìn)行選擇;最后,根據(jù)決策內(nèi)容進(jìn)行相應(yīng)的移動(dòng)和攻擊行動(dòng);行動(dòng)階段結(jié)束后對(duì)敵方Agent數(shù)量進(jìn)行統(tǒng)計(jì),若還存在敵方Agent,則進(jìn)入下一輪OODA循環(huán),否則結(jié)束作戰(zhàn)。
因分布式仿真系統(tǒng)的特點(diǎn),需要使用時(shí)間同步技術(shù)(即時(shí)間管理算法)對(duì)系統(tǒng)時(shí)間進(jìn)行同步,保證仿真的時(shí)間推進(jìn)過(guò)程正確高效[13]。保守算法雖能夠嚴(yán)格確保時(shí)間推進(jìn)正確,但其效率較低,不能適應(yīng)分布式作戰(zhàn)仿真的需求,因此仿真將采用樂(lè)觀算法。
移動(dòng)時(shí)間窗算法(Moving Time Window,MTW)算法是對(duì)樂(lè)觀算法的樂(lè)觀推進(jìn)程度進(jìn)行控制的先進(jìn)樂(lè)觀時(shí)間管理算法[14-15]。它能夠控制樂(lè)觀執(zhí)行程度的算法,設(shè)置可以超過(guò)其他邏輯進(jìn)程仿真時(shí)間的上限,通過(guò)上限對(duì)時(shí)間推進(jìn)程度進(jìn)行控制,該算法需要計(jì)算全局虛擬時(shí)間(Global Virtual time,GVT)。對(duì)于樂(lè)觀算法,當(dāng)出現(xiàn)遲到消息時(shí),會(huì)進(jìn)行回退操作保證消息處理按照時(shí)間戳有序進(jìn)行。GVT計(jì)算就是得到目前仿真過(guò)程中未來(lái)可能出現(xiàn)回退操作的時(shí)間戳下限。
移動(dòng)時(shí)間窗算法的思想主要是對(duì)某個(gè)仿真進(jìn)程的仿真時(shí)間能夠超過(guò)其他仿真進(jìn)程的仿真時(shí)間的上限進(jìn)行設(shè)置,在尚未達(dá)到上限時(shí),仿真可樂(lè)觀地推進(jìn),一旦有進(jìn)程達(dá)到上限便強(qiáng)制阻塞,直到其他所有落后的進(jìn)程都推進(jìn)到上限。普通移動(dòng)時(shí)間窗的下限設(shè)置為GVT,上限設(shè)置為GVT+W,W為自行設(shè)定的時(shí)間窗值。所有進(jìn)程不得超過(guò)上限,隨著GVT的推進(jìn)而移動(dòng)推進(jìn)。它操作簡(jiǎn)單,可有效解決個(gè)別進(jìn)程推進(jìn)過(guò)快而導(dǎo)致的回退現(xiàn)象,但存在時(shí)間窗在程序運(yùn)行過(guò)程中無(wú)法改變、頻繁進(jìn)行GVT同步計(jì)算的問(wèn)題。
本文提出的自適應(yīng)移動(dòng)時(shí)間窗算法不以仿真時(shí)間來(lái)定義時(shí)間窗,而采用事件。由于在仿真執(zhí)行的過(guò)程中,通常無(wú)法準(zhǔn)確地推算處理每個(gè)事件的時(shí)間,結(jié)合基于OODA環(huán)的作戰(zhàn)仿真的特點(diǎn),它具有明確的作戰(zhàn)周期及事件,因此,算法將結(jié)合OODA環(huán)的周期采用周期循環(huán)方式進(jìn)行仿真推進(jìn),自行調(diào)整時(shí)間窗大小。仿真模型中每個(gè)Agent都有一個(gè)單獨(dú)的進(jìn)程,每個(gè)進(jìn)程的推進(jìn)周期可以表述為:
(1)將一個(gè)推進(jìn)周期定義為OODA環(huán)中四個(gè)部分中的一個(gè)部分,每個(gè)部分有一個(gè)待處理事件隊(duì)列。每個(gè)推進(jìn)周期產(chǎn)生的所有未處理的事件和其時(shí)間戳存放在所述部分的事件隊(duì)列中。同時(shí),事件隊(duì)列中還包含在每個(gè)部分仿真開始和結(jié)束階段發(fā)送的當(dāng)前部分開始和結(jié)束的標(biāo)志事件及相應(yīng)的時(shí)間戳。
(2)當(dāng)收到OODA環(huán)下一部分開始標(biāo)志事件時(shí),停止當(dāng)前進(jìn)程的推進(jìn)。
(3)將下一部分開始標(biāo)志事件和大于下一部分開始標(biāo)志事件時(shí)間戳的事件從當(dāng)前待處理事件隊(duì)列移至下一部分待處理事件隊(duì)列中。按照時(shí)間戳對(duì)當(dāng)前部分的待處理事件隊(duì)列中的事件進(jìn)行排序。
(4)開始當(dāng)前邏輯進(jìn)程OODA環(huán)的下一輪推進(jìn)周期。
對(duì)推進(jìn)周期進(jìn)行上述設(shè)定,可保證各個(gè)推進(jìn)周期之間不會(huì)產(chǎn)生延遲消息造成作戰(zhàn)仿真因果關(guān)系錯(cuò)誤從而引發(fā)進(jìn)程回退。自適應(yīng)移動(dòng)時(shí)間窗算法對(duì)事件處理進(jìn)行了規(guī)定,所有進(jìn)程推進(jìn)的虛擬時(shí)間小于GVT的待處理事件隊(duì)列中的事件可以移動(dòng)至處理事件隊(duì)列中進(jìn)行樂(lè)觀的處理,其他待處理隊(duì)列中的事件不允許進(jìn)行處理;所有事件及事件處理產(chǎn)生的過(guò)程結(jié)果不進(jìn)行刪除,保證回退操作能夠順利進(jìn)行;當(dāng)某一進(jìn)程收到OODA環(huán)一下部分開始標(biāo)志事件時(shí),將對(duì)其他進(jìn)程發(fā)送消息;若其他所有進(jìn)程都已收到,將啟動(dòng)GVT計(jì)算,對(duì)系統(tǒng)進(jìn)行時(shí)間同步。
算法的計(jì)算步驟如下:
(1)仿真中的所有進(jìn)程按照樂(lè)觀的方式同步推進(jìn),更新各自的推進(jìn)周期,若有延遲消息,則進(jìn)行回退;
(2)當(dāng)某一進(jìn)程收到下一推進(jìn)周期開始標(biāo)志事件時(shí),對(duì)所有進(jìn)程發(fā)送消息并回到步驟(1),若所有進(jìn)程都收到下一推進(jìn)周期開始標(biāo)志事件,進(jìn)行GVT計(jì)算,同步系統(tǒng)時(shí)間;
(3)對(duì)上一推進(jìn)周期的事件隊(duì)列及過(guò)程結(jié)果進(jìn)行刪除,清理內(nèi)存;
(4)所有仿真進(jìn)程回到步驟(1),開始下一輪仿真。
算法偽代碼如下:
常規(guī)GVT計(jì)算分為同步法和異步法,同步法在發(fā)送開始GVT計(jì)算的消息后,會(huì)等待所有處理器返回接收消息才會(huì)開始計(jì)算,同時(shí)暫停所有處理器正在進(jìn)行的事件處理,會(huì)造成嚴(yán)重的阻塞。異步法不存在阻塞問(wèn)題,允許在計(jì)算GVT的同時(shí)繼續(xù)處理事件。兩種算法都容易產(chǎn)生暫態(tài)消息問(wèn)題。
為了避免在接到GVT計(jì)算消息后還存在已經(jīng)發(fā)送但尚未接收的暫態(tài)消息未被統(tǒng)計(jì)而導(dǎo)致的GVT計(jì)算錯(cuò)誤問(wèn)題。較為經(jīng)典的異步GVT算法為Mattern GVT算法,該算法通過(guò)對(duì)分布式仿真的每個(gè)處理器設(shè)置“切分點(diǎn)(Cut Point)”來(lái)計(jì)算GVT。如圖3所示,CP1和CP2為兩個(gè)切分點(diǎn)。在CP1和CP2之間為灰色區(qū)域,由白色區(qū)域發(fā)送的消息為白色消息,灰色區(qū)域發(fā)送的消息為灰色區(qū)域。算法將系統(tǒng)中所有的處理器按照邏輯排列成環(huán)結(jié)構(gòu),由系統(tǒng)中的控制器沿環(huán)上的順序發(fā)送GVT計(jì)算消息得到各自處理器,處理器接收該消息的時(shí)刻設(shè)置為CP1。CP2的設(shè)置是為了將所有暫態(tài)消息都包括在GVT計(jì)算中。當(dāng)所有處理的CP1確認(rèn)后,系統(tǒng)控制器將再次沿著環(huán)在各個(gè)處理器上確定CP2,當(dāng)發(fā)送給當(dāng)前處理器的白色消息和當(dāng)前處理接收的白色消息的數(shù)值相等時(shí),設(shè)置當(dāng)前時(shí)刻為CP2。在CP1、CP2確認(rèn)完畢后計(jì)算所有灰色消息及CP2之后未處理消息的最小時(shí)間戳值,該值即為GVT值。
圖3 Mattern GVT算法切點(diǎn)示意圖
該算法存在需要控制器對(duì)處理器構(gòu)建所有處理器的環(huán)結(jié)構(gòu),并逐一確定CP1、CP2兩個(gè)切點(diǎn)的值。同時(shí),Mattern GVT算法還需要區(qū)分不同消息的顏色,并統(tǒng)計(jì)CP2之后所有未處理消息的時(shí)間戳值,計(jì)算量較大。根據(jù)上述兩個(gè)缺點(diǎn),對(duì)Mattern GVT算法進(jìn)行了兩點(diǎn)改進(jìn)。
(1)本文提出的自適應(yīng)移動(dòng)時(shí)間窗算法中,CP1的確定由算法的步驟(2)自動(dòng)確定,并不需要控制器沿環(huán)逐一計(jì)算。
(2)對(duì)GVT的計(jì)算方法進(jìn)行改進(jìn),不進(jìn)行消息顏色判斷及CP2之后所有未處理消息的最小時(shí)間戳統(tǒng)計(jì)。當(dāng)所有處理器的兩個(gè)切點(diǎn)確定后,若下一個(gè)事件的時(shí)間戳值大于CP1時(shí),則GVT設(shè)置為所有進(jìn)程中最小的本地虛擬時(shí)間。
通過(guò)對(duì)Mattern GVT算法的改進(jìn),可避免控制器對(duì)處理器構(gòu)造環(huán)結(jié)構(gòu),能夠自發(fā)地進(jìn)行切點(diǎn)確認(rèn)及GVT計(jì)算。同時(shí),無(wú)需進(jìn)行消息顏色判斷及統(tǒng)計(jì)所有未處理事件的時(shí)間戳造成的計(jì)算冗余,防止計(jì)算阻塞,有效優(yōu)化GVT計(jì)算的復(fù)雜度。算法偽代碼如下:
仿真將采用基于改進(jìn)GVT的自適應(yīng)移動(dòng)時(shí)間窗算法進(jìn)行推進(jìn),其運(yùn)行機(jī)制如圖4所示。
圖4 分布式作戰(zhàn)仿真的運(yùn)行機(jī)制
仿真中由時(shí)間管理控制Agent對(duì)時(shí)間推進(jìn)線程的啟動(dòng)和關(guān)閉進(jìn)行管理和控制;時(shí)間管理算法對(duì)仿真的步長(zhǎng)進(jìn)行約束;仿真的狀態(tài)由不同的線程進(jìn)行初始化和設(shè)置;最終時(shí)間管理服務(wù)將作用在仿真模型中,保證分布式仿真在運(yùn)行的過(guò)程中,事件因果邏輯及消息收發(fā)正確且高效。
對(duì)于分布式作戰(zhàn)仿真,尤其重視仿真可能出現(xiàn)的時(shí)間異常問(wèn)題。主要的時(shí)間異常有內(nèi)部延時(shí)異常和信息延遲異常兩種。
兩種時(shí)間異常都會(huì)帶來(lái)嚴(yán)重的因果關(guān)系錯(cuò)誤問(wèn)題,本文提出的算法可有效防止該問(wèn)題的出現(xiàn),如圖5所示。算法將所有事件存放在OODA四部分的事件隊(duì)列中,在上一部分處理完畢后,會(huì)觸發(fā)GVT計(jì)算,同時(shí)對(duì)待處理事件隊(duì)列進(jìn)行排序,避免出現(xiàn)時(shí)間異常及回退。
圖5 本文算法對(duì)時(shí)間異常的修復(fù)示意圖
樂(lè)觀算法使用時(shí)間彎曲邏輯進(jìn)程(TWLP)并構(gòu)成時(shí)間彎曲系統(tǒng),TWLP與串行仿真的區(qū)別在于,當(dāng)前邏輯進(jìn)程(LP)的事件可以是其他LP調(diào)度產(chǎn)生的,同時(shí),處理完畢的事件不進(jìn)行立即刪除操作,會(huì)存在暫時(shí)隊(duì)列中。經(jīng)典樂(lè)觀算法能夠?qū)ΡJ厮惴ǖ男蔬M(jìn)行改善,但會(huì)隨著仿真的推進(jìn)帶來(lái)內(nèi)存占用過(guò)量及多級(jí)回退問(wèn)題。
本文提出的算法只需要保存上一部分的事件處理數(shù)據(jù),在GVT計(jì)算過(guò)后,將對(duì)之前所有處理事件產(chǎn)生的數(shù)據(jù)進(jìn)行清除,釋放內(nèi)存,開始新一輪推進(jìn)周期,有效解決樂(lè)觀算法帶來(lái)的內(nèi)存過(guò)載問(wèn)題。
對(duì)作戰(zhàn)仿真模型的參數(shù)進(jìn)行設(shè)置用于測(cè)試算法性能。模型的戰(zhàn)場(chǎng)由二維離散點(diǎn)構(gòu)成,戰(zhàn)場(chǎng)大小為100×100。戰(zhàn)場(chǎng)中分布兩種作戰(zhàn)Agent,分為紅軍和藍(lán)軍,每個(gè)Agent代表一個(gè)兵力,數(shù)量各100個(gè)。當(dāng)Agent死亡,在本輪仿真中將永久退出戰(zhàn)場(chǎng)。雙方觀察范圍均為15,運(yùn)動(dòng)范圍為1,火力范圍為5,戰(zhàn)斗閾值為1,特征權(quán)值為w→=(0.25,0.25,0.25,0.25)。仿真運(yùn)行500步并重復(fù)實(shí)驗(yàn)100次。仿真基于分布式Agent開發(fā)技術(shù)框架JADE平臺(tái),用Java語(yǔ)言編寫。每個(gè)Agent為一個(gè)單獨(dú)進(jìn)程,并被劃分在3個(gè)JADE容器中,模擬3臺(tái)計(jì)算機(jī)進(jìn)行分布式仿真。對(duì)100次仿真結(jié)果進(jìn)行平均,得到的存活A(yù)gent數(shù)量趨勢(shì)如圖6所示。
圖6 仿真過(guò)程中存活A(yù)gent數(shù)量趨勢(shì)圖
由于紅藍(lán)軍設(shè)置的參數(shù)基本相同,其存活A(yù)gent數(shù)量趨勢(shì)大致相同,在仿真運(yùn)行至300步時(shí)人數(shù)趨于穩(wěn)定,雙方不再交戰(zhàn)。
分別使用4種時(shí)間管理算法對(duì)模型進(jìn)行仿真測(cè)試,4種算法分別為本文提出的算法、普通移動(dòng)時(shí)間窗算法、樂(lè)觀算法及保守算法,實(shí)驗(yàn)結(jié)果如圖7所示。
圖7 4種算法實(shí)驗(yàn)結(jié)果對(duì)比圖
本文提出的自適應(yīng)時(shí)間窗管理算法在基于OODA環(huán)的仿真中運(yùn)行效果最好,所需時(shí)間最短。該算法與其他3種算法相比運(yùn)行時(shí)間分別提高了7%、11%和16%。
并行分布式仿真能夠提高仿真的運(yùn)行效率,其重難點(diǎn)在于時(shí)間管理算法的性能。針對(duì)OODA環(huán)作戰(zhàn)仿真的特點(diǎn),本文提出一種自適應(yīng)移動(dòng)時(shí)間窗算法,仿真結(jié)果優(yōu)于其他經(jīng)典時(shí)間管理算法。算法無(wú)需修改模型內(nèi)部結(jié)構(gòu),緊貼模型邏輯流程,自適應(yīng)調(diào)整時(shí)間窗大小;對(duì)推進(jìn)周期進(jìn)行設(shè)定,避免并行仿真的多級(jí)回退及死鎖問(wèn)題,同時(shí)可定期精準(zhǔn)清除內(nèi)存;改進(jìn)GVT計(jì)算算法,無(wú)需頻繁進(jìn)行GVT同步并能自發(fā)確定切點(diǎn),改善GVT計(jì)算復(fù)雜度。算法可為并行作戰(zhàn)仿真的研究提供支持,對(duì)未來(lái)大規(guī)模集群仿真作戰(zhàn)提供新的思路和參考。