本發(fā)明涉及多Agent技術(shù)領(lǐng)域,尤其涉及一種動(dòng)態(tài)環(huán)境下的多Agent協(xié)作方法及系統(tǒng)。
背景技術(shù):
多Agent系統(tǒng)(Multi-Agent System,MAS)是分布式人工智能研究的一個(gè)重要分支,其中Agent的協(xié)作問(wèn)題則一直是MAS研究的核心問(wèn)題。
多Agent的協(xié)作主要包括以下幾種傳統(tǒng)方法:經(jīng)典合同網(wǎng)協(xié)議(Contract Net Protocol,CNP)、組織結(jié)構(gòu)協(xié)作、黑板模型等。MAS的環(huán)境從封閉到開放,從可預(yù)知到不確定的變化,使得在考慮Agent協(xié)作問(wèn)題的同時(shí),還必須考慮整個(gè)系統(tǒng)環(huán)境的變化情況。但是傳統(tǒng)方法均只適用于環(huán)境不變的MAS,對(duì)于動(dòng)態(tài)環(huán)境下的MAS則不再適用。MAS的環(huán)境是不斷變化的,因此隨著環(huán)境和Agent狀態(tài)的變化,Agent之間的協(xié)作關(guān)系也會(huì)隨之發(fā)生變化,在設(shè)計(jì)時(shí)預(yù)設(shè)的協(xié)作機(jī)制可能在運(yùn)行時(shí)無(wú)法完成任務(wù)或者協(xié)作效率變低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題在于針對(duì)現(xiàn)有技術(shù)中無(wú)法在動(dòng)態(tài)環(huán)境下實(shí)現(xiàn)多Agent協(xié)作的缺陷,提供一種動(dòng)態(tài)環(huán)境下的多Agent協(xié)作方法及系統(tǒng)。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:
一種動(dòng)態(tài)環(huán)境下的多Agent協(xié)作方法,包括以下步驟:
S1、通過(guò)多Agent領(lǐng)域描述語(yǔ)言描述多Agent系統(tǒng)的當(dāng)前環(huán)境;
S2、接收用戶輸入的待解決問(wèn)題,并通過(guò)多Agent領(lǐng)域描述語(yǔ)言進(jìn)行描述;
S3、根據(jù)描述后的多Agent系統(tǒng)的當(dāng)前環(huán)境和該待解決問(wèn)題,規(guī)劃出一解決該待解決問(wèn)題的最優(yōu)方案,該最優(yōu)方案包括需要執(zhí)行的若干個(gè)動(dòng)作,將若干個(gè)動(dòng)作分別分配給多Agent系統(tǒng)中能夠執(zhí)行相應(yīng)動(dòng)作的Agent;
S4、多Agent系統(tǒng)中具有執(zhí)行任務(wù)的各Agent根據(jù)該最優(yōu)方案依次完成分配給自己的所有動(dòng)作,當(dāng)確定當(dāng)前動(dòng)作正常完成時(shí),各Agent繼續(xù)下一個(gè)動(dòng)作,直到完成所有動(dòng)作,解決該待解決問(wèn)題;
S5、當(dāng)確定當(dāng)前動(dòng)作無(wú)法完成時(shí),停止各Agent當(dāng)前動(dòng)作,對(duì)多Agent系統(tǒng)的當(dāng)前環(huán)境通過(guò)各Agent的感知功能進(jìn)行重新感知,并通過(guò)多Agent領(lǐng)域描述語(yǔ)言進(jìn)行重新描述,隨后轉(zhuǎn)至步驟S3。
本發(fā)明所述的方法中,所述多Agent系統(tǒng)的當(dāng)前環(huán)境包括多Agent系統(tǒng)中所有Agent的信息和所有Agent之間的協(xié)作關(guān)系;所述Agent的信息包括Agent的當(dāng)前位置、目標(biāo)位置和能夠執(zhí)行的所有動(dòng)作。
本發(fā)明所述的方法中,具有移動(dòng)任務(wù)的Agent的信息還包括該Agent的目標(biāo)位置。
本發(fā)明所述的方法中,所述多Agent領(lǐng)域描述語(yǔ)言為針對(duì)多Agent的規(guī)劃領(lǐng)域定義語(yǔ)言。
本發(fā)明所述的方法中,通過(guò)多Agent領(lǐng)域描述語(yǔ)言對(duì)Agent能夠執(zhí)行的動(dòng)作的描述包括對(duì)該Agent、該Agent的重新規(guī)劃和動(dòng)作主體的描述。
本發(fā)明提供一種動(dòng)態(tài)環(huán)境下的多Agent協(xié)作系統(tǒng),包括:
描述模塊,用于通過(guò)多Agent領(lǐng)域描述語(yǔ)言描述多Agent系統(tǒng)的當(dāng)前環(huán)境;
接收模塊,用于接收用戶輸入的待解決問(wèn)題,并通過(guò)多Agent領(lǐng)域描述語(yǔ)言進(jìn)行描述;
規(guī)劃模塊,用于根據(jù)描述后的多Agent系統(tǒng)的當(dāng)前環(huán)境和該待解決問(wèn)題,規(guī)劃出一解決該待解決問(wèn)題的最優(yōu)方案,該最優(yōu)方案包括需要執(zhí)行的若干個(gè)動(dòng)作,將若干個(gè)動(dòng)作分別分配給多Agent系統(tǒng)中能夠執(zhí)行相應(yīng)動(dòng)作的Agent;
完成模塊,用于多Agent系統(tǒng)中各Agent根據(jù)該最優(yōu)方案依次完成分配給自己的所有動(dòng)作,當(dāng)確定當(dāng)前動(dòng)作正常完成時(shí),各Agent繼續(xù)下一個(gè)動(dòng)作,直到完成所有動(dòng)作,解決該待解決問(wèn)題;
重新規(guī)劃模塊,用于當(dāng)確定當(dāng)前動(dòng)作無(wú)法完成時(shí),停止各Agent當(dāng)前動(dòng)作,對(duì)多Agent系統(tǒng)的當(dāng)前環(huán)境通過(guò)各Agent的感知功能進(jìn)行重新感知,并通過(guò)多Agent領(lǐng)域描述語(yǔ)言進(jìn)行重新描述,隨后轉(zhuǎn)至規(guī)劃模塊;
其中,描述模塊的輸出端和接收模塊的輸出端均與規(guī)劃模塊的輸入端連接,規(guī)劃模塊的輸出端與完成模塊的輸入端連接,完成模塊的輸出端與重新規(guī)劃模塊的輸入端連接,重新規(guī)劃模塊的輸出端與規(guī)劃模塊的輸入端連接。
本發(fā)明所述的系統(tǒng)中,所述多Agent系統(tǒng)的當(dāng)前環(huán)境包括多Agent系統(tǒng)中所有Agent的信息和所有Agent之間的協(xié)作關(guān)系;所述Agent的信息包括Agent的當(dāng)前位置、目標(biāo)位置和能夠執(zhí)行的所有動(dòng)作。
本發(fā)明所述的系統(tǒng)中,具有移動(dòng)任務(wù)的Agent的信息還包括該Agent的目標(biāo)位置。
本發(fā)明所述的系統(tǒng)中,所述多Agent領(lǐng)域描述語(yǔ)言為針對(duì)多Agent的規(guī)劃領(lǐng)域定義語(yǔ)言。
本發(fā)明所述的系統(tǒng)中,通過(guò)多Agent領(lǐng)域描述語(yǔ)言對(duì)Agent能夠執(zhí)行的動(dòng)作的描述包括對(duì)該Agent、該Agent的重新規(guī)劃和動(dòng)作主體的描述。
本發(fā)明產(chǎn)生的有益效果是:在由于多Agent系統(tǒng)的環(huán)境發(fā)生變化而導(dǎo)致Agent無(wú)法繼續(xù)執(zhí)行動(dòng)作時(shí),Agent可以重新感知的當(dāng)前環(huán)境并對(duì)待解決問(wèn)題進(jìn)行重新規(guī)劃以保證問(wèn)題的解決,從而避免傳統(tǒng)方法下任務(wù)執(zhí)行過(guò)程中環(huán)境發(fā)生了變化而導(dǎo)致問(wèn)題解決失敗的情況,而且還可以使用規(guī)劃語(yǔ)言(MA-PDDL)方便簡(jiǎn)潔的描述出Agent之間的協(xié)作關(guān)系以及整個(gè)任務(wù)的規(guī)劃,方便計(jì)算機(jī)針對(duì)任務(wù)作出最優(yōu)方案。
附圖說(shuō)明
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,附圖中:
圖1是本發(fā)明實(shí)施例的一種動(dòng)態(tài)環(huán)境下的多Agent協(xié)作方法的流程示意圖;
圖2是本發(fā)明實(shí)施例中的對(duì)Agent執(zhí)行動(dòng)作的描述的示意圖;
圖3是本發(fā)明實(shí)施例的一種動(dòng)態(tài)環(huán)境下的多Agent協(xié)作系統(tǒng)的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實(shí)施例中的一種動(dòng)態(tài)環(huán)境下的多Agent協(xié)作方法的場(chǎng)景模擬圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實(shí)施例中,如圖1所示,一種動(dòng)態(tài)環(huán)境下的多Agent協(xié)作方法,包括以下步驟:
S1、通過(guò)多Agent領(lǐng)域描述語(yǔ)言描述多Agent系統(tǒng)的當(dāng)前環(huán)境;
S2、接收用戶輸入的待解決問(wèn)題,并通過(guò)多Agent領(lǐng)域描述語(yǔ)言進(jìn)行描述;
S3、根據(jù)描述后的多Agent系統(tǒng)的當(dāng)前環(huán)境和該待解決問(wèn)題,規(guī)劃出一解決該待解決問(wèn)題的最優(yōu)方案,該最優(yōu)方案包括需要執(zhí)行的若干個(gè)動(dòng)作,將若干個(gè)動(dòng)作分別分配給多Agent系統(tǒng)中能夠執(zhí)行相應(yīng)動(dòng)作的Agent;
S4、多Agent系統(tǒng)中各Agent根據(jù)該最優(yōu)方案依次完成分配給自己的所有動(dòng)作,當(dāng)確定當(dāng)前動(dòng)作正常完成時(shí),各Agent繼續(xù)下一個(gè)動(dòng)作,直到完成所有動(dòng)作,解決該待解決問(wèn)題;
S5、當(dāng)確定當(dāng)前動(dòng)作無(wú)法完成時(shí),停止各Agent當(dāng)前動(dòng)作,對(duì)多Agent系統(tǒng)的當(dāng)前環(huán)境通過(guò)各Agent的感知功能進(jìn)行重新感知,并通過(guò)多Agent領(lǐng)域描述語(yǔ)言進(jìn)行重新描述,隨后轉(zhuǎn)至步驟S3。
上述實(shí)施例中,一個(gè)MAS(Multi-agent System,多Agent系統(tǒng))包括多個(gè)Agent,其知識(shí)、數(shù)據(jù)和控制等分布在多個(gè)節(jié)點(diǎn)處理機(jī)上。每個(gè)Agent具有一定的問(wèn)題求解能力,如推理、規(guī)劃、協(xié)商、通訊及協(xié)調(diào)等能力。本發(fā)明在MA-PDDL基礎(chǔ)上進(jìn)行了改進(jìn),在原有的語(yǔ)法中加入了連續(xù)規(guī)劃的思想,當(dāng)Agent對(duì)周圍環(huán)境未知或者掌握的知識(shí)不足以完成規(guī)劃過(guò)程中的動(dòng)作時(shí),Agent可以延遲規(guī)劃動(dòng)作的執(zhí)行,然后通過(guò)自身的感知能力或者通過(guò)與其他Agent進(jìn)行通信,獲取更加準(zhǔn)確的信息,不斷地更新知識(shí),直到Agent有足夠的知識(shí)來(lái)完成接下來(lái)的規(guī)劃任務(wù)時(shí)再接著執(zhí)行。
當(dāng)確定當(dāng)前動(dòng)作無(wú)法完成時(shí)(比如在Agent從a點(diǎn)移動(dòng)到b點(diǎn)的過(guò)程中檢測(cè)到行動(dòng)路徑上出現(xiàn)某個(gè)障礙物),停止各Agent當(dāng)前動(dòng)作,通過(guò)各Agent的感知模塊對(duì)該多Agent系統(tǒng)的當(dāng)前環(huán)境進(jìn)行重新感知,通過(guò)多Agent領(lǐng)域描述語(yǔ)言進(jìn)行重新描述,然后根據(jù)問(wèn)題和重新描述當(dāng)前環(huán)境進(jìn)行重新規(guī)劃,得到一個(gè)新的最優(yōu)方案,然后再讓各Agent執(zhí)行新的最優(yōu)方案。
上述實(shí)施例中,可以通過(guò)動(dòng)態(tài)規(guī)劃算法、貪心算法、遺傳算法、模擬退火算法、爬山算法、粒子群算法以及蟻群算法等得到最優(yōu)方案。
本發(fā)明實(shí)施例中,所述多Agent系統(tǒng)的當(dāng)前環(huán)境包括多Agent系統(tǒng)中所有Agent的信息和所有Agent之間的協(xié)作關(guān)系;所述Agent的信息包括Agent的當(dāng)前位置、目標(biāo)位置和能夠執(zhí)行的所有動(dòng)作。
本發(fā)明實(shí)施例中,具有移動(dòng)任務(wù)的Agent的信息還包括該Agent的目標(biāo)位置。
本發(fā)明實(shí)施例中,多Agent領(lǐng)域描述語(yǔ)言為針對(duì)多Agent的規(guī)劃領(lǐng)域定義語(yǔ)言(MA-PDDL)。
規(guī)劃問(wèn)題的定義是規(guī)劃問(wèn)題求解的前提,如果一個(gè)規(guī)劃問(wèn)題不能通過(guò)規(guī)劃語(yǔ)言來(lái)表示,那么任何一個(gè)規(guī)劃器都不能對(duì)它進(jìn)行求解。只有通過(guò)規(guī)劃領(lǐng)域語(yǔ)言進(jìn)行描述后,計(jì)算機(jī)才能識(shí)別并進(jìn)行規(guī)劃。PDDL可以解決環(huán)境固定不變的單Agent系統(tǒng),解決單個(gè)Agent的規(guī)劃問(wèn)題;MA-PDDL是在PDDL上進(jìn)行改進(jìn),可以解決多Agent系統(tǒng)中的多個(gè)Agent之間的協(xié)作問(wèn)題,只適用于環(huán)境不變的系統(tǒng);在MA-PDDL中加入重新規(guī)劃的方法才能解決動(dòng)態(tài)環(huán)境下的多Agent協(xié)作問(wèn)題,是一種改進(jìn)的MA-PDDL。改進(jìn)后的MA-PDDL也可以允許給Agent的動(dòng)作添加數(shù)值屬性以及進(jìn)行加減乘除運(yùn)算等。
本發(fā)明實(shí)施例中,如圖2所示,通過(guò)多Agent領(lǐng)域描述語(yǔ)言對(duì)Agent能夠執(zhí)行的動(dòng)作的描述包括對(duì)該Agent、該Agent的重新規(guī)劃和動(dòng)作主體的描述。
本發(fā)明實(shí)施例中,如圖3所示,一種動(dòng)態(tài)環(huán)境下的多Agent協(xié)作系統(tǒng),包括:
描述模塊,用于通過(guò)多Agent領(lǐng)域描述語(yǔ)言描述多Agent系統(tǒng)的當(dāng)前環(huán)境;
接收模塊,用于接收用戶輸入的待解決問(wèn)題,并通過(guò)多Agent領(lǐng)域描述語(yǔ)言進(jìn)行描述;
規(guī)劃模塊,用于根據(jù)描述后的多Agent系統(tǒng)的當(dāng)前環(huán)境和該待解決問(wèn)題,規(guī)劃出一解決該待解決問(wèn)題的最優(yōu)方案,該最優(yōu)方案包括需要執(zhí)行的若干個(gè)動(dòng)作,將若干個(gè)動(dòng)作分別分配給多Agent系統(tǒng)中能夠執(zhí)行相應(yīng)動(dòng)作的Agent;
完成模塊,用于多Agent系統(tǒng)中各Agent根據(jù)該最優(yōu)方案依次完成分配給自己的所有動(dòng)作,當(dāng)確定當(dāng)前動(dòng)作正常完成時(shí),各Agent繼續(xù)下一個(gè)動(dòng)作,直到完成所有動(dòng)作,解決該待解決問(wèn)題;
重新規(guī)劃模塊,用于當(dāng)確定當(dāng)前動(dòng)作無(wú)法完成時(shí),停止各Agent當(dāng)前動(dòng)作,對(duì)多Agent系統(tǒng)的當(dāng)前環(huán)境通過(guò)各Agent的感知功能進(jìn)行重新感知,并通過(guò)多Agent領(lǐng)域描述語(yǔ)言進(jìn)行重新描述,隨后轉(zhuǎn)至規(guī)劃模塊;
其中,描述模塊的輸出端和接收模塊的輸出端均與規(guī)劃模塊的輸入端連接,規(guī)劃模塊的輸出端與完成模塊的輸入端連接,完成模塊的輸出端與重新規(guī)劃模塊的輸入端連接,重新規(guī)劃模塊的輸出端與規(guī)劃模塊的輸入端連接。
本發(fā)明實(shí)施例中,所述多Agent系統(tǒng)的當(dāng)前環(huán)境包括多Agent系統(tǒng)中所有Agent的信息和所有Agent之間的協(xié)作關(guān)系;所述Agent的信息包括Agent的當(dāng)前位置、目標(biāo)位置和能夠執(zhí)行的所有動(dòng)作。
本發(fā)明實(shí)施例中,具有移動(dòng)任務(wù)的Agent的信息還包括該Agent的目標(biāo)位置。具有移動(dòng)任務(wù)的Agent即為被分配給移動(dòng)任務(wù)并具有移動(dòng)功能的Agent。
本發(fā)明實(shí)施例中,所述多Agent領(lǐng)域描述語(yǔ)言為針對(duì)多Agent的規(guī)劃領(lǐng)域定義語(yǔ)言。
本發(fā)明實(shí)施例中,通過(guò)多Agent領(lǐng)域描述語(yǔ)言對(duì)Agent能夠執(zhí)行的動(dòng)作的描述包括對(duì)該Agent、該Agent的重新規(guī)劃和動(dòng)作主體的描述。
在一個(gè)具體的實(shí)施例中,如圖4所示,一醫(yī)院的某一層中,具有4個(gè)AGV(Automatic Guilded Vehicle,無(wú)人搬運(yùn)車)和12個(gè)醫(yī)療垃圾存放點(diǎn),使用Agent對(duì)醫(yī)院系統(tǒng)進(jìn)行建模,得到由Cart、Cart_sensor、AGV以及Decision Agent組成的多Agent系統(tǒng)(MAS)。其中,Cart是用來(lái)裝醫(yī)療垃圾的容器;Cart_sensor固定在Cart的停放地點(diǎn)。通過(guò)讀取Cart的RFID標(biāo)簽來(lái)獲取Cart的重量等信息并發(fā)布任務(wù)(待解決問(wèn)題);AGV(執(zhí)行Agent)是專門用來(lái)運(yùn)輸Cart的小車,具有不同載重量;Decision Agent(決策Agent)可以根據(jù)任務(wù)描述來(lái)選擇最適合的AGV來(lái)執(zhí)行,同時(shí)為AGV規(guī)劃出一條最優(yōu)的移動(dòng)路線。整個(gè)系統(tǒng)的任務(wù)(待解決問(wèn)題)就是利用AGV將Cart里面存放的醫(yī)療垃圾運(yùn)出醫(yī)院,放入指定地點(diǎn)(目的地)進(jìn)行處理。
首先,根據(jù)MAS當(dāng)前環(huán)境,采用改進(jìn)后的MA-PDDL描述各個(gè)Agent在系統(tǒng)里面可能執(zhí)行的動(dòng)作和各Agent(包括執(zhí)行Agent和決策Agent)之間可能需要的協(xié)作關(guān)系。然后,當(dāng)Cart_sensor感知到Cart里面有醫(yī)療垃圾需要處理時(shí),將該Cart的質(zhì)量以及位置發(fā)布出去,并發(fā)布運(yùn)輸任務(wù),并采用改進(jìn)后的MA-PDDL描述該運(yùn)輸任務(wù)(待解決問(wèn)題)。Decision Agent根據(jù)Cart的位置和重量選擇一個(gè)最合適的AGV來(lái)執(zhí)行任務(wù),并通過(guò)規(guī)劃算法規(guī)劃一條最優(yōu)路徑(最優(yōu)方案)。選中的AGV按規(guī)劃好的路徑運(yùn)輸醫(yī)療垃圾,若執(zhí)行過(guò)程中環(huán)境未發(fā)生改變,則可成功完成任務(wù);若執(zhí)行過(guò)程中發(fā)現(xiàn)AGV的行動(dòng)路徑上存在障礙物,則停止動(dòng)作的執(zhí)行,Decision Agent根據(jù)運(yùn)輸任務(wù)和當(dāng)前環(huán)境選擇新的最合適AGV并重新規(guī)劃最優(yōu)路徑,然后新的最合適AGV按新的最優(yōu)路徑運(yùn)輸醫(yī)療垃圾。
應(yīng)當(dāng)理解的是,對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可以根據(jù)上述說(shuō)明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。