王興眾,董曉明
(1.武漢大學動力與機械學院,湖北武漢430072;2.中國艦船研究設計中心,湖北武漢430064)
隨著艦船作戰(zhàn)系統(tǒng)的發(fā)展,其軟件的復雜程度越來越高,分布性、并發(fā)性、實時性[1]及智能性越來越多地出現在軟件需求中。但傳統(tǒng)的軟件分析設計方法 (如面向對象的分析方法)卻往往對此束手無策,原因在于復雜系統(tǒng)有太多的因素需要考慮,建立的模型復雜度過高,而傳統(tǒng)的軟件分析方法又沒有很完善的方法來解決這些問題。于是,如何對復雜軟件系統(tǒng)進行分析建模[2]就成為一個極具挑戰(zhàn)性的課題。
解決軟件復雜性的工具有以下幾種:
1)分解。處理任何大型問題最基本的技巧就是把它分解成許多更小、更易于管理的模塊,從而可以分別進行獨立處理。
2)抽象。針對復雜系統(tǒng)建立一個簡化的模型,強調重要的屬性,而忽略那些不太重要的屬性。
3)組織。確認和管理各個問題解決模塊之間的交互關系。
隨著時代的發(fā)展,艦船作戰(zhàn)系統(tǒng)大多被用于難以預料的復雜環(huán)境。面向對象的建模方法在分析這些問題時,有些力不從心,因為即使是抽象出來的模型仍然太復雜。而程序設計的本質就是把現實世界中的東西抽象成模型,模型越清晰,實現起來就會越容易,也就更利于維護和重用。這就出現了對新的軟件分析方法的需求。
智能體是處于某種環(huán)境中被封裝的軟件實體,為了實現設計目標能夠靈活自治的同環(huán)境交互行為,其研究可追溯到20世紀70年代分布式人工智能(Distributed Artificial Intelligence,DAI)的 研究[3-4]。智能體一方面繼承了“對象”的優(yōu)點,比如封裝性,良好定義的接口等;另一方面又具備了許多“對象”所沒有的特性,比如明確的目標、自制性及靈活的問題求解能力等。這些特性恰好為分析復雜系統(tǒng)提供了解決的工具。
由于研究的角度和內容不同,智能體有多種不同的定義。被很多工程人員加以引用的是Michael Wooldridge的關于智能體的弱定義和強定義[5]。
弱定義:具有反應性、自治性、能動性和社交性的計算實體或程序被稱為智能體。
強定義:在弱定義的基礎上增加了心智上的概念“信念-需求-意圖” (Belief-Desire-Intention,BDI)、理性、準確性和自學習。
在互聯網環(huán)境和多智能體環(huán)境下,智能體的基本特性主要包括[6-7]:
1)自治性。智能體運行時不直接由人或者其他東西控制,它對其自己的行為和內部狀態(tài)有一定的控制權。
2)社會能力。借助某種通信語言,智能體具有與其他智能體或人進行交互的能力。
3)反應能力。智能體能夠理解它所處的環(huán)境,能對環(huán)境的變化作出及時適當的響應。
4)主動性。智能體并不是對其所處的環(huán)境作出簡單的響應,而是采取積極主動的目標驅動行為。
5)適應性。智能體能夠調節(jié)其自身的行為,以適應新的環(huán)境。這是一種能夠隨著時間而改進其實現目標能力的特性。
6)協作性。在多智能體環(huán)境下,各個智能體通過相互協商與合作來進行任務的分工,共同實現多智能體系統(tǒng)的功能。
智能體特別是多智能體的理論、技術,為復雜系統(tǒng)的分析、設計和實現提供了一個嶄新的途徑,被譽為“軟件開發(fā)的又一重大突破”。將智能體技術[8-9]應用到艦艇作戰(zhàn)系統(tǒng)的軟件開發(fā)中,可以從以下方面對軟件系統(tǒng)的性能進行改善:
1)智能體技術將有力地增強軟件系統(tǒng)的外部環(huán)境獲取、分類、過濾能力。由于每1個智能體都是1個智能的實體[10-11],所以智能體間的相互協調與協作可以擴大傳感器的搜索范圍;增強多傳感器局部搜索的準確性;加快數據融合的速度以及改善處理后的信息清晰度和條理性。
2)智能體技術可以提高系統(tǒng)的應對能力。這主要表現在人性化的智能體技術能根據不同層次人員的需求,提供全方面、準確的信息,并依據自己的歷史數據庫提供可行的輔助決策支持。
3)智能體可以提高軟件系統(tǒng)的抗毀性。任何情況下,多智能體系統(tǒng)都可以依據系統(tǒng)目前的資源狀況和環(huán)境因素,快速組織資源通道以實現人員的意圖。在系統(tǒng)局部受損的情況下,這些分布在各個網絡節(jié)點的智能實體能有效重構,以實現傳感器與資源設備的最佳組合。
世界各國為了迅速提高自己的軍事實力,競相發(fā)展高新技術兵器,這些新型武器設備的發(fā)展雖然提高了作戰(zhàn)性能,但也帶來了技術風險。首先是各系統(tǒng)之間和各系統(tǒng)與艦船總體之間的接口多而不易協調;其次,新技術往往在開始研制時不太成熟,其硬件、軟件和接口尚不明確,給以后擴展和維修帶來巨大的困難;再者,大量不兼容的計算機語言使各分系統(tǒng)軟件之間的對接變得極為困難,這嚴重影響了系統(tǒng)的可靠性、可維護性和可用性。
軍事上的需求要求從根本上解決上述問題。必須根據戰(zhàn)術要求,對艦船作戰(zhàn)系統(tǒng)的元素特性進行分析,建立系統(tǒng)原型,并通過軟件設計反映到技術裝置。由此可見,系統(tǒng)原型是戰(zhàn)術和技術之間的橋梁,對它進行分析和設計是極為重要的。
因此,如何把智能體的理論、技術,特別是多智能體的理論、技術,成功運用于艦船作戰(zhàn)系統(tǒng)的分析、設計中,是解決新的軟件系統(tǒng)需求比如分布性、并發(fā)性、實時性和智能性的研究關鍵。基于此背景,本文以艦船協同作戰(zhàn)為線索,來闡述基于“角色”的艦船作戰(zhàn)系統(tǒng)的分析設計方法。
“面向智能體”是“面向對象”的進一步發(fā)展,也是對真實世界更自然,更擬人化的建模。從現實世界中人類、事物和環(huán)境出發(fā),認為事物的屬性特別是動態(tài)特性在很大程度上受到與其密切相關的人和環(huán)境的影響,強調認識、思維與客觀事物及其所處環(huán)境之間的相互作用,將影響事物的主觀與客觀特征相結合,抽象為系統(tǒng)中的智能體,作為系統(tǒng)的基本構成單位,通過智能體之間的合作、競爭、協商來實現系統(tǒng)的整體目標。
在智能體生命周期中引入角色概念[12],如圖1所示。一個智能體至少需要扮演一個角色,但是在其生命周期中,可以根據不同的環(huán)境情況扮演不同的角色。角色的實例僅僅存在于同智能體的聯系中,其生命周期開始于智能體類實例化的過程中。當一個智能體根據當前需要和一個角色綁定時,此角色的生命周期就此開始。當環(huán)境發(fā)生變化時,該智能體又和另外一個角色相結合,則上一個角色的生命周期就此宣告終結,下一個角色的生命周期開始。在智能體的生命周期中,智能體會扮演不同的角色,每個角色都有自己的執(zhí)行周期,除非發(fā)生異常中止。
基于角色的概念,在圖2中給出一個某平臺中的智能體結構:智能體從外界獲取消息;然后根據其目標來規(guī)劃選擇一個角色,對外進行反應;相應角色的方法被激發(fā)來完成對外界的反應;智能體的屬性和外界決策將會根據行為反饋進行調整。

