顏 軍 李 勇
1.北京控制工程研究所,北京 100190 2.中國空間技術(shù)研究院,北京 100094
隨著航天任務(wù)復(fù)雜度的提高,航天器需要自主規(guī)劃并執(zhí)行命令,即航天器接受地面的高級任務(wù)目標(biāo),而在航天器的處理器上,根據(jù)當(dāng)時的狀態(tài)自主完成具體的目標(biāo)-任務(wù)分解及時間、資源調(diào)度,并在執(zhí)行過程中,不斷根據(jù)實施的情況和環(huán)境的變化做出合理的調(diào)整,最終完成目標(biāo)任務(wù)。對于多個航天器配合的任務(wù)尤其需要自主運行能力。美國國防高級研究計劃局提出了“F6”(Future, Fast, Flexible, Fractionated, Free-Flying)分離模塊航天器概念項目[1],其目的是將功能結(jié)構(gòu)復(fù)雜的大衛(wèi)星分解為若干小的衛(wèi)星,每個小衛(wèi)星是一個分離的模塊。小衛(wèi)星具有基礎(chǔ)的平臺功能和某些特定的資源和功能,這些小衛(wèi)星在一個小范圍內(nèi)(比如幾百米)自由飛行,通過無線通信交換信息,協(xié)同工作。這就需要適應(yīng)分離模塊衛(wèi)星的分布協(xié)同的自主運行系統(tǒng),而對于多Agent系統(tǒng)具有分布、并行、自主、交互等特點,適合于構(gòu)建這樣的系統(tǒng)。
Agent是一個計算實體,擁有一定的計算資源,可存在于同一處理器中,也可分布于系統(tǒng)各組成部分的不同計算處理器中,多個Agent之間存在一定拓撲結(jié)構(gòu)形式的組織,Agent之間可以通過消息進行通信,通過Agent的協(xié)調(diào)合作可以完成共同的任務(wù)目標(biāo)。
Agent的中文譯法有意譯“主體”、“智能體”和音譯“艾真體”等。本文認為廣義的Agent可譯為“意主體”,和Agent發(fā)音比較接近,而且具有意愿、意圖、自主、主動等方面符合Agent特性的含義;而狹義的具有智能的Agent,可譯為“意智體”,以凸顯智能的含義。
多Agent技術(shù)已經(jīng)在無人飛行器、潛水器、航天器等多個領(lǐng)域都被廣泛應(yīng)用來實現(xiàn)多個分布系統(tǒng)的實時交互配合。
RAX[2]是美國NASA開發(fā)的遠程自主運行系統(tǒng),以RA(Remote Agent)[3]的形式,實現(xiàn)了自主運行,在DS-1上進行了數(shù)日的實驗。RAX的系統(tǒng)結(jié)構(gòu)分為規(guī)劃層、執(zhí)行層和功能層,如圖1所示。功能層是傳統(tǒng)的航天器控制系統(tǒng)。規(guī)劃層的任務(wù)管理器負責(zé)管理一個長期的任務(wù)列表,將當(dāng)前規(guī)劃時段的任務(wù)交給規(guī)劃調(diào)度器進行批處理方式的規(guī)劃;規(guī)劃專家根據(jù)執(zhí)行器的執(zhí)行情況和需求產(chǎn)生新的任務(wù),并且為規(guī)劃調(diào)度器提供一些專業(yè)問題的解答。執(zhí)行層的執(zhí)行器執(zhí)行計劃,并反饋當(dāng)前系統(tǒng)狀態(tài);模式識別與恢復(fù)基于模型來識別當(dāng)前系統(tǒng)的狀態(tài),如果發(fā)生偏差,則產(chǎn)生恢復(fù)指令交給執(zhí)行器執(zhí)行。RA系統(tǒng)的結(jié)構(gòu)形式是具有規(guī)劃調(diào)度能力的自主運行系統(tǒng)的基本結(jié)構(gòu)形式。
圖1 RAX系統(tǒng)組成結(jié)構(gòu)
ASPEN[4]/CASPER[5]是JPL開發(fā)的規(guī)劃系統(tǒng),在EO-1衛(wèi)星飛行中進行了自主運行實驗。CASPER使用的是以反復(fù)修補(Iterative Repair)為特色的連續(xù)規(guī)劃,系統(tǒng)中規(guī)劃、執(zhí)行、狀態(tài)估計模塊交替運行,同步模塊協(xié)調(diào)幾個模塊的數(shù)據(jù)同步和運行次序。只要提供當(dāng)前狀態(tài)集、當(dāng)前目標(biāo)集和當(dāng)前計劃,規(guī)劃工作可以從任意時刻開始,并以一個小的時間間隔(秒級)不斷更新。規(guī)劃的同時還可以通過不同的偏好指標(biāo)來不斷改進計劃的性能。
IETXT-EXEC[6]的特色在于每個執(zhí)行周期內(nèi)的感知-規(guī)劃-動作的精確控制和跨多個周期的慎思規(guī)劃,為同時解決實時響應(yīng)與慎思規(guī)劃提供了十分有益的方法。
CLARAty[7]系統(tǒng)主要特色是通過提供一個標(biāo)準(zhǔn)而豐富的功能層,使底層不同的硬件和上層的規(guī)劃系統(tǒng)配合起來工作。CLARAty系統(tǒng)的觀點是,系統(tǒng)的粒度不是簡單的隨功能-執(zhí)行-規(guī)劃這樣的層次上升而加大,功能層既提供了底層的接口,也提供了可以完成復(fù)雜工作的高級接口,因而規(guī)劃也可以深入到更為細節(jié)的層次。
前面介紹的自主運行系統(tǒng),RA系統(tǒng)引入了Agent的概念,但還沒有使用多Agent的方法。多Agent系統(tǒng)的引入,是從系統(tǒng)的功能模塊開始的,比如OA系統(tǒng)[8-9]中的系統(tǒng)等。這種多Agent系統(tǒng),一般是對特定的應(yīng)用場合,將系統(tǒng)分解為若干個相互配合工作的模塊Agent,使模塊增強了自主性和交互性,并對這些Agent進行管理(比如OA系統(tǒng)),使這些Agent的組織具有靈活性。這些系統(tǒng)有一定的規(guī)劃和優(yōu)化能力,但并未使用搜索、調(diào)度等規(guī)劃方法。
從解決時間和資源約束的角度出發(fā),多Agent的自主運行系統(tǒng),是依靠多個Agent的交互配合,完成復(fù)雜分布系統(tǒng)的規(guī)劃調(diào)度問題的系統(tǒng)。這樣的系統(tǒng)有IDEA[10],IDEA由RA發(fā)展而來,將系統(tǒng)分解為多個相互配合的Agent,每個Agent具有相同的結(jié)構(gòu)、描述方法和運行方式,從而簡化了Agent的設(shè)計。系統(tǒng)結(jié)構(gòu)見圖2所示,上層的Agent稱為控制Agent,下層的Agent稱為受控Agent。Agent的目標(biāo)寄存器接收上級發(fā)來的目標(biāo),在本級進行分解和規(guī)劃,產(chǎn)生下一級的任務(wù),寫入下級的目標(biāo)寄存器,成為下級系統(tǒng)的目標(biāo)。系統(tǒng)可以有多層Agent結(jié)構(gòu),進行逐級分解。這種結(jié)構(gòu)形式的多Agent系統(tǒng)的組織關(guān)系和結(jié)構(gòu)還是相對簡單和固定。
圖2 IDEA系統(tǒng)組成結(jié)構(gòu)
針對多航天器系統(tǒng)的應(yīng)用場景,其他一些分層結(jié)構(gòu)的多Agent系統(tǒng)出現(xiàn)了,如文獻[11-12]等,它們大多采用了編隊級規(guī)劃Agent,單星級規(guī)劃層Agent,衛(wèi)星子系統(tǒng)級Agent三級來實現(xiàn)。編隊級規(guī)劃Agent負責(zé)編隊任務(wù)分解,單星級自主層對衛(wèi)星各子系統(tǒng)的工作進行分配協(xié)調(diào)并進行故障處理,而子系統(tǒng)級Agent主要完成執(zhí)行的功能并做出反饋。
對于多航天器系統(tǒng),特別是分離模塊航天器的應(yīng)用,需要多Agent系統(tǒng)具有靈活的組織形式,可以在使用的過程中不斷進行組織的演變和擴展,這種演變既包括衛(wèi)星內(nèi)部Agent組織的更新,也包括衛(wèi)星間組織的增減和更替。由于分離模塊航天器個體數(shù)量多,要求各構(gòu)成系統(tǒng)的Agent具有良好的通用性,以方便快速開發(fā)和構(gòu)建各分離模塊的系統(tǒng)。
針對編隊衛(wèi)星、分離模塊衛(wèi)星系統(tǒng)分散而又協(xié)同工作的特點,設(shè)計了基于Agent的自主運行系統(tǒng)(Agent-Based Autonomous Running System, ABARS) 。系統(tǒng)結(jié)構(gòu)采用了基于多Agent組織的分層結(jié)構(gòu),如圖3所示。
圖3 基于多Agent的自主規(guī)劃運行系統(tǒng)層次結(jié)構(gòu)
真實的系統(tǒng)由多個“個體”組成,個體是物理上的實體,包括硬件和軟件,比如1顆衛(wèi)星、1個機器人。個體中的一部分軟件被稱為“Agent容器”, 它包含和使用多種類型的Agent,負責(zé)多Agent系統(tǒng)的組織管理。其中具有規(guī)劃功能的Agent稱為“規(guī)劃Agent”、其他的類型還有“專家Agent”、“運算Agent”、“執(zhí)行Agent”等。
系統(tǒng)的一個執(zhí)行子系統(tǒng)被描述為一個“配置屬性”,執(zhí)行子系統(tǒng)特定的取值被稱為“配置方案”,簡稱“方案”。方案還可以配有參數(shù),類似RA中整合了動作與狀態(tài)的“token”概念,比如“衛(wèi)星的姿態(tài)指向”是一個配置屬性,“指向鎖定”是一種方案,而“在t1時刻到t2時刻指向鎖定g方向”是該方案的一個配有參數(shù)的具體實例。與之類似,系統(tǒng)的資源描述為“資源屬性”,資源屬性的取值一般就是數(shù)值。
系統(tǒng)上層是規(guī)劃層,其主要組成部分是具有一定組織結(jié)構(gòu)的多個規(guī)劃Agent。由面向航天應(yīng)用的領(lǐng)域特點決定了這里使用的是解決時間和資源約束的規(guī)劃Agent。這些規(guī)劃Agent具有相同結(jié)構(gòu)和基礎(chǔ)功能,它們的不同在于具有不同的領(lǐng)域知識,領(lǐng)域知識是通過知識描述文本來提供的,該文本使用統(tǒng)一的規(guī)劃知識描述語言。通過將一個標(biāo)準(zhǔn)的規(guī)劃Agent和一個規(guī)劃知識文件相結(jié)合,可以使各規(guī)劃Agent具有特定的角色和能力來完成系統(tǒng)中部分的規(guī)劃職能。規(guī)劃Agent的通用性,可以方便系統(tǒng)的構(gòu)建和驗證。
規(guī)劃Agent的輸入是任務(wù),任務(wù)由系統(tǒng)用戶或其他規(guī)劃Agent以消息數(shù)據(jù)包的形式發(fā)送而來,其中包含時間要求和任務(wù)參數(shù)。規(guī)劃Agent根據(jù)自身的領(lǐng)域知識,對任務(wù)進行分解和規(guī)劃調(diào)度,對時間和資源進行安排。多個規(guī)劃Agent形成具有一定層次關(guān)系的組織,上級規(guī)劃Agent分解輸出的子任務(wù)成為下級規(guī)劃Agent的任務(wù)。規(guī)劃Agent的輸出計劃方案,交給執(zhí)行Agent來執(zhí)行。規(guī)劃Agent之間可以是命令關(guān)系,也可以是協(xié)商關(guān)系,下級根據(jù)資源及狀態(tài)情況對上級的任務(wù)安排給出反饋,從而實現(xiàn)協(xié)同的規(guī)劃。相比IDEA中Agent之間的關(guān)系,這里規(guī)劃Agent間的關(guān)系更能體現(xiàn)Agent自主與協(xié)同相結(jié)合的特點,Agent之間的關(guān)系也更加靈活。
規(guī)劃Agent具有限定的定義和通用的功能,為了解決特定的規(guī)劃問題,可以使用專家Agent。一類專家Agent使用特有的知識描述方法和搜索引擎,用以解決特定領(lǐng)域的規(guī)劃問題,比如路徑規(guī)劃問題,科學(xué)觀測的規(guī)劃問題,航天器自身維護的規(guī)劃問題等。RAX中的規(guī)劃專家就可以歸入專家Agent的范疇。另一類專家Agent可以根據(jù)當(dāng)前系統(tǒng)的狀態(tài)和獲取的數(shù)據(jù)自主的產(chǎn)生新目標(biāo),交給規(guī)劃Agent來進行規(guī)劃,比如ASE中根據(jù)觀測的結(jié)果對下一步的觀測進行規(guī)劃。系統(tǒng)中高層級的狀態(tài)診斷與恢復(fù)也可以通過專家Agent來實現(xiàn),根據(jù)當(dāng)前所知的狀態(tài)信息對可能的故障,依據(jù)知識模型,使用搜索推理方法,進行分析判斷,給出恢復(fù)的任務(wù)建議。專家Agent輸入是必要的系統(tǒng)的狀態(tài)信息,還可能有高級的需專業(yè)規(guī)劃的目標(biāo),輸出是給規(guī)劃Agent的任務(wù)目標(biāo)。
規(guī)劃Agent的運算方式主要是搜索引擎使用領(lǐng)域知識進行搜索,而規(guī)劃Agent需要專業(yè)的計算能力剝離出來,由運算Agent來實現(xiàn)。運算Agent提供運算功能接口給規(guī)劃Agent調(diào)用,調(diào)用采用統(tǒng)一的接口,具體的調(diào)用參數(shù)和返回參數(shù)在規(guī)劃Agent的知識描述文本中進行說明。運算Agent與規(guī)劃Agent是同步的,即規(guī)劃Agent發(fā)出計算需求給運算Agent,等待運算Agent返回的計算結(jié)果再繼續(xù)下面的工作。相比CASPER系統(tǒng)中直接調(diào)用C語言程序模塊的方式,這里的運算Agent易于組織和更新。
通過這3類Agent的設(shè)計,可以將基于時間和資源的規(guī)劃、專業(yè)領(lǐng)域的規(guī)劃,以及專業(yè)的運算和優(yōu)化這3個部分進行相對獨立的開發(fā),以規(guī)劃Agent的組織為主要架構(gòu),另外2類Agent通過標(biāo)準(zhǔn)的Agent交互接口,根據(jù)需要配合在一起使用,就可以方便快速地建立起特定的規(guī)劃系統(tǒng)了。
規(guī)劃Agent形成的計劃提供給執(zhí)行層,執(zhí)行層由執(zhí)行Agent構(gòu)建,執(zhí)行 Agent是規(guī)劃Agent和功能層間的接口,使規(guī)劃Agent的輸出實現(xiàn)統(tǒng)一。計劃就是各配置屬性在特定時段的方案集合。方案是預(yù)先制定的,可以理解為“控制方案”或“執(zhí)行預(yù)案”,可能配有若干參數(shù),在執(zhí)行層有這些方案的執(zhí)行方法,包括出現(xiàn)一些局部問題時的處理方法。執(zhí)行層根據(jù)方案調(diào)用功能層的功能,形成閉環(huán)反饋,使系統(tǒng)按照方案來運行,出現(xiàn)偏差及時進行恢復(fù)。所以執(zhí)行層可以在相當(dāng)程度上具有魯棒性,當(dāng)出現(xiàn)無法克服的問題時,向上級反饋故障,由規(guī)劃層進行進一步的故障診斷及進行新的規(guī)劃。
功能層為執(zhí)行層提供底層硬件功能接口和數(shù)據(jù)反饋。功能層可以提供基礎(chǔ)的閉環(huán)控制,也可以提供豐富而復(fù)雜的功能,甚至跨個體的協(xié)作功能,就如CLARAty功能層設(shè)計中實現(xiàn)的那樣。當(dāng)功能層的功能強大的時候,執(zhí)行層甚至規(guī)劃層可以相對弱化。但功能層受其過程性代碼的限制,難于處理多種因素交織的復(fù)雜情況,且一般只能進行局部優(yōu)化。
執(zhí)行Agent將功能層反饋的數(shù)據(jù)進行處理,形成配置屬性、資源屬性以及一些參數(shù)的當(dāng)前狀態(tài)或數(shù)值,根據(jù)需要將這些以消息數(shù)據(jù)包發(fā)送給指定的規(guī)劃Agent、專家Agent和運算Agent。
還有一類“通信Agent”,圖3中沒有標(biāo)示,負責(zé)實現(xiàn)跨個體(例如多航天系統(tǒng)中的單個航天器)的通信,為多Agent組織提供標(biāo)準(zhǔn)的通信接口。
分離模塊衛(wèi)星,可以采用多次發(fā)射的方法逐次構(gòu)成衛(wèi)星系統(tǒng),并可以根據(jù)需要增加、替換、刪除系統(tǒng)中的分離模塊,所以要求系統(tǒng)結(jié)構(gòu)要可以靈活的進行組織變化。多Agent系統(tǒng)具有這樣的能力,這里使用了Agent容器和Agent兩層結(jié)構(gòu)來實現(xiàn)這種組織。
容器(Container)這個概念是從基于組件的軟件開發(fā)方法引入的,包含和使用組件模塊的程序稱為容器。包含和使用Agent這種特定軟件模塊的容器程序就是Agent容器。Agent容器之間通過個體間的有線或無線的物理網(wǎng)絡(luò)相連接,每個Agent容器有唯一的字符串ID和物理網(wǎng)絡(luò)地址,容器之間建立樹形的網(wǎng)絡(luò)廣播路徑。每個Agent容器加入系統(tǒng)時,指定一個根節(jié)點Agent容器而加入網(wǎng)絡(luò),同時廣播自己的ID、類型、角色和物理地址等屬性給系統(tǒng)中的其他Agent容器,每個Agent容器維護一個其他Agent容器屬性的列表,同時實現(xiàn)與其他Agent容器的通信。
Agent容器是Agent組織的基礎(chǔ)環(huán)節(jié),它提供Agent的配置管理,通過Agent列表實現(xiàn)添加、刪除、升級等一系列基礎(chǔ)而靈活的功能。每個Agent可以有其配置文件、知識文件,Agent容器記錄其中每個Agent的相關(guān)文件,記錄各Agent的狀態(tài)和信息,Agent容器可以將這些Agent的信息作為Agent容器的配置文件加以保存和恢復(fù)。
Agent容器中的Agent有唯一的字符串ID,通信時通過Agent容器和Agent兩級ID相結(jié)合來唯一確定一個Agent,這樣可以方便Agent的ID命名和系統(tǒng)的組織。Agent之間通過Agent容器實現(xiàn)交互,如果目標(biāo)是內(nèi)部的Agent,則Agent容器直接將消息發(fā)送給目標(biāo)Agent,如果目標(biāo)是其他Agent容器中的Agent,則Agent容器找到目標(biāo)Agent容器的地址將消息發(fā)送過去,而接收方Agent容器再將消息轉(zhuǎn)交給目標(biāo)Agent。
通過Agent容器的配置文件以及Agent的配置文件和知識文件,使Agent容器和Agent具有通用性和靈活性。可以在規(guī)劃Agent的知識文件中進行角色定義,實際使用時,角色與真實的Agent建立對應(yīng)關(guān)系,在類似分離模塊衛(wèi)星這樣的應(yīng)用中,當(dāng)真實系統(tǒng)的構(gòu)成發(fā)生了變化時,只要調(diào)整角色與真實 Agent之間的對應(yīng)關(guān)系即可適應(yīng)這種變化。
對于一個真實的系統(tǒng),規(guī)劃Agent組織的構(gòu)成,可以采用編隊級、星級、分系統(tǒng)級這樣層次的方式,也可以根據(jù)系統(tǒng)的計算資源的分布和系統(tǒng)模塊的劃分來靈活進行安排。運算Agent要根據(jù)其所需要的數(shù)據(jù)信息、運算能力進行劃分,應(yīng)與調(diào)用它的規(guī)劃Agent在同一計算處理器中,以保證調(diào)用的及時返回。執(zhí)行Agent的劃分要考慮與實際功能層的接口,執(zhí)行Agent與規(guī)劃Agent可以不是一對一的關(guān)系。一般只有規(guī)劃Agent與其他Agent容器中的規(guī)劃 Agent發(fā)生交互,其他類型的Agent沒有跨 Agent容器的交互。
在其他的多Agent系統(tǒng)中,與Agent容器具有類似功能的有“管理Agent”和OA系統(tǒng)中的“郵局(Post Office)”。Agent容器不是Agent社會中的一個角色,而是提供Agent生存和交互的支撐環(huán)境,包含和管理作為組件的 Agent,所以不同于管理Agent。Agent容器包含了OA中的郵局負責(zé)的Agent注冊和通信的功能,還管理Agent的配置屬性,可以根據(jù)配置文件方便的建立和恢復(fù)Agent容器中的Agent組織,這一點在仿真系統(tǒng)中表現(xiàn)得尤為明顯。
規(guī)劃Agent內(nèi)部的結(jié)構(gòu)見圖4,主要由知識處理、狀態(tài)處理、規(guī)劃、規(guī)劃輸出、交互協(xié)調(diào)、進程控制幾個部分組成,另外還包含知識庫、狀態(tài)庫、計劃庫等數(shù)據(jù)庫。系統(tǒng)在Agent之間使用統(tǒng)一的接口界面,由執(zhí)行Agent來處理具體的功能調(diào)用接口。
圖4 規(guī)劃Agent的內(nèi)部結(jié)構(gòu)
知識處理是將知識描述文本進行處理,轉(zhuǎn)化為知識庫中的知識數(shù)據(jù),一般只在初始階段或知識進行更新時才使用,角色定義及其變化也在知識庫中進行保存。狀態(tài)處理是基于執(zhí)行層提供的狀態(tài)信息處理和更新狀態(tài)庫,狀態(tài)信息也可以在規(guī)劃Agent之間進行傳播。狀態(tài)更新可能會發(fā)現(xiàn)系統(tǒng)當(dāng)前狀態(tài)與計劃不相符合,這就需要規(guī)劃Agent調(diào)整計劃,必要時還要與其他規(guī)劃Agent進行協(xié)商。
規(guī)劃是依據(jù)知識庫中的規(guī)劃知識對任務(wù)進行目標(biāo)分解,解決時間和資源約束,并考慮當(dāng)前狀態(tài),形成計劃。規(guī)劃的過程中還要根據(jù)需要與其他規(guī)劃Agent進行協(xié)商,使用運算Agent進行專業(yè)的計算和優(yōu)化。規(guī)劃的中間結(jié)果和形成的計劃都由計劃庫存儲和管理。規(guī)劃輸出是在每個規(guī)劃周期內(nèi)向執(zhí)行Agent提供計劃方案,類似IDEA的Plan Runner或IXTET-EXEC的Temporal Executive。
交互協(xié)調(diào)是負責(zé)Agent之間進行任務(wù)、協(xié)商等交互活動的信息和進程的管理,比如管理任務(wù)隊列、協(xié)商隊列,協(xié)商的回復(fù)處理等。進程控制負責(zé)狀態(tài)處理、規(guī)劃、協(xié)商、規(guī)劃輸出這幾個進程之間的協(xié)調(diào)運行。
從多Agent自主運行系統(tǒng)的設(shè)計中可以看出,通過Agent容器的組織方式以及對Agent的管理滿足了分離模塊系統(tǒng)的靈活組織和交互的需求。不同類型的Agent以及知識文件、配置文件的使用滿足了通用性強、易于構(gòu)建的需求。系統(tǒng)中的個體對應(yīng)一顆分離模塊衛(wèi)星,分離模塊衛(wèi)星的內(nèi)部系統(tǒng)對應(yīng)多個Agent,通過多Agent組織來完成多個分離模塊衛(wèi)星的協(xié)同工作。
分離模塊航天器系統(tǒng)的關(guān)鍵技術(shù)涉及很多方面,比如小型通用部件技術(shù)、抗干擾的無線通信技術(shù)、多星的導(dǎo)航技術(shù)等,這里討論構(gòu)造其自主運行系統(tǒng)所涉及的關(guān)鍵技術(shù)內(nèi)容,可以分為結(jié)構(gòu)描述、算法引擎、組織協(xié)調(diào)幾個層面,如表1所示。
表1 自主運行系統(tǒng)的技術(shù)構(gòu)成
要設(shè)計自主運行系統(tǒng),以上各方面的技術(shù)要素之間相互影響相互配合,各部分技術(shù)實現(xiàn)方案相互關(guān)聯(lián),要綜合考慮才能制定合理的系統(tǒng)方案。其中系統(tǒng)結(jié)構(gòu)和模型描述是重要基礎(chǔ),而規(guī)劃、協(xié)商和調(diào)整相互交織的進程協(xié)調(diào)是難點。
此外還要建立可以針對不同場景進行構(gòu)建和組織的仿真系統(tǒng),實現(xiàn)Agent系統(tǒng)自主運行系統(tǒng)的特色和功能,進行實驗和驗證,為實際應(yīng)用奠定堅實的基礎(chǔ)。
目前已經(jīng)在Windows操作系統(tǒng)下構(gòu)建了一個多Agent仿真系統(tǒng)AgSimu。Agent容器由一個單文檔的應(yīng)用程序ApCont來實現(xiàn),用應(yīng)用程序中具有獨立線程的COM組件來實現(xiàn)Agent,Agent之間可以并行計算。
該多Agent仿真系統(tǒng)的開發(fā)思路借鑒了Matlab中的Simulink模型構(gòu)建及組織方法。一個 Agent容器程序的實例包含多個Agent,對真實系統(tǒng)中的一個個體進行仿真。可以通過Agent菜單在個體中添加各類Agent,各Agent有自己的人機界面,可以對其進行個性化的配置,通過狀態(tài)窗口可以觀察各Agent的實時運行狀態(tài)。個體中各Agent及其配置屬性可以以Agent容器配置文件的方式加以保存,通過打開Agent容器配置文件可以方便地重建模型。
Agent容器程序可以運行于不同的計算機上,通過網(wǎng)絡(luò)進行通信,也可以多個Agent容器程序運行在同一臺計算機上,其進程相互獨立。Agent之間使用消息數(shù)據(jù)包經(jīng)由Agent容器進行通信,Agent容器及Agent還可以依據(jù)其角色等屬性進行交互。
各類Agent組件可以單獨開發(fā),各類Agent的通信接口是統(tǒng)一定義的,組件可以方便地加入容器程序以實現(xiàn)特定的功能。規(guī)劃Agent是通用的組件,專家Agent和運算Agent是依據(jù)不同算法的專用組件,執(zhí)行Agent和通信Agent組件根據(jù)接口的不同而開發(fā)。容器程序可以更新,通過ini文件來更新可選Agent的種類。
本文就面向航天任務(wù)的自主運行系統(tǒng)的層次結(jié)構(gòu)進行了分析和比較,結(jié)合自主運行系統(tǒng)的層次結(jié)構(gòu)和Agent組織交互方法,提出了基于Agent的自主運行系統(tǒng)的方案,就其層次結(jié)構(gòu)及組織方式進行了具體設(shè)計。使用了基于時間和資源約束的規(guī)劃Agent、面向特定領(lǐng)域的專家Agent、提供專業(yè)運算能力的運算Agent相結(jié)合的Agent系統(tǒng),對規(guī)劃Agent的內(nèi)部結(jié)構(gòu)進行了進一步的設(shè)計,并建立了相應(yīng)的仿真系統(tǒng)。系統(tǒng)的設(shè)計突出了靈活組織和易于構(gòu)建的特點,適合分離模塊衛(wèi)星的應(yīng)用需求。
針對未來分離模塊衛(wèi)星的實用需求,需要進一步研究的關(guān)鍵技術(shù)有:1)適應(yīng)航天應(yīng)用及多Agent協(xié)同需求的規(guī)劃知識及組織交互關(guān)系的描述方法;2)能夠發(fā)揮多Agent分布協(xié)作特點的規(guī)劃任務(wù)劃分方法及協(xié)商規(guī)劃技術(shù);3)將體現(xiàn)分布計算的多Agent仿真系統(tǒng)與其他仿真系統(tǒng)相互配合、實時交互,實現(xiàn)多系統(tǒng)聯(lián)合仿真的分布交互仿真技術(shù)。
[1] 劉豪,梁巍. 美國國防高級研究局F6項目發(fā)展研究[J].航天器工程,2010,19(2):92-98.(LIU Hao, LIANG Wei.Development of DARPA’S F6 Program[J].Spacecraft Engineering, 2010,19(2):92-98.)
[2] Jonsson A K, Morris P H, Muscettola N, et al.Planning in Interplanetary Space:Theory and Practice [J].Artificial Intelligence Planning Systems, 2000:177-186.
[3] Muscettola N, Nayak P P, Pell B, et al.Remote Agent:to Boldly Go Where No Ai System Has Gone Before [J].Artificial Intelligence, 1998,103:5-47.
[4] Fukunaga A, Rabideau G, Chien S, Yan D.Towards an Application Framework for Automated Planning and Scheduling [C].Intl.Symp.of Artificial Intelligence, Robotics & Automation for Space, Tokyo, Japan, July 1997.
[5] Chien S, Knight R, Stechert A, et al.Using Iterative Repair to Improve the Responsiveness of Planning and Scheduling[C].The 5thInternational Conference on Artificial Intelligence Planning and Scheduling, Breck-enridge, CO, April 2000.
[6] Lemai S.IxTeT-eXeC Planning Plan Repair and Execution Control with Time and Resource Management[D].Ph.D.Dissertation, LAAS-CNRS and Institut National Polytechnique de Toulouse, France.
[7] Volpe R, Nesnas I, Estlin T, et al.The CLARAty Architecture for Robotic Autonomy[C].2001 IEEE Aerospace Conference, Big Sky, Motana, March 2001.
[8] Mueller J B, Surka D M, Udrea B.Agent-Based Control of Multiple Satellite Formation Flying[C].The 6thInternational Symposium on Artificial Intelligence, Robotics and Automation in Space: A New Space Odyssey, Montreal, Canada, June 2001.
[9] 吳云華,曹喜濱,鄭鵬飛,等.基于Multi-Agent的編隊飛行衛(wèi)星體系結(jié)構(gòu)研究[J].系統(tǒng)仿真學(xué)報,2007, 19(18): 4284-4287.(WU Yunhua, CAO Xibin, ZHENG Pengfei, et al.Research on Architecture for Formation Flying Satellites Based on Multi-Agent[J].Journal of System Simulation, 2007, 19(18): 4284-4287.)
[10] Muscettola N, Dorais G A, Fry C, et al.IDEA: Planning at the Core of Autonomous Reactive Agents[C].The Workshops at the AIPS-2002 Conference, Tolouse, France, April 2002.
[11] 張曉光,代樹武.基于多Agent的航天自主運行系統(tǒng)[J].計算機工程,2008, 34(6): 243-245.(ZHANG Xiaoguang, DAI Shuwu.System of Spacecraft Autonomy Based on Multi-Agent [J].Computer Engineering, 2008, 34(6): 243-245.)
[12] 張健,戴金海.面向多星協(xié)同的衛(wèi)星自組織自主控制體系結(jié)構(gòu)[J].國防科技大學(xué)學(xué)報,2005,27(5):95-98.(ZHANG Jian, DAI Jinhai.A Novel Satellite Autonomy Architecture with Self-organization for Multi-satellite Coordination [J].Journal of National University Of Defense Technology, 2005,27(5):95-98.)