康世龍
(山西云時代技術有限公司,山西 太原 030000)
計算機仿真技術主要用于解決各行業實驗代價高、實現過程無法重復及理論算法驗證等問題,仿真技術的發展從最初的硬電路仿真、實物仿真、半實物仿真到當前的虛擬化模擬仿真、基于代理的仿真,實現了從單實物的模擬到多實體間的協同模擬,解決了傳統仿真技術無法實現的多業務體協同,因此計算機仿真技術已經成為各行業解決技術難題的基礎工具[1]。
基于代理技術的計算機仿真是通過分布式思想構建的,通過代理執行特定的功能單元,并將多個代理通過進程調度機制形成相應的仿真體系,從而完成特定的仿真任務。而多代理仿真架構是通過任務調度機制完成代理間的不沖突管理工作,當前,基于多代理的仿真技術主要應用于軍事仿真、智慧城市、工業自動化仿真等方面。
圖1所示為多代理仿真研究的架構圖。多代理仿真研究主要涉及模型體系研究、調度機制研究、數據融合策略研究、自適應機制研究等。模型體系的研究最初起源于軍事應用,美軍的聯合作戰仿真系統JSIMS(Joint Simulation System)構建的MMF(Military Modeling Framework)建??蚣躘2],為仿真系統提供了基礎的開發框架,可實現模型組件的自有組配,但該模型體系并未提供具體的元描述,為此胡曉峰等提出了EBI(Entity,Behavior,Interaction)建模方法[3],將模型的設計按照其靜態參數、行為模型以及動態屬性等進行了細分,增強了模型設計過程中的靈活性,降低了各參數間的耦合度。

圖1 多代理仿真研究架構圖
關于調度機制的研究,主要完成對多代理間的任務規劃工作,如代理A完成戰場數據監聽的任務,代理B完成敵對目標打擊的任務,代理C完成打擊效果的評估工作,那么在調度過程中,需要確保代理A能夠將代理B執行的結果傳遞給代理C,圖2所示為簡單的基于時間片的任務調度機制示例圖,圖中顯示在T3~T5時刻代理B執行了其任務,在T5時刻代理A將執行結果通知代理C,從而完成一次代理任務調度過程。

圖2 基于時間片的任務調度機制
本文針對現有的模型體系架構以及任務調度機制,提出了一種應用于多代理仿真中的自適應模型融合機制,該機制利用模型自身的繼承機制,應用馬爾科夫概率模型自匹配模型結構,實現多代理仿真的智能化。
本文提出的模型自適應融合機制采用文獻[4]中所提出的HMP仿真模型組件技術,該模型遵循HLA分布式仿真體系架構,模型結構定義如下:
HMP=
其中,Mport、Attri、BaseModel、UserModel、ObjectBaseClass和InteractionBaseClass分別表示HMP的管理端口、屬性、模型基類、用戶模型、對象基類以及交互基類,各基類的定義通過其他公共參數完成數據的交互,如BaseModel的定義如下:
BaseModel=
那么基類與HMP交互通過公共參數Attri進行數據匹配,可通過模型標識作為基類與模型間交互的通道。
在多代理分布式仿真體系的實際應用中,模型體系作為仿真的基礎數據提供者,扮演著仿真架構中細胞的角色,如何確保各模型結構能夠自適應匹配仿真引擎的管理與調度是確保多代理仿真高效性的基礎。
自適應模型匹配機制按照狀態轉換條件,設計獨立代理進行模型管理工作,圖3所示為自適應匹配原理圖,代理監聽模型的公共數據參數,當仿真引擎的事件驅動滿足預測模型的調用條件時,按照概率事件代理決定是否完成預測模型的調用。

圖3 自適應匹配原理圖
圖3中,[u,N]表示一個時域,[u,N]|k表示在k時刻的下一個時域區間,而X∧[u,N]|k表示k時刻的下一個時刻發生的狀態?;A模型即為實際功能模型的輸入參數,通過公共數據結構Attri,代理執行時通過調度算法,按照仿真引擎實時發生的事件信息去判斷是否滿足基礎模型的調用。代理工作流程描述如下:
(1)啟動代理新進程,分配線程監聽功能模型的輸入;
(2)接收并管理各功能模型的Attri參數結構(公共參數),通過Attri中的關鍵字段對模型進行唯一識別;
(3)仿真引擎啟動事件激活,啟動新線程接收仿真引擎的模型事件信息;
(4)根據仿真引擎的事件信息,代理依據狀態轉換模型判別是否符合調用基礎模型的機會條件。
本文采用一種分布式仿真框架作為自適應模型匹配的框架支撐,框架由各類功能獨立的代理構成,模型結構采用XML的形式存儲?;诖朔N模式,本文設計開發了多代理、自適應分布式仿真系統,系統利用代理的靈活特性,動態調用相關的基礎模型結構。
代理監控模型設計采用經典的BDI模型結構,所謂BDI是由信念(Belief)、愿望(Desire)和策略(Implications)所構成的集合,該模型代理的關鍵在于求解領域行為規則庫P(Plan Library)的描述。代理監控模型是分布式仿真系統的核心構件,采用BDI模型的擴展可定義為三元組ACO:
A={ai}—代理的基本行為表述集合;
C={ci,ai}—代理執行行為ai的條件集合;
O={ci,ai,oi}—代理響應行為ai的具體動作集合。
模型體系結構按照HMP的模型架構定義,將Attri作為公共交互參數,其結構化定義如圖4所示。