圖2 某平臺中的智能體結構Fig.2 The structure of agent in a platform
1)角色模型
通過角色模型可以將系統(tǒng)分解成各個角色模塊以及定義每個智能體的角色劃分。角色劃分描述了一個智能體如何被分解成為子模塊,以及這些子模塊組合在一起的方式。
每個角色至少同一個功能相聯系,不同的角色承擔不同的責任。在大多數情況下,智能體同角色之間是一一對應的關系,但是一些緊密相關的角色為了方便和模塊化,可以封裝到一個智能體之中。
2)交互模型
它描述了智能體和角色之間的交互機制。智能體有一些功能必須通過相互之間的交互才能夠實現。通過交互,智能體能夠獲取信息,然后更新內部狀態(tài) (信念,目標和能力),然后調整自身來對外界進行反應。交互機制提供了合適的條件來保障智能體之間的交互,這是協作的基礎。
通過交互模型,確定智能體之間的接口,找到和糾正運行時的錯誤和潛在的通信瓶頸。這個模型對于智能體之間的管理是至關重要的。
3)狀態(tài)模型
它提供一種描述智能體內部工作流和角色轉換機制的手段。同時,狀態(tài)模型能夠反映出外界事件對智能體內部狀態(tài)所產生的影響。要注意,1個交互對應于2個智能體的狀態(tài)轉換。
每個狀態(tài)具有輸入,輸出,前提和結果。智能體的狀態(tài)依賴于它的輸入和前提狀態(tài)。作為對輸入事件的一個反應,智能體根據當前狀態(tài)能夠決定是轉到一個不同的角色還是繼續(xù)保持當前狀態(tài)。根據這些規(guī)則,推導出每個角色的功能和角色類的繼承框架。
通過對一個簡單的試驗來詳細闡明“基于角色的面向智能體”軟件分析方法。案例以“我軍2艘軍艦在追擊敵方1艘軍艦”為背景,分析重點在于艦船作戰(zhàn)系統(tǒng)如何能夠對各種情況做出恰當的反應,各個智能體能夠相互協作,共同完成任務。作戰(zhàn)情景如圖3所示。我軍的2艘軍艦在一片海域中協作追擊敵方的1艘艦艇,二者速度基本相同。在規(guī)定的時間內,當我軍艦只與敵艦在同一個格子時,表示追上了敵艦,我軍獲勝;否則算敵艦逃走。在這片海域中行進,需要繞開障礙物,圖中黑色部分代表障礙物,白色部分代表通道,這些信息存儲在代表環(huán)境的一個矩陣結構中,每個格子都用一個類型值來表示障礙或者通道。我軍艦只和敵艦在移動位置時,都需要獲取自己周圍方格的類型信息,以判斷能否前進。當我軍艦只與敵艦之間的距離小于4時,會相互發(fā)現對方。當我軍的1艘軍艦發(fā)現敵艦時,會立即通知另1艘軍艦趕來支援。

