姚可欣,付長軍,鄭偉明,陳得恩,田興聰,熊軻
(1.北京交通大學 計算機與信息技術學院,北京 100000;2.中國電子科技集團公司第五十四所,河北 石家莊 050000)
離散事件動態(tài)系統(tǒng)[1]廣泛應用于軍事作戰(zhàn)、消防抗災等場景中。由于這類場景的環(huán)境復雜,建模涉及對象層次多、種類多、關系復雜,因此需要構建標準化的場景描述語言和建模方法。在系統(tǒng)開發(fā)初期,選擇合適的建模分析方法并建立嚴謹的系統(tǒng)模型,對于檢驗系統(tǒng)設計中存在的缺和提升系統(tǒng)開發(fā)效率具有重要意義。
離散事件動態(tài)系統(tǒng)的建模分析方法主要包括美國國防部體系結構框架(Department of Defense Architecture Framework,DoDAF)[2]、統(tǒng)一建模語言(Unified Modeling Language,UML)[3-4]、系統(tǒng)建模語言(Systems Modeling Language,sysML)[5]和功能模型建模(ICAM Definition,IDEF)[6]等。DoDAF能有效地描述系統(tǒng)的靜態(tài)信息和動態(tài)信息,但不能驗證系統(tǒng)動態(tài)行為特征的變化情況。UML、sysML和IDEF是以圖形描述的可視化建模語言,但不能用于系統(tǒng)的驗證和運行。
Petri網是一種基于邏輯層次的建模方法[7-10],能夠描述系統(tǒng)的動態(tài)行為及各實體間的信息交互關系,適用于離散事件動態(tài)系統(tǒng)建模。然而傳統(tǒng)的Petri網難以適用于規(guī)模龐大、結構復雜的系統(tǒng)建模。因為隨著系統(tǒng)的庫所和變遷節(jié)點數量的增加,會導致圖形網絡繪制困難、可視性不強的問題。此外,Petri網還缺少對時間信息的描述并會產生托肯類型單一的問題[11],使得對系統(tǒng)的分析變得更為復雜。
著色Petri網(Colored Petri Net,CPN)是對傳統(tǒng)Petri網的擴展[12-13]。CPN能夠實現顏色集的描述和層次化建模。對系統(tǒng)進行層次化建模能夠減少模型中庫所和變遷的使用量,增強模型的可視性;顏色集功能能夠提高模型對數據的抽象和處理能力,降低了模型的復雜度,更有利于動態(tài)系統(tǒng)的設計與建模[14]。
因此,本文提出一種基于CPN的離散事件動態(tài)系統(tǒng)建模方法。首先對系統(tǒng)的信息流分析并建立UML模型,然后依據映射規(guī)則和CPN的性質,將UML模型轉換為CPN模型。CPN Tools[15]測試輸出的結果,驗證了所提方法的可行性,同時也為系統(tǒng)的設計與優(yōu)化提供了一定的參考。
Petri 網主要用于描述離散事件系統(tǒng)。在 Petri網絡中,通過變遷的使能實現令牌由輸入庫所向輸出庫所的轉移,以此來描述系統(tǒng)狀態(tài)的動態(tài)變化。CPN是由傳統(tǒng)Petri網擴展而來的高級Petri 網,增加了顏色集和網絡分層兩部分功能。通過引入托肯顏色集的概念,能夠分別對不同的信息類型進行定義,提高模型對數據處理的能力。通過引入分層的概念,將整個系統(tǒng)劃分為父單元與子單元,然后通過替代變遷和融合庫所將各單元組織連接起來。降低了模型的復雜度,使得模型更為清楚簡潔。因此,CPN更適用于描述大規(guī)模的、動態(tài)性高的離散事件系統(tǒng)。
CPN具有良好的數學性質,包括可達性、有界性和活性等。這些性質可以用來驗證模型的正確性和系統(tǒng)的可行性。
(1)可達性。如果CPN模型的一個初始狀態(tài)通過不斷激發(fā)變遷,最終能達到一個結束狀態(tài),那么這兩個狀態(tài)間是可達的??蛇_性可以用來驗證系統(tǒng)設計的正確性。(2)有界性。在CPN模型運行的各個狀態(tài)下,如果所有庫所的令牌數均有明確的上界和下界,那么該CPN模型是有界的。有界性可用來檢驗系統(tǒng)是否存在溢出。(3)活性。CPN模型中活變遷是指在可達狀態(tài)下能夠使能的變遷。若一個CPN模型的所有變遷都是活變遷,則該CPN模型具有活性?;钚钥梢杂糜隍炞C模型的可執(zhí)行性。
以經典的紅藍體系對抗游戲為例,對系統(tǒng)進行信息流分析。該離散事件動態(tài)系統(tǒng)描述的是在紅方發(fā)起進攻后,藍方以機降作戰(zhàn)的方式對入侵紅方進行打擊的過程。下面根據游戲對抗的過程,建立系統(tǒng)的UML模型。
系統(tǒng)用例圖如圖1所示。通過用例圖可以得到各參與作戰(zhàn)實體的動作以及各實體之間的信息流動關系。參與作戰(zhàn)的實體包括藍方的地面機動指揮所、空中指揮所、偵察直升機、武裝直升機、運輸直升機和機降分隊?;局笓]單元接收狀態(tài)信息并逐級下發(fā)指揮信息;各戰(zhàn)斗單元接收并執(zhí)行上級下發(fā)的指令,進行協同信息的交互,最終完成作戰(zhàn)任務。
圖1 系統(tǒng)用例圖
通過系統(tǒng)用例圖對紅藍對抗流程進行分析,將對抗過程分為籌劃準備、集結乘載、空中機動、突擊著陸、地面戰(zhàn)斗和撤離戰(zhàn)斗6個階段。根據對抗過程中信息的流動,分別對每個參與作戰(zhàn)的實體設計UML活動圖?;顒訄D描述了各個參與作戰(zhàn)實體在各階段的動作及動作的順序,為UML模型向Petri網模型的轉換提供基礎。
(1)總體活動圖設計。如圖2所示,系統(tǒng)的總體活動圖用于描述作戰(zhàn)過程的6個階段。在戰(zhàn)斗準備過程中,首先進行籌劃準備,各指揮所逐級下發(fā)作戰(zhàn)任務給作戰(zhàn)單元;然后在集結乘載階段中,由乘載協調組向運輸直升機和待乘機降分隊發(fā)送裝載信息,指揮組接收機降場信息并指揮機降分隊乘載上機。在戰(zhàn)斗開始時,首先進入空中機動階段,偵察機監(jiān)視戰(zhàn)場情況并上報,指揮組負責監(jiān)視空中梯隊、接收戰(zhàn)場信息并進行組織協同;接著進行突擊著陸,指揮組協同指揮機降著陸;在地面戰(zhàn)斗過程中,指揮組根據偵察機提供的定位信息,引導機降分隊進行火力打擊,武裝直升機進行空中協戰(zhàn);最后是撤離戰(zhàn)斗階段,由作戰(zhàn)單元申請撤離,指揮組協調組織各單元撤離戰(zhàn)場,作戰(zhàn)結束。
圖2 系統(tǒng)總體活動圖
(2)參戰(zhàn)單元活動圖設計。根據系統(tǒng)用例圖和總體活動圖的描述,對參與紅藍對抗的各參戰(zhàn)實體建立活動圖。活動圖描述了各階段中各實體信息流動的情況。以空中指揮所為例,構建的活動圖如圖3所示。在準備籌劃階段,空中指揮所接收上級作戰(zhàn)任務并判斷當前狀態(tài)是否應戰(zhàn)。若應戰(zhàn),則作戰(zhàn)任務信息逐級下發(fā)至各作戰(zhàn)單元;否則,不予響應,繼續(xù)等待下一條指令。然后在集結乘載過程中,空中指揮所向各作戰(zhàn)單元下達進場指令,并指揮地面待乘分隊乘載上機。接著在空中機動過程中,由空中指揮所監(jiān)視和指揮運輸直升機起飛,實時掌握各作戰(zhàn)單元的態(tài)勢信息,并向上級申請火力資源。在突擊著陸的過程中,空中指揮所接收機降場狀態(tài)信息,并指揮機降。在地面戰(zhàn)斗過程中,空中指揮所將指揮權轉交給地面指揮所;最后在撤離戰(zhàn)斗時,空中指揮所接收撤離指令,組織各作戰(zhàn)單元撤離,戰(zhàn)斗結束。
圖3 空中指揮所活動圖
在第2節(jié)對系統(tǒng)信息流分析的基礎上,將系統(tǒng)的用例圖和活動圖轉換為Petri網模型。通過引入顏色集和對模型進行分層設計,將Petri網模型進一步轉換為CPN模型,實現對系統(tǒng)運行過程的推演。
(1)用例圖向Petri網映射規(guī)則。用例圖描述了參與紅藍對抗的作戰(zhàn)單元,以及在對抗過程中各單元的動作。使用Petri網表述用例圖的方法如下:①庫所用于表示參與作戰(zhàn)的實體;②變遷用于表示各實體的用例;③連接庫所和變遷的有向弧用于描述各實體間信息流動的方向。
(2)活動圖向Petri網映射規(guī)則?;顒訄D描述了紅藍對抗過程中各作戰(zhàn)單元要進行的活動及活動的順序。使用Petri網表述活動圖的方法如下:①變遷用于表示活動節(jié)點。為變遷添加輸入庫所和輸出庫所,用于表示該活動發(fā)生前和發(fā)生后系統(tǒng)的狀態(tài);②守衛(wèi)條件和變遷函數用于表示活動發(fā)生的監(jiān)護條件;③Petri網中的分支結構,使用與活動圖分支路數相同數量的輸出變遷,并由守衛(wèi)條件和有向弧上的判斷函數決定分支選擇;④Petri網中的合并結構,使用與活動圖合并路數相同數量的輸入變遷,并由守衛(wèi)條件和有向弧上的判斷函數決定合并條件。
CPN模型中用顏色集來描述UML中對象的屬性信息。根據對抗過程中各參與者的交互信息,為不同的托肯創(chuàng)建不同類型的顏色集。為了能夠描述時間信息,均為設定為可攜帶時間信息的顏色集。不同類型顏色集的表述如表1所示:
表1 顏色集聲明及其含義
采用自上而下的建模方法,將轉換后的Petri網模型進一步轉換為CPN模型。CPN模型的頂層模型用于描述各參與作戰(zhàn)實體間的信息傳遞關系,子模型對頂層模型的替代變遷進行細化建模。根據UML圖中對系統(tǒng)不同階段的劃分,將Petri網分為1個頂層模型和6個子模型。再根據UML活動圖為每個階段構建CPN子模型,創(chuàng)建不同類型的顏色集實現對不同類型信息的描述。
(1)頂層模型。頂層模型用于描述參與者之間信息交互的方向?;趯t藍對抗系統(tǒng)的信息流分析,系統(tǒng)的 CPN頂層模型如圖4所示。該模型含有一個初始庫所代表上級指揮中心,其顏色集為TxP類型,表示作戰(zhàn)任務信息。此外,頂層模型還包括6個表示參與者的庫所、6個替代變遷和一個托肯。參與者庫所的顏色集均為SxTxZxO四元組,表示作戰(zhàn)信息;替代變遷表示系統(tǒng)運行的不同階段,由對應的子模型具體實現;初始庫所的托肯用于初始化作戰(zhàn)任務信息,該信息可從初始庫所流入子模型。
圖4 CPN 頂層模型
(2)子模型。子模型作為頂層模型替代變遷的實現,能夠實現層次化建模。以描述籌劃準備過程的子模型為例,其CPN模型如圖5所示。該子模型的輸入端口庫所為上級指揮中心,其顏色集為TxP類型,表示作戰(zhàn)命令二元組。上級作戰(zhàn)任務信息流入子網絡后,由地面指揮所判斷當前的狀態(tài)是否要響應作戰(zhàn)任務。判斷過程通過在有向弧上添加選擇語句實現。滿足變遷激活條件的信息才會向下傳遞,否則繼續(xù)等待下一個作戰(zhàn)任務。下達作戰(zhàn)任務變遷的功能是更新作戰(zhàn)指令和目標信息的值,并將信息以SxTxZxO四元組的形式發(fā)送給各參與作戰(zhàn)單元。最后,更新指揮單元和作戰(zhàn)單元的狀態(tài),表示準備完成,可進入下一階段。
圖5 籌劃準備子網絡
使用CPN Tools工具建立系統(tǒng)的CPN模型,該工具支持CPN建模語言、網絡層次劃分和顏色集。此外,CPN Tools的狀態(tài)空間報告可以用來驗證模型的正確性。
在仿真過程中,令牌的動態(tài)變化能夠顯示出系統(tǒng)狀態(tài)的變化。仿真結束后,可得到狀態(tài)空間報告。報告給出CPN模型的數學性質,包括可達性、有界性和活性等,可據此對模型進行正確性驗證。
(1)可達性分析。圖6是單次仿真得到的狀態(tài)空間報告。由圖可知模型中有54個可達狀態(tài)節(jié)點和55條有向弧,表示模型在不同約束條件下存在多條可達路徑。說明從初始標識出發(fā),總存在變遷序列使得CPN模型能夠到達規(guī)定的終止狀態(tài)。因此,模型滿足可達性,系統(tǒng)能夠按照UML設計的軌跡正確運行。
圖6 模型狀態(tài)空間報告
(2)有界性分析。模型有界性報告的部分結果如圖7所示。從報告結果可以看出,模型中每個庫所擁有的令牌數都在某一確定范圍內。庫所中令牌的下界是指在整個運行過程中,該庫所擁有令牌數量的最小值。結果顯示庫所中初始化的托肯數目為0或在運行過程中有令牌的流失;令牌的上界是指在整個運行過程中,該庫所擁有令牌數量的最大值。結果顯示庫所存在輸入變遷使能,使得令牌能夠流入庫所。因此,模型具有良好的有界性,保證了系統(tǒng)運行的安全性。
圖7 模型有界性報告
(3)活性分析。模型的活性報告如圖8所示。從報告結果可以看出,狀態(tài)節(jié)點50、54是該模型的兩個死標識。這兩個節(jié)點分別表示打擊失敗和打擊成功兩種情況下的結束的狀態(tài),符合系統(tǒng)設計需求。結果顯示模型中沒有死變遷,即模型中的所有變遷都能夠使能,表明該模型具有良好的活性。
圖8 模型活性報告
為解決復雜場景下離散事件系統(tǒng)動態(tài)性高引起的分析困難問題,提出了一種基于著色Petri網的離散事件動態(tài)系統(tǒng)建模方法。該方法首先對系統(tǒng)進行信息流分析并構建UML模型,然后根據Petri網的性質將UML模型映射為Petri網模型,最后通過為Petri網模型添加顏色集和層次結構建立系統(tǒng)的CPN模型。CPN Tools測試輸出的結果,驗證了所提方法的有效性,同時也為系統(tǒng)的設計與優(yōu)化提供了一定的參考。