圖4 模型結構定義
采用這種監視公共參數模式的數據流管控機制,有利于在實際仿真環境中提升系統設計的靈活性。該機制所采用的思想在文獻[5]中也有所介紹,文獻[5]提出了一種自適應多代理系統的形式化描述語言,認為在實際的自適應系統設計中業務與邏輯要實現分離,這樣可提升應用軟件的模塊化程度。
本文所設計的模型融合策略,是通過多代理仿真中模型管理及自適應調度的優化實現的。對于系統初始化狀態,核心工作機制是完成監控代理服務的啟動以及數據池的初始化,本文采用建立模型相關度關聯,圖5所示為模型相關度關聯圖。本文僅考慮模型間相對的屬性關聯度,如Model2相對Model1的關聯度為33.3%,而Model1相對Model2的關聯度為25%,相關度形象地表示了各個模型間的關聯親密度。根據文獻[6]自適應模型研究,相關度越大的模型間關聯關系程度越深,因此本文利用文獻[6]中所提出的自適應模型作為初始理論依據,暫不考慮各模型間的輸入輸出關系(將在后期研究中進行分析),相關度描述如式(1)所示:
(1)
式(1)簡單地描述了模型輸出相關度的計算過程,即計算本模型相對其他模型的相關度。

圖5 模型相關度關聯圖
相關度高的模型間存在較大的關聯關系,監控代理在模型交互過程中優先選用關聯度較高的模型進行切換,在實際的多代理仿真過程中,需要考慮各個模型的輸入、輸出參數,如圖5中Model1的輸出參數為Property A,而ModelN的輸入參數為Property A,那么該模型間的關聯度被認為有效;若Model1的輸入參數為Property Z,同時Model2的輸入參數為Property Z,那么該模型間的關聯度則無效。
建立模型間關聯度的網絡模型是初始化后的核心工作,利用網絡模型建立模型間的關系,圖6所示為網絡模型,通過加權矩陣wn×n表示模型間的相關聯關系,目標選擇概率如式(2)所示:
(2)


圖6 網絡模型
自適應模式融合的處理主要取決于監控代理對模型關聯圖的解讀,通過對各個模型間關聯度的提取,形成一個有向加權非對稱矩陣[7]:

(3)
如上式所示,矩陣中的非0元素表示代理間存在聯系,同時矩陣中的元素值表示代理間的關聯度的大小。根據對矩陣的迭代解算形成最終的意向模型選擇,由于在多代理仿真中需要保證仿真的運行效率,因此在算法的實現過程中需要確保矩陣解算過程中的迭代優化(矩陣的解算優化本文不做贅述)。
本文利用基于分布式仿真體系架構的某仿真引擎構建模型調度管理的原型系統,以某應用仿真作為背景,實現代理完成模型調度管理工作,按照自適應模型融合的實現流程創建整個實驗過程。最后完成與某仿真引擎自有模型管理機制的效率對比。
某仿真引擎的工作機理如圖7所示,在整個仿真過程中通過黑板結構進行全局數據的維護,通過代理的方式完成功能仿真,并且同地理信息數據、模型數據通過交互中間件完成數據的重構,本文通過增加監控代理對黑板結構中的模型構建關聯圖(增加了額外的工作量,由于在實際的仿真過程中模型結構是相對靜止的,因此對每個模型的出入度默認為確定)[8]。

圖7 某仿真引擎工作機理圖
本實驗以模型數量以及周期內模型調度次數作為實驗仿真的變量。圖8所示為模型調度次數的遞增對響應時間的影響實驗圖,在模型數量一定情況下,隨著模型調度次數的遞進,引擎自有的模型調度機制在Windows系統自有的任務調度機制下無法滿足用戶的請求次數時(如圖8當調度次數達到700次/周期的時候),自適應融合調度機制通過管理檢索自有的關聯圖能夠快速地調度關聯度最大的模型結構。

圖8 調度次數與響應時間對比圖
模型數量的多少直接決定仿真粒度及仿真效率的高低,對于大型分布式仿真來說,構建一個中型的仿真場景至少需要上萬個實體維護,底層須確保有近500個模型支撐。圖9所示為隨著模型數量的增加(用戶請求一定的前提下),系統響應時間的對比圖。圖中顯示當模型數量達到150批的時候,自適應融合機制在響應時間上明顯優于某引擎自有的模型調度機制,整體效率提升了近20%。

圖9 模型數量與響應時間對比圖
分布式仿真技術已經為多行業驗證性研究提供了高效、準確的計算服務,然而模型作為計算機仿真的基礎,設計有效、合理的調度機制是仿真過程優劣的評價標準之一。本文利用自適應思想,采用相關度作為模型協同調用的依據,設計了一套自適應模型調度融合算法,通過與某仿真引擎的模型管理機制進行調度性能對比,結果表明在模型調度效率上提升了近20%。