圖3 艦船作戰(zhàn)場景Fig.3 Ship combat scenarios
這是一個明顯的并發(fā)系統(tǒng),我軍與敵人的行動同步進行,又相互制約,可以按照多智能體系統(tǒng)來進行分析建模。每個智能體都有自己的意愿和行為,有的目的相悖,有的目的相同。由于智能體之間的交互具有不確定性,采用面向對象的方法進行分析,艦船作戰(zhàn)系統(tǒng)的結構會變得十分龐雜,難以控制。采用“面向智能體”的分析設計,能夠比較清晰地描述出整個結構框架,而且便于擴展。下面就逐一介紹整個系統(tǒng)的具體分析設計流程。
如圖4所示,可以很清楚地看出智能體的目標,分解的角色以及每個角色所實現的功能。分離出4個智能體,2個代表我軍艦只;1個代表敵艦,1個代表環(huán)境。我軍艦只的目標是抓住敵艦。為了實現目標,必須完成以下任務:能夠偵察到敵艦的蹤跡;同友艦交換信息;發(fā)現敵艦后能追上它。為了完成每個任務,分派了3個角色:信息、指揮和武器。信息角色承擔信息獲取和信息處理的任務,負責發(fā)現障礙物和敵人的行蹤;指揮角色承擔指揮決策的任務,還負責同友艦進行協商,共同行動,共享信息等;武器角色則承擔消滅敵人的任務,根據當時的具體情況采取不同的作戰(zhàn)策略。

