顏 軍 李 勇
1.北京控制工程研究所,北京 100190 2.中國空間技術(shù)研究院,北京 100094
多航天器密切配合的航天系統(tǒng),如分布式衛(wèi)星、分離模塊衛(wèi)星系統(tǒng)[1],要及時(shí)協(xié)調(diào)多個(gè)航天器的工作,并處理各種不確定的問題,需要分布協(xié)同的自主運(yùn)行系統(tǒng)。
自主運(yùn)行系統(tǒng)要根據(jù)任務(wù)要求對(duì)系統(tǒng)的任務(wù)進(jìn)行規(guī)劃,產(chǎn)生一系列的活動(dòng)安排,從而完成任務(wù)目標(biāo)。因此要對(duì)活動(dòng)的條件及相互間的關(guān)系、活動(dòng)對(duì)系統(tǒng)自身及環(huán)境的影響進(jìn)行描述,所以模型描述是自主運(yùn)行系統(tǒng)的基礎(chǔ)。
本文提出面向航天應(yīng)用的多Agent自主運(yùn)行系統(tǒng)模型描述方法,通過活動(dòng)和方案兩級(jí)結(jié)構(gòu)的模型,將多Agent之間的協(xié)調(diào)配合與Agent內(nèi)部的規(guī)劃結(jié)合起來,方便實(shí)現(xiàn)局部的方案優(yōu)化。設(shè)計(jì)類似C++語法的描述語言,實(shí)現(xiàn)了對(duì)模型的描述,并已應(yīng)用于多Agent自主運(yùn)行仿真系統(tǒng)。
規(guī)劃問題的模型描述,就是對(duì)規(guī)劃對(duì)象及其變化規(guī)律進(jìn)行描述,使問題得到標(biāo)準(zhǔn)化的抽象,以便使用通用的規(guī)劃方法來求解。由計(jì)算機(jī)來實(shí)現(xiàn)規(guī)劃問題的求解,需要使用描述語言將規(guī)劃知識(shí)轉(zhuǎn)化為知識(shí)文件。計(jì)算機(jī)組織和處理這些知識(shí)和數(shù)據(jù),需要相應(yīng)的數(shù)據(jù)結(jié)構(gòu),這幾部分的關(guān)系見圖1。
圖1 規(guī)劃問題構(gòu)成
求解規(guī)劃問題,一類方法是以集合或謂詞來描述狀態(tài),根據(jù)初始狀態(tài)和目標(biāo)狀態(tài),找出一個(gè)動(dòng)作序列來使對(duì)象狀態(tài)逐次從初始狀態(tài)變化到目標(biāo)狀態(tài)。這是“基于狀態(tài)”的方法,如STRIPS[2]和PDDL[3]。這類方法的優(yōu)點(diǎn)是方便描述前提條件間的“與”、“或”、“選擇”等關(guān)系。此類方法在機(jī)器人規(guī)劃領(lǐng)域使用較多,在航天領(lǐng)域多系統(tǒng)并行且包含時(shí)間、資源等多種約束關(guān)系,較少使用此類方法。另一類方法是以狀態(tài)變量(state variable)在不同時(shí)間區(qū)間上的取值來描述對(duì)象的狀態(tài),狀態(tài)變量的取值是一些離散狀態(tài)值,比如“On”、“Off”、“Idle”等。狀態(tài)、資源都以時(shí)間線(timeline)的形式描述,體現(xiàn)它們隨時(shí)間的變化。動(dòng)作對(duì)狀態(tài)、資源的依賴和影響,動(dòng)作之間的約束關(guān)系通過模型加以描述。這種方法由于動(dòng)作間的約束關(guān)系而稱為“基于約束”的規(guī)劃方法。這種描述模型的例子是ASPEN系統(tǒng)[4]中的AML描述語言[5],其動(dòng)作(活動(dòng))與狀態(tài)及資源間的約束關(guān)系模型見圖2。
圖2 考慮時(shí)間和資源、動(dòng)作間有約束的規(guī)劃問題
RA系統(tǒng)使用的規(guī)劃方法也是基于約束的[6],其特點(diǎn)是不再區(qū)分動(dòng)作和狀態(tài),而用狀態(tài)變量上的權(quán)標(biāo)(token)來描述。一個(gè)時(shí)間區(qū)間(interval)上的狀態(tài)變量的取值,稱為一個(gè)token,token之間及token與資源變量之間存在約束關(guān)系。RA使用參數(shù)來描述Token,比如使用MoveTo(x,y)來表示向坐標(biāo)(x,y)移動(dòng)。參數(shù)的使用提高了描述的效率,同時(shí)也可以通過參數(shù)的運(yùn)算、傳遞和約束來描述更為復(fù)雜的問題。
動(dòng)作、狀態(tài)、時(shí)間、資源和參數(shù)是規(guī)劃問題的要素,其關(guān)系見圖3。動(dòng)作是規(guī)劃問題的核心要素,狀態(tài)描述了對(duì)象,動(dòng)作和狀態(tài)相互作用描述了對(duì)象的演變,動(dòng)作受時(shí)間和資源的約束,動(dòng)作之間有時(shí)間關(guān)系的約束,參數(shù)描述了動(dòng)作的細(xì)節(jié),參數(shù)之間也存在約束關(guān)系。
圖3 規(guī)劃問題要素及其關(guān)系
綜合考察各種規(guī)劃方法及描述方法,并根據(jù)航天領(lǐng)域的需要,歸納了規(guī)劃描述方法的內(nèi)容要點(diǎn)和層次如圖4所示。在這些要點(diǎn)中,分解是一種約束關(guān)系,將一些動(dòng)作組合起來,通過逐級(jí)細(xì)化來完成規(guī)劃。同一任務(wù)可以有幾種不同的分解,可根據(jù)實(shí)時(shí)情況選擇其中一種來進(jìn)行規(guī)劃。過程性運(yùn)算是指數(shù)學(xué)運(yùn)算、函數(shù)運(yùn)算等,可以用于參數(shù)間的運(yùn)算。選擇性約束是約束條件間的“與”、“或”、“選擇”等邏輯關(guān)系。優(yōu)先級(jí)是給動(dòng)作賦予固定的或臨時(shí)的優(yōu)先級(jí),以便在發(fā)生規(guī)劃沖突時(shí)保留優(yōu)先級(jí)高的任務(wù)。性能指標(biāo)用來進(jìn)行規(guī)劃的優(yōu)化,如果任務(wù)的實(shí)現(xiàn)有不同的途徑,可以通過性能指標(biāo)來衡量不同途徑的優(yōu)劣。依據(jù)這些要點(diǎn),可以考察和對(duì)比不同的描述模型,并根據(jù)需要來選擇和設(shè)計(jì)。
圖4 規(guī)劃描述方法的內(nèi)容層次
描述語言使用規(guī)范的語法,提供人機(jī)接口,將規(guī)劃知識(shí)提供給計(jì)算機(jī)。描述語言大體分兩類:一類是以動(dòng)作(action)為核心,主要對(duì)應(yīng) “基于動(dòng)作-狀態(tài)”的方法;一類是以屬性(attribute)或時(shí)間線來組織描述語言,主要對(duì)應(yīng)“基于約束”的方法。就描述語言的語法特征而言,一類是接近人工智能領(lǐng)域的描述語言,如PDDL[7];一類如AML[4],是接近C++這樣的通用編程語言。
用于規(guī)劃的數(shù)據(jù)結(jié)構(gòu)主要有模型數(shù)據(jù)、狀態(tài)數(shù)據(jù)和計(jì)劃數(shù)據(jù),這些數(shù)據(jù)可以獨(dú)立于描述語言和規(guī)劃算法,見圖5。只要將不同語言描述的模型,通過模型處理過程轉(zhuǎn)化為通用的數(shù)據(jù)結(jié)構(gòu)即可為規(guī)劃算法使用。
圖5 規(guī)劃的模型描述與規(guī)劃運(yùn)算的關(guān)系
針對(duì)多航天器系統(tǒng)的應(yīng)用要求,自主運(yùn)行系統(tǒng)基于多Agent,這就要求規(guī)劃模型描述要具備分布系統(tǒng)的特點(diǎn),能夠描述多Agent系統(tǒng)中分布存在的規(guī)劃知識(shí)及其相互間的關(guān)系,使系統(tǒng)可以完成各Agent的自主規(guī)劃和多Agent之間的協(xié)同規(guī)劃。STRIPS和PDDL的后續(xù)版本提出了針對(duì)多Agent的模型描述,但不適于航天領(lǐng)域時(shí)間和資源約束的特點(diǎn)。AML將活動(dòng)與狀態(tài)變量分開描述,約束關(guān)系體現(xiàn)在活動(dòng)之間、活動(dòng)與狀態(tài)變量及資源之間,關(guān)系比較清晰,也比較容易描述活動(dòng)的分解。AML直接地描述了狀態(tài)變量的狀態(tài)值之間的轉(zhuǎn)換關(guān)系,但是狀態(tài)值沒有參數(shù),也就沒有參數(shù)間的約束關(guān)系。RA的DDL描述,token之間的參數(shù)約束關(guān)系表達(dá)能力強(qiáng),但由于直接使用了狀態(tài)變量上token之間的約束關(guān)系,雖然有統(tǒng)一了狀態(tài)與動(dòng)作的優(yōu)點(diǎn),但是狀態(tài)轉(zhuǎn)換關(guān)系不明晰,且需要集中描述狀態(tài)變量的信息,限制了其應(yīng)用于多Agent系統(tǒng)。AML有活動(dòng)的分解,有性能指標(biāo)用于優(yōu)化,并以調(diào)用C語言函數(shù)的方式提供了有限的過程運(yùn)算,DDL沒有這方面的功能。
多Agent自主運(yùn)行系統(tǒng)(multi-agent autonomous running system, MARS)是基于Agent組織的,其中包括負(fù)責(zé)規(guī)劃的Agent(稱為“規(guī)劃Agent”)、負(fù)責(zé)執(zhí)行的Agent(稱為“執(zhí)行Agent”)等多種類型的Agent。自主運(yùn)行系統(tǒng)以多個(gè)協(xié)同工作的規(guī)劃Agent為骨干,Agent由稱為Agent容器程序的軟件組織在一起,Agent容器程序負(fù)責(zé)多個(gè)Agent的管理和通信。
規(guī)劃Agent負(fù)責(zé)對(duì)特定的系統(tǒng)組成部分進(jìn)行規(guī)劃,具有獨(dú)立的規(guī)劃能力,通過多個(gè)規(guī)劃Agent的相互配合實(shí)現(xiàn)系統(tǒng)的自主運(yùn)行。規(guī)劃Agent用若干“屬性”(Attribute)來描述系統(tǒng)的組成部分,屬性又分為“配置屬性”和“資源屬性”,每個(gè)屬性通過時(shí)間線來記錄在不同時(shí)間的取值。配置屬性與執(zhí)行Agent相聯(lián)系,配置屬性在一段時(shí)間區(qū)間的取值稱為“方案” (Scheme),類似RA中狀態(tài)變量上的token,描述了系統(tǒng)特定部分的狀態(tài)或動(dòng)作。方案包含參數(shù),它對(duì)應(yīng)了執(zhí)行Agent中的控制或執(zhí)行方案,規(guī)劃運(yùn)算得到的計(jì)劃,就是由配置屬性上的方案組成。方案由規(guī)劃Agent輸出給執(zhí)行Agent,執(zhí)行Agent負(fù)責(zé)方案的執(zhí)行。執(zhí)行Agent在執(zhí)行方案時(shí)具有局部的閉環(huán)處理措施,可以在一定范圍內(nèi)根據(jù)實(shí)時(shí)的情況進(jìn)行調(diào)整,因而具有自主性和魯棒性。資源屬性的取值一般是連續(xù)或離散的數(shù)值,用來約束對(duì)有限資源的占用。
“活動(dòng)”是規(guī)劃Agent使用的主要的數(shù)據(jù)結(jié)構(gòu),描述了系統(tǒng)需要完成的一項(xiàng)工作?;顒?dòng)覆蓋的范圍比較寬,從系統(tǒng)接受的目標(biāo)任務(wù),到系統(tǒng)逐級(jí)分解給各Agent的子任務(wù)都以活動(dòng)來描述。規(guī)劃Agent之間的交互以活動(dòng)協(xié)商來實(shí)現(xiàn),規(guī)劃Agent內(nèi)部的分解及約束關(guān)系通過活動(dòng)間的約束來描述?;顒?dòng)最終分解為配置屬性上的方案,并要占用資源屬性上一定數(shù)量的資源。規(guī)劃運(yùn)算就是根據(jù)活動(dòng)的約束關(guān)系,對(duì)配置屬性上的方案進(jìn)行安排,并滿足資源約束的求解過程。
系統(tǒng)中使用的變量包括參數(shù)和一般變量,參數(shù)是描述活動(dòng)和方案的,參數(shù)之間有運(yùn)算、傳遞關(guān)系和約束關(guān)系。一般變量包括常規(guī)的數(shù)據(jù)類型,也可以包括一些自定義的結(jié)構(gòu)數(shù)據(jù)類型。系統(tǒng)模型描述的層次和聯(lián)系見圖6。
規(guī)劃Agent之間通過活動(dòng)的協(xié)商來實(shí)現(xiàn)協(xié)同配合,而配置屬性和資源屬性的規(guī)劃在各自的規(guī)劃Agent中完成,以實(shí)現(xiàn)規(guī)劃的分布性和局部的自主性。規(guī)劃Agent不必關(guān)注其他規(guī)劃Agent的屬性細(xì)節(jié),只是根據(jù)其他規(guī)劃Agent的對(duì)活動(dòng)協(xié)商的回復(fù)來調(diào)整和確定計(jì)劃。通過活動(dòng)和方案兩級(jí)數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)規(guī)劃和執(zhí)行的模型描述,規(guī)劃Agent之間使用活動(dòng)來交互,規(guī)劃Agent內(nèi)部解決約束并將活動(dòng)落實(shí)為方案,規(guī)劃Agent與執(zhí)行Agent之間通過方案實(shí)現(xiàn)規(guī)劃輸出。
在同一時(shí)間同一配置屬性上有且只有一種方案。為簡(jiǎn)化方案間的約束關(guān)系,只定義同一配置屬性上的方案間的約束關(guān)系,不同配置屬性上的方案之間的關(guān)系通過其上級(jí)活動(dòng)間的約束來體現(xiàn)。針對(duì)航天系統(tǒng)的實(shí)際情況,配置方案采用類似狀態(tài)轉(zhuǎn)移系統(tǒng)的描述,即同一配置屬性上的方案間有一定的銜接轉(zhuǎn)換關(guān)系,通過約束關(guān)系描述來體現(xiàn),比如方案A可以銜接在方案B或方案C之后,而其后可以銜接方案D或方案E。相互銜接的方案之間,可以定義參數(shù)約束關(guān)系。
每個(gè)規(guī)劃Agent是相同的軟件組件,通過使用不同的知識(shí)描述文件使規(guī)劃Agent具有不同的知識(shí)、角色和功能。每個(gè)規(guī)劃Agent的知識(shí)描述文件中對(duì)與其發(fā)生作用的其他Agent進(jìn)行角色說明,指明規(guī)劃Agent之間的關(guān)系以及角色與實(shí)體的對(duì)應(yīng)關(guān)系、信息傳遞需求及途徑等。使用角色定義可以動(dòng)態(tài)地組織和維護(hù)系統(tǒng),同一個(gè)角色在不同的時(shí)間點(diǎn)可以指向不同的物理系統(tǒng),可以通過更新這種角色的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)多Agent組織的演變。
規(guī)劃Agent的知識(shí)描述文件中對(duì)其可以承擔(dān)的活動(dòng)進(jìn)行描述?;顒?dòng)有若干自身專用參數(shù),同時(shí)還有時(shí)間區(qū)間、優(yōu)先級(jí)等通用參數(shù)?;顒?dòng)的描述中包含該活動(dòng)與其他活動(dòng)的約束關(guān)系,比如前后 (Meets,Met by)、包含(Contains,Contained by)等時(shí)間約束關(guān)系[8],分解關(guān)系等。在活動(dòng)涉及與其他規(guī)劃Agent的協(xié)商時(shí),要指明相關(guān)的Agent角色。例如,有效載荷Agent拍照的活動(dòng),要求姿態(tài)Agent保持目標(biāo)指向,這里保持目標(biāo)指向活動(dòng)包含拍照活動(dòng)是約束關(guān)系,姿態(tài)Agent是相關(guān)的Agent角色。上層的活動(dòng)可以分解為底層的活動(dòng),底層活動(dòng)的描述涉及配置屬性上的方案和占用的資源。
為了對(duì)方案進(jìn)行局部?jī)?yōu)化,定義了方案的能量級(jí)參數(shù)或者說在選用方案時(shí)的偏好值,比如方案A能量級(jí)為2,方案B的能量級(jí)為3,表明方案B的能量消耗更大一些,那么在同樣滿足系統(tǒng)需求的前提下,優(yōu)先選擇方案A。當(dāng)沒有明確的需求時(shí),配置屬性就執(zhí)行缺省方案,缺省方案能量級(jí)最低,定義為1。
在活動(dòng)和方案的描述中,有一些參數(shù)的運(yùn)算,如時(shí)間長(zhǎng)度和資源需求量的計(jì)算,是和具體的活動(dòng)或方案的參數(shù)相關(guān)的。所以活動(dòng)和方案的說明中包含一些過程性運(yùn)算,復(fù)雜的運(yùn)算還可以使用專門的運(yùn)算Agent,通過Agent之間的函數(shù)調(diào)用來實(shí)現(xiàn)。
規(guī)劃活動(dòng)中的選擇性約束,通過約束項(xiàng)的分組來實(shí)現(xiàn),同組中的約束項(xiàng)是可選關(guān)系,包括“3選2”這樣的多選,不同組之間是“與”的關(guān)系。當(dāng)一種活動(dòng)不可行時(shí),可以根據(jù)分組約束采用其他可選的活動(dòng)來實(shí)現(xiàn)。
多Agent自主運(yùn)行系統(tǒng)的描述方法中的活動(dòng)與AML中的活動(dòng)的區(qū)別是,這里的活動(dòng)不僅在Agent內(nèi)部進(jìn)行分解,更重要的是承擔(dān)Agent之間的協(xié)調(diào)和約束的功能。配置方案的設(shè)計(jì)參考并擴(kuò)展了RA系統(tǒng)的token的概念,并且為適應(yīng)航天應(yīng)用使用了類似狀態(tài)變換關(guān)系的方案間銜接約束。由于結(jié)合了RA與ASPEN的模型描述方法并改進(jìn)了規(guī)劃分解、過程性運(yùn)算和優(yōu)化指標(biāo),增加了選擇性約束和多Agent組織關(guān)系描述,所以自主運(yùn)行系統(tǒng)描述方法可以滿足多Agent結(jié)構(gòu)下協(xié)同規(guī)劃及工作的需求。
這里定義的描述語言稱為Agent知識(shí)描述語言(Agent Knowledge Description Language, AKDL),是通用的描述語言,主要應(yīng)用于描述規(guī)劃Agent的知識(shí),其他類型的Agent也可以用它來描述配置。每個(gè)規(guī)劃Agent有一個(gè)文本形式的知識(shí)文件,由知識(shí)處理模塊處理成為規(guī)劃Agent的知識(shí)存儲(chǔ)在知識(shí)庫中。
AKDL使用接近C++語言的語法及基本符號(hào),使用簡(jiǎn)單數(shù)據(jù)類型、類和預(yù)定義函數(shù)來描述規(guī)劃模型。使用與C++語言相同的表達(dá)式,方便定義一些過程性的運(yùn)算和函數(shù)調(diào)用。簡(jiǎn)單數(shù)據(jù)類型,包括浮點(diǎn)數(shù)float、整型數(shù)int及其數(shù)組等,用來定義參數(shù)和變量。
預(yù)先定義的類,主要有以下幾種:CThisAg是Agent說明,CCoopAg是相關(guān)Agent角色定義,CConfig是配置屬性類、CResource是資源屬性類、CActivity是活動(dòng)類、CScheme是方案類。類的描述比較復(fù)雜,可以用(param1,param2,…)來定義參數(shù),對(duì)于活動(dòng)和方案則在{…}中包含參數(shù)設(shè)置、約束關(guān)系描述等豐富的內(nèi)容。如CScheme cfAttd::scLock(float fAngle[3])定義了一個(gè)配置屬性cfAttd上的方案scLock,其參數(shù)是一個(gè)包含3個(gè)浮點(diǎn)數(shù)的數(shù)組。
使用預(yù)定義函數(shù)(或者稱為關(guān)鍵字函數(shù))來實(shí)現(xiàn)一些特定的功能,類似于其他知識(shí)描述語言的關(guān)鍵字(保留字)。對(duì)約束關(guān)系,協(xié)商行為,以及Agent組織、角色、交互的描述等都采用了預(yù)定義函數(shù)的方式?;顒?dòng)、方案的實(shí)例也使用帶參數(shù)的函數(shù)的方式,此外活動(dòng)、方案或函數(shù)的實(shí)例也可以作為預(yù)定義函數(shù)中的參數(shù)。在語句fpFnEx(agFunc,fnFunc02 (&iDura, fAngleFr,fAngleTo))中,fpFnEx是預(yù)定義函數(shù),表示調(diào)用運(yùn)算Agent的函數(shù),參數(shù)agFunc是運(yùn)算Agent的名稱,fnFunc02(&iDura,fAngleFr, fAngleTo)是含參數(shù)的函數(shù)調(diào)用實(shí)例,在這里整體作為一個(gè)參數(shù)項(xiàng)。
規(guī)劃Agent的知識(shí)文件,主要由3部分構(gòu)成,分別是 Agent說明、活動(dòng)說明、方案說明,其具體內(nèi)容見表1。
舉一個(gè)應(yīng)用的例子,系統(tǒng)是由4顆衛(wèi)星組成的編隊(duì),每顆衛(wèi)星和地面站在軟件上對(duì)應(yīng)一個(gè)Agent容器程序,每個(gè)容器程序包含若干Agent。衛(wèi)星1的容器程序中包含AgSatsPlan,AgSat1Plan,AgSat1Attd,AgSat1Orbt,AgSat1Imag,分別是編隊(duì)規(guī)劃、衛(wèi)星1的規(guī)劃,衛(wèi)星1的姿態(tài)分系統(tǒng)、軌道分系統(tǒng)、拍照分系統(tǒng)的規(guī)劃Agent,部分知識(shí)文件內(nèi)容見表1中的舉例。
在表1的Agent說明中,為AgSat1Plan中定義了4個(gè)相關(guān)Agent角色,定義了電源和存儲(chǔ)器2個(gè)資源屬性。在活動(dòng)說明中,拍照活動(dòng)acGetImg涉及3個(gè)Agent的配合,并占用電源和存儲(chǔ)器的資源。在acGetImg中包含參數(shù)fAngle,iSet1,iSet2的傳遞、變量fUsedMem的聲明及過程性運(yùn)算。
預(yù)定義函數(shù)fpParm用于為活動(dòng)或方案的參數(shù)賦值;fpResc指明資源消耗;fpBehv用于指明活動(dòng)之間或活動(dòng)與方案之間的約束關(guān)系,可以定義選擇性的約束關(guān)系;fpSelf用于指明方案間的銜接約束。
在方案說明中,為每種方案定義能量級(jí)參數(shù)及配置屬性的缺省方案,如fpParm(Cost,2)定義能量級(jí)別為2,而fpDeft(cfAttd, scLock(0.0,0.0,0.0))定義了配置屬性cfAttd的缺省方案是scLock(0.0,0.0,0.0)。
表1 規(guī)劃Agent知識(shí)文件的構(gòu)成
根據(jù)實(shí)際需要,AKDL對(duì)參數(shù)及其關(guān)系的描述使用了一些特殊方法?;顒?dòng)或方案中的常用參數(shù),將作為固有參數(shù),比如iDura表示方案的時(shí)長(zhǎng),在運(yùn)算中直接使用。方案中不能單獨(dú)確定,需要與相鄰的方案共同確定的參數(shù)用“?”來代表,比如fpSelf(MetBy, scChange(?, ?, ?, fAngle))表示轉(zhuǎn)向的起始角度要由前一個(gè)方案來決定。參數(shù)設(shè)置中不加約束的項(xiàng)用“*”表示,如在fpParm(PmTm,1000, 1000,*)中表示方案的時(shí)間長(zhǎng)度沒有上限。
通過應(yīng)用的例子可以看出AKDL可以對(duì)各種規(guī)劃知識(shí),包括描述性的參數(shù)設(shè)置及交互、約束關(guān)系、過程性的運(yùn)算及函數(shù)調(diào)用進(jìn)行方便靈活的描述。
以文中的描述方法為基礎(chǔ),已經(jīng)構(gòu)建了多Agent的自主運(yùn)行仿真系統(tǒng)AgSimu,實(shí)現(xiàn)了知識(shí)文件的處理,對(duì)多個(gè)Agent的角色、相互關(guān)系、規(guī)劃知識(shí)進(jìn)行了描述,對(duì)多個(gè)航天器協(xié)同配合場(chǎng)景進(jìn)行了仿真。體現(xiàn)了該模型描述方法的通用性與靈活性,可以方便地使用通用Agent組件快速建立起多Agent組織,展開仿真工作。
多Agent自主運(yùn)行系統(tǒng)的模型描述,是多Agent自主運(yùn)行系統(tǒng)的基礎(chǔ)。文中的描述方法采用配置屬性上的方案來描述系統(tǒng)的設(shè)置狀態(tài),在參數(shù)傳遞、過程性運(yùn)算、方案間銜接約束關(guān)系、方案的能量參數(shù)定義等方面功能豐富而靈活。使用活動(dòng)-方案兩級(jí)的模型描述,多Agent之間通過活動(dòng)進(jìn)行交互和協(xié)商,在Agent內(nèi)部通過安排方案和資源來落實(shí)活動(dòng),劃分了Agent之間和Agent內(nèi)部的規(guī)劃職責(zé),提高了規(guī)劃Agent的自主性,減少了Agent之間的交互代價(jià)。
描述語言采用類似C++語法,可以通過擴(kuò)展預(yù)定義類和函數(shù)來擴(kuò)展語言的功能,兼具描述性和過程性的語言描述能力,便于定義過程性的運(yùn)算。描述語言增加了針對(duì)多Agent系統(tǒng)組織關(guān)系及交互信息的描述以適合多Agent系統(tǒng)的組織和配置。
[1] Lobosco D M, Cameron G E, Golding R A, et al.Pleiades Fractionated Space System Architecture and the Future of National Security Space[C].AIAA Space Conference & Exposition, San Diego, California, 2008.
[2] Nilsson N J, Fikes R E.STRIPS:A New Approach to the Application of Theorem Proving to Problem Solving [J].Artificial Intelligence, 1971,2(3): 189-208.
[3] Maria F, Derek L.PDDL2.1:An Extension to PDDL for Expressing Temporal Planning Domains[J].Journal of Artificial Intelligence Research,2003,(20):61-124.
[4] Fukunaga A, Rabideau G, Chien S, Yan D.ASPEN:A Framework for Automated Planning and Scheduling of Spacecraft Control and Operations [C].International Symposium on Artificial Intelligence, Robotics and Automation in Space (i-SAIRAS), Tokyo, Japan, 1997.
[5] Smith B, Sherwood R, Govindjee A, et al.Representing Spacecraft Mission Planning Knowledge in ASPEN[C].Artificial Intelligence Planning Systems Workshop on Knowledge Acquisition, Pittsburgh, PA, 1998.
[6] Muscettola N, Nayak P P, Pell B, Williams B C.Remote Agent: to Boldly Go Where No AI System Has Gone Before [J].Artificial Intelligence, 1998,(103):5-47.
[7] Ghallab M, Howe A, Knoblock C, et al.PDDL -The Planning Domain Definition Language Version 1.2[C].Artificial Intelligence Planning and Scheduling Conference(AIPS’98), Pittsburgh,Pennsylvania, 1998.
[8] Allen J F, Koomen J A.Planning Using a Temporal World Model[C].The 8thInternational Joint Conference on Artificial Intelligence,Karlsruhe, Germany,1983.