圖4 角色模型圖Fig.4 Role model diagram
模型目的:描述智能體之間的交互方式,如何獲取自己所需要的信息。通過交互圖可以找出任何潛在的通信瓶頸,運行時可能引起的問題,以便進行改正。
如圖5所示,陰影部分代表協調者,方塊代表各個智能體,由用于交互的函數和底層通信原語組成。智能體之間在邏輯層的交互用虛線表示,實際底層通信機制用實線表示,經過交互介質來實現。虛線上的單詞表示通信原語,數字表示交互的先后次序。

圖5 交互模型圖Fig.5 Interaction model diagram
我軍艦只與環(huán)境之間的交互主要包括:InformNayPosition(),通知環(huán)境自己的當前位置坐標;GetEnemyPosition(),獲得敵艦的當前位置坐標;GetGridType(),從環(huán)境獲得四周方格的類型,判斷是障礙物還是通路,能否前進。敵艦與環(huán)境之間的交互采用類似方式。
圖6展現了我軍艦只智能體隨著具體環(huán)境的變化而不斷改變自己的狀態(tài)。整個狀態(tài)圖由信息角色、指揮角色和武器角色3個角色圖組成,每個角色內部又包含了角色自己的狀態(tài)轉換圖。
我軍艦只智能體每移動1格作為1個行為周期,在這個周期內,角色轉換可能發(fā)生2~3次。首先是信息角色與環(huán)境智能體交互,詢問在可觀察范圍內是否有敵艦,如果有,就獲得了最新的敵艦位置;接著就是轉到指揮角色,察看友艦是否知道敵艦的位置,并請求援助;接著由武器角色承擔進攻任務。當我軍艦只智能體處于指揮角色時,就與友艦互換信息,以求獲得最新的敵艦位置信息,如果雙方都沒有,則仍保持原有信息,轉到信息角色。在信息角色階段,先以我軍艦只智能體所在位置為中心,判斷四周8個格子中哪1個沒有障礙,可以前進。然后根據敵艦的方向選擇下一步前進的最佳位置。最后向逼近敵艦的方向移動1格,完成本周期的任務,如果敵艦就在這個格子中,則獲得勝利。

圖6 角色狀態(tài)轉換圖Fig.6 Role state transition figure
通過上述智能體模型的結構可以看出,它符合程序設計中的開放封閉原則 (Open-Closed Principle,OCP),既能夠很好地利用已有的種類和對象,做到最大程度上的重用;又具有很好的擴展性,能夠根據需要來添加所需角色,而不會影響軟件系統(tǒng)結構。
但這個模型也存在以下缺陷:
1)智能體問題求解和智能體BDI狀態(tài)之間的關系尚未得到充分表達。具體的應用往往是面向問題求解的,如果問題求解和智能體的BDI狀態(tài)不能結合在一起,那么BDI狀態(tài)的描述只能是“早熟的數學”,不能為開發(fā)人員所接受。
2)智能體模型和具體的智能體結構之間沒有明確的映射關系,使實際智能體建造者難以用軟件實現智能體理論者提出的抽象智能體模型。從BDI理論模型出發(fā)而形成的軟件模型與解決的軟件開發(fā)過程中的具體問題相脫離,具體表現在:由于智能體理論描述和實際系統(tǒng)結構之間缺乏清晰的關系,軟件模型幾乎不能對現有的軟件智能體的設計和實現起到指導和驗證作用,而僅僅成為軟件實現邏輯模塊的一個名詞而已。
3)實踐表明,用邏輯語言描述智能體BDI的形式化方法與軟件實現之間存在較大距離。BDI模型本身幾乎不支持軟件開發(fā)過程中所遇到的一些根本性問題,如由于并行性和網絡計算等特點帶來的軟件復雜性問題,又如提高軟件粒度重用問題以提高開發(fā)效率的問題或軟件功能驗證的可維護性問題。
雖然“面向智能體”的分析方法確實具有“面向對象”所不具備的很多優(yōu)勢,但是目前并不成熟,難以在實際項目中應用。要改變這種局面,首先要把研究“面向智能體”的分析方法同研究智能體模型本身區(qū)分開來。智能體模型本身主要是研究策略選擇方面,是多變的,隨著人們對智能體認識的不斷深入,新的模型會不斷涌現,這就造成基于某種固定智能體模型的軟件分析方法比較僵化,靈活性差,很容易被淘汰。但是智能體在整個軟件體系構架中的位置和作用一般是相對穩(wěn)定的,可以構建一個智能體在軟件體系結構中的構件模型,作為實際智能體到軟件體系結構的一個映射,這個模型較穩(wěn)定,即使智能體模型本身不斷變化,但都可以映射到這個構件模型上,避免了面向智能體分析方法的變動。其次,把智能體的研究同人工智能區(qū)分開,在實際項目中,并不需要智能體具有多高的智能,或者具備智能體的所有屬性,應該根據項目的實際需要來對智能體的屬性進行取舍,并且要盡可能地利用目前已經比較成熟的各種軟件開發(fā)技術,以降低軟件開發(fā)成本。
本文從基于角色概念和智能體技術出發(fā),對軟件開發(fā)進行了模型架構設計,給出模型的層次結構,通過艦船作戰(zhàn)系統(tǒng)協同來實現所設計的模型。同時,對模型如何應用于實際系統(tǒng)作了初步的分析,并就其中出現的問題給出了一些初步的解決方案。正在對以上3個模型進行細化,將面向服務框架 (Service Oriented Architecture,SOA)的設計思想應用于系統(tǒng)實現,使系統(tǒng)更易于擴展,增強其互操作性,為實現實際的可用系統(tǒng)做進一步的工作。
[1]章軍,高曙.基于Agent技術的Internet信息通訊的研究與應用[J].通信電源技術,2004,21(2):27-29.ZHANG Jun,GAO Shu.The research and application of internet information and communication based on agent technology[J].Telecom Power Technologies,2004,21(2):27-29.
[2]謝儲暉.面向主體的系統(tǒng)開發(fā)方法[J].計算機與現代化,2003(12):13-16.XIE Chu-hui.The development methods of subject-oriented system[J].Computer and Modernization,2003(12):13-16.
[3]MOTAMENI H,MOVAGHAR A,SHIRAZI B,et al.Analysis software with an object-oriented petri nets model[J].World Applied Sciences Journal,2008,4(3):565-576.
[4]靳小龍,張世武,等.多智能體模型與實驗[M].北京:清華大學出版社,2003.3-14.JIN Xiao-long,ZHANG Shi-wu,et al.Multi-agent model and experimental[M].Beijing:Tsinghua University Press,2003.3-14.
[5]WOOLDRIDGE M,et al.Intelligent agents:theory and practice[J].Knowledge Engineering Review,1995,10(2):115-152.
[6]史忠植.智能主體及其應用[M].北京:科學出版社,2000.6-11.
[7]靳小龍,張世武,等.多智能體模型與實驗[M].北京:清華大學出版社,2003.3-14.
[8]薛霄.面向agent的軟件設計開發(fā)方法[M].北京:電子工業(yè)出版社,2009.12-14,205.XUE Xiao.The design and development methods of agentoriented software[M].Beijing:Electronics Industry Press,2009.12-14,205.
[9]張歐亞,佟明安.基于AUML的面向agent分析方法及其應用[J].計算機工程與應用,2007,43(2):244-248.ZHANG O-ya,DONG Ming-an.AUMLagent-oriented analysismethod and its application[J].Computer Engineering and Applications,2007,43(2):244-248.
[10]陳禹.復雜性研究的新動向—基于主體的建模方法及其啟迪[J].系統(tǒng)辨證學學報,2003,11(1):43-50.CHEN Yu.The new trends of complexity-agent-based modeling method and its inspiration[J].System Syndrome.2003,11(1):43-50.
[11]鄧宏鐘.基于多智能體的整體建模仿真方法及其應用研究[D].長沙:國防科學技術大學,2002.DENG Hong-zhong.Based on themulti-agentoverall modeling and simulation method and its application[D].Changsha:DoctoralDissertation ofNationalDefense University of Science and Technology,2002.
[12]HE C W,HE F,et al.Role of relationship and its meta model for design pattern instantiation.In:LI X,WANG S L,DONG Z Y,etal.AdvancedDataMiningand Applications,1st Int’l Conf.(ADMA 2005).Berlin,Heidelberg:Springer-Verlag,2005.642-653.