趙 毓,郭繼峰,鄭紅星,白成超
(哈爾濱工業(yè)大學(xué)航天學(xué)院,哈爾濱 150001)
伴隨著無人機(jī)行業(yè)的高速發(fā)展,多無人機(jī)在有限空域內(nèi)協(xié)同執(zhí)行任務(wù)成為可能[1]。無論在協(xié)同偵查搜索等作戰(zhàn)任務(wù)中,還是在快遞配送或飛行表演等日常場(chǎng)景中,多無人機(jī)間協(xié)同飛行避碰問題一直是相關(guān)制導(dǎo)技術(shù)研究的重點(diǎn)方向[2]。固定翼無人機(jī)因無法懸停及速度控制范圍有限等技術(shù)特點(diǎn),在航路密度較高的環(huán)境中,如果發(fā)生碰撞、損毀等安全事故,容易導(dǎo)致財(cái)產(chǎn)損失甚至人員受傷。因此,局部空域內(nèi)大量固定翼無人機(jī)飛行碰撞沖突已成為相關(guān)領(lǐng)域亟待解決的突出問題。
無人機(jī)在自主執(zhí)行任務(wù)期間主要依靠自身制導(dǎo)系統(tǒng)進(jìn)行軌跡規(guī)劃與目標(biāo)跟蹤。隨著任務(wù)動(dòng)態(tài)性的提高和執(zhí)行任務(wù)期間無人機(jī)數(shù)量需求的增加,傳統(tǒng)制導(dǎo)方法的自主性已難以滿足相關(guān)性能要求。Lu等最早提出了計(jì)算制導(dǎo)控制的概念,以描述具備更高自主性的新興制導(dǎo)算法[3]。早期的計(jì)算制導(dǎo)方法研究主要集中在航天領(lǐng)域,模型預(yù)測(cè)控制可以被稱作計(jì)算制導(dǎo)的前身[4]。Jiang等針對(duì)行星動(dòng)力下降過程設(shè)計(jì)了一種計(jì)算制導(dǎo)方法,并使用協(xié)同優(yōu)化算法對(duì)其進(jìn)行求解[5]。近期Yang等將計(jì)算制導(dǎo)方法應(yīng)用在空中交通管制問題上,使用蒙特卡羅樹搜索方法解決了臨近空域內(nèi)的飛行沖突問題[6]。本文研究的任務(wù)場(chǎng)景與其類似,但研究對(duì)象為具有更高動(dòng)態(tài)特性的固定翼無人機(jī),對(duì)制導(dǎo)系統(tǒng)的可靠性有著更為嚴(yán)格的要求。
早期國內(nèi)外學(xué)者對(duì)多無人機(jī)避碰的航路規(guī)劃或制導(dǎo)方法多是基于地面控制站實(shí)現(xiàn)。美國McLain等[7]最早基于最優(yōu)控制的思想解決多無人機(jī)協(xié)調(diào)問題。國內(nèi)的周煒等[8]基于層次分解法對(duì)多無人機(jī)避障問題展開研究,并實(shí)現(xiàn)了次優(yōu)航路規(guī)劃。楊秀霞等[9]分別基于時(shí)間約束和比例導(dǎo)引兩方面對(duì)避障問題給出解決方案,通過數(shù)值解算得到了避碰時(shí)間估計(jì)方程和比例導(dǎo)引系數(shù)范圍。
在機(jī)器人編隊(duì)控制方向關(guān)于多智能體避碰問題的研究成果較多,近期無人機(jī)領(lǐng)域的相關(guān)學(xué)者也針對(duì)此類問題開展了研究。溫家鑫等[10]使用改進(jìn)的人工勢(shì)場(chǎng)法進(jìn)行無人機(jī)三維路徑規(guī)劃,有效地解決了傳統(tǒng)虛擬力方法易陷于局部最優(yōu)的問題。Horn等[11]提出了一種基于虛擬結(jié)構(gòu)的避碰算法,在勢(shì)場(chǎng)法的基礎(chǔ)上引入虛擬點(diǎn)理論,實(shí)現(xiàn)了對(duì)多智能體運(yùn)動(dòng)的控制。李相民等[12]將航跡規(guī)劃抽象為滾動(dòng)在線優(yōu)化問題,基于模型預(yù)測(cè)控制法實(shí)現(xiàn)了4架無人機(jī)的避碰飛行。Everett等[13]使用強(qiáng)化學(xué)習(xí)方法對(duì)不確定環(huán)境下無人車軌跡規(guī)劃問題進(jìn)行了研究,其訓(xùn)練成型的神經(jīng)網(wǎng)絡(luò)具有很好的避碰性能。本文也使用了強(qiáng)化學(xué)習(xí)方法訓(xùn)練制導(dǎo)決策神經(jīng)網(wǎng)絡(luò),與前人不同之處在于使用了訓(xùn)練效率更高的Actor-Critic模型,而且設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)更簡(jiǎn)單,可以適應(yīng)多無人機(jī)場(chǎng)景的高動(dòng)態(tài)性要求。
本文通過構(gòu)建自主決策神經(jīng)網(wǎng)絡(luò)的方法,解決了同一飛行高度共空域多固定翼無人機(jī)的實(shí)時(shí)飛行避碰制導(dǎo)問題?;隈R爾可夫博弈(Markov game)理論,對(duì)多智能體序列制導(dǎo)決策問題進(jìn)行數(shù)學(xué)建模,并確定優(yōu)化目標(biāo)。為了實(shí)現(xiàn)決策網(wǎng)絡(luò)功能,根據(jù)Actor-Critic模型建立了集中訓(xùn)練和分布執(zhí)行的多智能體強(qiáng)化學(xué)習(xí)訓(xùn)練系統(tǒng)。針對(duì)該自學(xué)習(xí)系統(tǒng),分別設(shè)計(jì)了用于計(jì)算制導(dǎo)的執(zhí)行網(wǎng)絡(luò)(Actor)結(jié)構(gòu)和用于評(píng)價(jià)聯(lián)合動(dòng)作的值函數(shù)網(wǎng)絡(luò)(Critic)結(jié)構(gòu),并給出了基于logit協(xié)調(diào)機(jī)制的相關(guān)訓(xùn)練流程。在建立的多航路飛行場(chǎng)景模擬器中應(yīng)用本文算法進(jìn)行仿真,結(jié)果表明,算法在高航路密度場(chǎng)景中可以實(shí)現(xiàn)多無人機(jī)協(xié)同避碰飛行。
本文算法相對(duì)于傳統(tǒng)基于數(shù)學(xué)模型或數(shù)值解析理論方法的優(yōu)勢(shì),在于該方法對(duì)無人機(jī)數(shù)量可變環(huán)境具有更好的適應(yīng)性,避免了多無人機(jī)控制領(lǐng)域自適應(yīng)動(dòng)態(tài)規(guī)劃算法無法精確建模的問題。該研究?jī)?nèi)容為未來實(shí)物系統(tǒng)研究提供了方案參考和理論依據(jù),具有一定的工程應(yīng)用價(jià)值。
本文提出了一種在多無人機(jī)環(huán)境中分布式執(zhí)行的自主制導(dǎo)決策神經(jīng)網(wǎng)絡(luò)算法,該方法適用于飛機(jī)總數(shù)可變的場(chǎng)景。經(jīng)過訓(xùn)練后的制導(dǎo)神經(jīng)網(wǎng)絡(luò)以環(huán)境狀態(tài)為輸入,可以在線為無人機(jī)提供制導(dǎo)指令,這些指令被用于引導(dǎo)無人機(jī)飛向各自目的地的同時(shí)能夠避免發(fā)生機(jī)間碰撞。在本研究中,僅考慮了飛機(jī)做水平運(yùn)動(dòng)的情況,即限定空域內(nèi)所有飛機(jī)均在同一高度層飛行。這樣假設(shè)主要有兩個(gè)原因:1)為了增加無控條件下無人機(jī)的碰撞概率,進(jìn)而有效驗(yàn)證算法性能;2)不失一般性地模擬了真實(shí)飛行情況,由于載荷和動(dòng)力系統(tǒng)的限制,固定翼無人機(jī)協(xié)同執(zhí)行任務(wù)時(shí)在同高度飛行情景較為常見[14]。為了降低復(fù)雜度,研究中假設(shè)所有無人機(jī)均通過無延遲的可靠通信進(jìn)行狀態(tài)信息交換。
為更貼近現(xiàn)實(shí)并提高算法的適用性,本文基于中心地理論將訓(xùn)練場(chǎng)景設(shè)定為正六邊形空域[15],如圖1所示。后續(xù)研究可以根據(jù)密鋪原理對(duì)飛行空域進(jìn)行擴(kuò)展。在六邊形每個(gè)頂點(diǎn)處,以隨機(jī)時(shí)間間隔產(chǎn)生初始航向指向非相鄰點(diǎn)的無人機(jī)。各無人機(jī)的初始速度在一定范圍內(nèi)隨機(jī)選取,在飛行過程中速度存在擾動(dòng)誤差。
圖1 訓(xùn)練場(chǎng)景示意圖Fig.1 Sketch map of training case
在實(shí)際應(yīng)用中的固定翼無人機(jī)有多種構(gòu)型[16]。由于本文研究算法為通用方法,不妨假設(shè)場(chǎng)景中無人機(jī)是碰撞半徑為50m的空間球形包絡(luò),于是當(dāng)空域內(nèi)任意兩機(jī)間距離小于100m時(shí),即認(rèn)定發(fā)生碰撞;同樣,當(dāng)飛機(jī)與空域邊界距離小于50m時(shí),認(rèn)定為出界。無論發(fā)生碰撞還是出界,相關(guān)無人機(jī)都將從仿真場(chǎng)景中移除。
基于以上設(shè)定,本文提出算法的目標(biāo)有2個(gè):1)引導(dǎo)所有飛機(jī)到達(dá)各自目的地;2)避免飛行過程中發(fā)生碰撞或出界。
許多學(xué)者已經(jīng)對(duì)固定翼無人機(jī)的動(dòng)力學(xué)問題展開了深入研究[17-18]。為了降低問題的復(fù)雜程度,本文僅考慮無人機(jī)在水平面內(nèi)的運(yùn)動(dòng)控制問題,于是得到如下無人機(jī)二維運(yùn)動(dòng)學(xué)簡(jiǎn)化模型
(1)
其中,(x,y)為無人機(jī)實(shí)時(shí)位置坐標(biāo);v為無人機(jī)巡航速度;φ為飛行航向角;ac為本文控制量,對(duì)應(yīng)于航向角轉(zhuǎn)動(dòng)角速度。
在本文中,為了驗(yàn)證高速場(chǎng)景下的算法性能,將無人機(jī)的初速設(shè)定為60m/s。巡航速度在每一仿真步長(zhǎng)中會(huì)附加均值為5m/s的隨機(jī)噪聲,但實(shí)時(shí)飛行速度被限制在一定范圍內(nèi),其值不大于80m/s,不小于40m/s。由于固定翼飛機(jī)相比旋翼飛機(jī)速度高很多,其控制系統(tǒng)必然存在擾動(dòng)誤差,速度噪聲的引入是為了更加真實(shí)地模擬實(shí)際工程情況。
在生成每架無人機(jī)的初始階段,隨機(jī)選擇非相鄰節(jié)點(diǎn)為目標(biāo)點(diǎn),于是每架飛機(jī)從出生點(diǎn)指向目標(biāo)點(diǎn)方向的航向角即為初始航向角。設(shè)定所有無人機(jī)在無控飛行狀態(tài)下均保持初始航向角不變。在每一仿真步長(zhǎng)中,文中制導(dǎo)算法為無人機(jī)選取某一確定的航向角轉(zhuǎn)動(dòng)角速度,該速度不大于5(°)/s。本文制導(dǎo)決策神經(jīng)網(wǎng)絡(luò)會(huì)根據(jù)當(dāng)前全局狀態(tài)實(shí)時(shí)為無人機(jī)提供制導(dǎo)指令,為控制系統(tǒng)選擇精確的轉(zhuǎn)向角速度。無人機(jī)通過執(zhí)行相應(yīng)動(dòng)作,實(shí)現(xiàn)對(duì)空域內(nèi)其他飛機(jī)的規(guī)避并飛向目標(biāo)點(diǎn)。
本文使用off-policy形式的強(qiáng)化學(xué)習(xí)方法對(duì)制導(dǎo)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練過程每一回合(Episode)中產(chǎn)生200架無人機(jī)。對(duì)于每一個(gè)出生點(diǎn)生成的前后2架飛機(jī),其時(shí)間間隔將會(huì)在60~180s內(nèi)隨機(jī)選取。關(guān)于更詳細(xì)的參數(shù)信息將會(huì)在第4節(jié)中給出。
當(dāng)空域內(nèi)只有1架無人機(jī)與環(huán)境發(fā)生交互,其制導(dǎo)過程可以視為序列決策問題,使用傳統(tǒng)的馬爾可夫決策過程(Markov Decision Process, MDP)可以對(duì)其進(jìn)行建模并求解。然而,本文研究空域內(nèi)存在多個(gè)無人機(jī)對(duì)象,環(huán)境的整體狀態(tài)受到所有飛機(jī)聯(lián)合動(dòng)作影響,對(duì)單架無人機(jī)來講環(huán)境失去穩(wěn)定性,MDP方法不再適用于此場(chǎng)景。本文使用馬爾可夫博弈理論對(duì)空域內(nèi)可變數(shù)量飛行器的制導(dǎo)決策問題進(jìn)行建模,該理論是MDP在多智能體條件下的一種自然擴(kuò)展[19]。
多智能體的馬爾可夫博弈問題可以用一個(gè)元組{n,S,A1,…,An,γ,R,T}來表示,其中n代表環(huán)境中智能體的總數(shù);S代表整個(gè)系統(tǒng)可能狀態(tài)的有限集合,也稱為狀態(tài)空間;Ai,i∈[1,n]代表第i個(gè)智能體的可選動(dòng)作集合,因本文智能體有相同可選動(dòng)作集,此處可稱為動(dòng)作空間;γ是獎(jiǎng)勵(lì)折扣系數(shù);R是聯(lián)合獎(jiǎng)勵(lì)值,由環(huán)境受聯(lián)合動(dòng)作a影響后產(chǎn)生;T是狀態(tài)轉(zhuǎn)移函數(shù)。某一時(shí)刻系統(tǒng)狀態(tài)改變受所有智能體聯(lián)合動(dòng)作a=(a1,…,an),ai∈Ai影響,其中第i個(gè)智能體的動(dòng)作ai通過自身策略πi選擇產(chǎn)生。
多智能體系統(tǒng)在聯(lián)合策略π=(π1,…,πn)的指導(dǎo)下,有累計(jì)折扣獎(jiǎng)勵(lì)定義如下
(2)
其中,Tm為總時(shí)間;t為當(dāng)前仿真時(shí)刻;st為當(dāng)前時(shí)刻環(huán)境的狀態(tài)。多智能體馬爾可夫博弈的終極目標(biāo)是找到最優(yōu)的聯(lián)合策略π*,使得整個(gè)系統(tǒng)的累計(jì)期望回報(bào)值最大。
為了降低環(huán)境的不穩(wěn)定性,本研究對(duì)場(chǎng)景內(nèi)所有智能體使用Logit策略進(jìn)行動(dòng)作協(xié)調(diào)[21]。具體來說,在Logit策略中僅存在一個(gè)高級(jí)別智能體,其余智能體均保持原始動(dòng)作不變。當(dāng)環(huán)境中高級(jí)別智能體做出決策和選擇動(dòng)作后,向其余智能體發(fā)送這一信息,然后自動(dòng)變?yōu)榈图?jí)智能體。順序選擇下一智能體為高級(jí)別智能體,循環(huán)迭代進(jìn)行決策,直到所有智能體完成動(dòng)作選擇。通過這種方式可以在智能體進(jìn)行策略更新時(shí)固化環(huán)境影響,進(jìn)而降低系統(tǒng)的不穩(wěn)定性。
本文使用強(qiáng)化學(xué)習(xí)領(lǐng)域最流行的Actor-Critic方法解決多智能體避碰制導(dǎo)決策神經(jīng)網(wǎng)絡(luò)的訓(xùn)練問題[22]。在集中訓(xùn)練過程中,使用2個(gè)異步更新的Actor神經(jīng)網(wǎng)絡(luò)來擬合策略(Policy),同樣使用2個(gè)Critic網(wǎng)絡(luò)逼近評(píng)價(jià)值(Q-Value)函數(shù)。環(huán)境中的所有無人機(jī)都共享一套神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),但各自網(wǎng)絡(luò)參數(shù)存在一定噪聲,通過這種方式鼓勵(lì)協(xié)作的同時(shí)擴(kuò)大系統(tǒng)的探索能力。在分布執(zhí)行過程中,每架無人機(jī)各自使用一個(gè)獨(dú)立的Actor網(wǎng)絡(luò)生成制導(dǎo)指令。
本文提出的多智能體強(qiáng)化學(xué)習(xí)算法具有如下特點(diǎn):1)所有智能體共享同一套Actor-Critic網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù),但個(gè)體網(wǎng)絡(luò)參數(shù)存在噪聲;2)理論上,由于使用了Logit策略,本文算法中不同智能體的動(dòng)作選擇是異步更新的;3)文中算法通過引入長(zhǎng)短期記憶(Long Short Term Memory, LSTM)網(wǎng)絡(luò),能夠處理智能體數(shù)目可變場(chǎng)景下的制導(dǎo)決策問題。下面將對(duì)多智能體計(jì)算制導(dǎo)方法進(jìn)行詳細(xì)分析。
本文所述強(qiáng)化學(xué)習(xí)過程中共有4個(gè)神經(jīng)網(wǎng)絡(luò),分別是決策Actor(ActorD)、估計(jì)Actor(ActorE)、決策Critic(CriticD)和估計(jì)Critic(CriticE)。其中ActorD用來擬合制導(dǎo)策略,可以用參數(shù)θ描述,它是唯一在訓(xùn)練過程和執(zhí)行過程都被使用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu);CriticD用來逼近評(píng)價(jià)函數(shù),可以用參數(shù)ω描述。以第i個(gè)智能體為例,其在自學(xué)習(xí)系統(tǒng)中的訓(xùn)練過程如圖2所示。
圖2 多智能體訓(xùn)練過程示意圖Fig.2 Multi-agent training framework diagram
在訓(xùn)練期間,ActorD實(shí)時(shí)生成決策,即通過獲取當(dāng)前環(huán)境中全局狀態(tài)信息為智能體選擇動(dòng)作。在每一個(gè)時(shí)間步長(zhǎng)t中,所有智能體都通過自身策略選擇各自動(dòng)作,雖然這些策略有相同的ActorD網(wǎng)絡(luò)結(jié)構(gòu),但每次應(yīng)用時(shí)都為參數(shù)附加了誤差,并且每個(gè)個(gè)體的輸入和輸出是差異化的。環(huán)境中所有被選擇的動(dòng)作最終合成為聯(lián)合動(dòng)作at。環(huán)境狀態(tài)st在執(zhí)行聯(lián)合動(dòng)作at后,通過狀態(tài)轉(zhuǎn)移函數(shù)更新為新的狀態(tài)s′t,并返回即時(shí)獎(jiǎng)勵(lì)Rt。每一仿真步長(zhǎng)最終產(chǎn)生一個(gè)用集合(st,at,Rt,s′t)表示的案例,所有案例將會(huì)被存儲(chǔ)在經(jīng)驗(yàn)池D中。當(dāng)經(jīng)驗(yàn)池中案例達(dá)到一定數(shù)目時(shí),隨機(jī)從中抽取M組案例對(duì)所有神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。類似于深度Q學(xué)習(xí)(Deep Q-Learning)的思路,用off-policy這樣的方式來提高動(dòng)態(tài)環(huán)境中訓(xùn)練曲線的收斂速度。
案例訓(xùn)練過程中,CriticD首先根據(jù)聯(lián)合狀態(tài)st和聯(lián)合動(dòng)作at生成評(píng)價(jià)值Qt;然后ActorE根據(jù)新的聯(lián)合狀態(tài)s′t生成估計(jì)聯(lián)合動(dòng)作a′t;CriticE將會(huì)基于s′t和a′t生成Q′t。于是可以得到CriticD網(wǎng)絡(luò)的損失方程為
L(ω)=E[(Qt(st,at)-Rt-γQ′t(s′t,a′t))2]
(3)
基于求得的損失值L(ω)更新CriticD網(wǎng)絡(luò)參數(shù)。
用式(4)可以求取ActorD網(wǎng)絡(luò)的梯度
(4)
其中,J(π)=E[R]由式(2)給出。使用Adam優(yōu)化器根據(jù)上述梯度值更新ActorD的神經(jīng)網(wǎng)絡(luò)參數(shù)。
綜上,本文強(qiáng)化學(xué)習(xí)訓(xùn)練的目的是通過不斷調(diào)整各網(wǎng)絡(luò)參數(shù),使ActorD能夠根據(jù)環(huán)境內(nèi)全局狀態(tài)為智能體選擇最理想的動(dòng)作。
本文將多無人機(jī)的計(jì)算制導(dǎo)問題求解過程抽象為強(qiáng)化學(xué)習(xí)過程,將每架飛機(jī)看作一個(gè)智能體。制導(dǎo)算法的最終目標(biāo)是形成一個(gè)決策神經(jīng)網(wǎng)絡(luò),為智能體選擇合適的動(dòng)作,在避免碰撞的同時(shí)引導(dǎo)其到達(dá)目的地。由于空域中飛機(jī)隨機(jī)產(chǎn)生,所以本文研究的是一個(gè)動(dòng)態(tài)場(chǎng)景,正因如此,需要每個(gè)智能體能夠具備對(duì)突發(fā)情況的臨時(shí)決策能力。雖然給出了飛行速度約束,但在研究中只對(duì)無人機(jī)的飛行航向角進(jìn)行控制,即選擇航向角的改變角速率作為動(dòng)作集合。前文已經(jīng)提到可用航向角速度的最大值為5 (°)/s,所以需要優(yōu)化的動(dòng)作集合是有界且連續(xù)的。以下將給出本文所用強(qiáng)化學(xué)習(xí)方法中狀態(tài)空間、動(dòng)作空間、回報(bào)函數(shù)和其他一些參數(shù)的相關(guān)定義。
(1)狀態(tài)空間
每架無人機(jī)的狀態(tài)信息包括實(shí)時(shí)位置(x,y)、速度v、飛行航向角φ和目標(biāo)點(diǎn)(gx,gy)。在t時(shí)刻,空域環(huán)境中所有智能體的狀態(tài)信息聯(lián)合構(gòu)成了完整的全局狀態(tài)信息st,定義如下
(5)
其中,st是一個(gè)n×6的矩陣,n是環(huán)境中智能體的總數(shù)。本文認(rèn)為在仿真過程中所有智能體都能及時(shí)獲得完整的全局狀態(tài)信息。
(2)動(dòng)作空間
每架無人機(jī)在仿真步長(zhǎng)內(nèi)可以選擇一個(gè)固定的角速度值做航向角轉(zhuǎn)向動(dòng)作,于是智能體的動(dòng)作空間為Ai∈[-5,5] (°)/s,正值代表右轉(zhuǎn),負(fù)值代表左轉(zhuǎn)。然而,通過大量仿真實(shí)驗(yàn)發(fā)現(xiàn),在訓(xùn)練中使用連續(xù)的動(dòng)作空間將會(huì)耗費(fèi)大量計(jì)算時(shí)間,使得系統(tǒng)難以找到最優(yōu)策略。為了提高訓(xùn)練速度,在本研究中將動(dòng)作空間離散為Ai={-5,-3,0,3,5},其中0表示不發(fā)生轉(zhuǎn)向。
(3)回報(bào)函數(shù)
在前文中已經(jīng)給出了發(fā)生機(jī)間碰撞的距離為100m,為了進(jìn)一步提高算法的訓(xùn)練速度,在此還設(shè)定了機(jī)間警告距離為500m,如果2架飛機(jī)間距離小于此值時(shí),他們各自的回報(bào)值中會(huì)計(jì)入一個(gè)懲罰?;谝陨显O(shè)定,可以得到每個(gè)智能體的回報(bào)函數(shù)定義
(6)
(7)
基于這樣的回報(bào)函數(shù)設(shè)定,可以通過訓(xùn)練提高環(huán)境累積回報(bào)值以提升算法性能。
(4)其他相關(guān)參數(shù)
由于轉(zhuǎn)移方程和回報(bào)函數(shù)已經(jīng)確定,本文中強(qiáng)化學(xué)習(xí)訓(xùn)練的目標(biāo)即是為多智能體問題找到優(yōu)化的策略。為了解決這一隨機(jī)博弈問題,需要找到可以使所有無人機(jī)未來累計(jì)折扣回報(bào)總和盡量大的策略π*。因?yàn)榄h(huán)境中所有智能體都有相同的回報(bào)函數(shù),并在環(huán)境返回時(shí)累加所有智能體的回報(bào)值,而且有相同的決策神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),所以屬于完全合作情景。如2.1節(jié)所述,將動(dòng)作-值函數(shù)定義為Q(st,a1,…,an),它是由當(dāng)前全局狀態(tài)和所有無人機(jī)聯(lián)合共同決定的。
在仿真過程中,模擬器會(huì)生成固定數(shù)量的無人機(jī)。如果某一架無人機(jī)發(fā)生了碰撞、出界或者到達(dá)終點(diǎn),它將會(huì)被從場(chǎng)景中移除。為了防止訓(xùn)練早期發(fā)生無人機(jī)無限循環(huán)飛行的情況,設(shè)定了每一回合中的最大仿真步數(shù)Tmax,一旦有飛機(jī)總飛行時(shí)間達(dá)到Tmax,則同樣被從場(chǎng)景中移除。當(dāng)所有飛機(jī)從場(chǎng)景中移除后,一個(gè)仿真回合結(jié)束。
圖3 Actor的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.3 Illustration of the Actor neural network architecture
雖然LSTM網(wǎng)絡(luò)結(jié)構(gòu)經(jīng)常被用于處理序列數(shù)據(jù),但是只用到其對(duì)序列輸入相關(guān)信息的存儲(chǔ)能力,沒有考慮時(shí)序相關(guān)性。在每一個(gè)仿真步長(zhǎng)中,除自身外其余所有的智能體狀態(tài)都被輸入到LSTM網(wǎng)絡(luò)中,以距離由遠(yuǎn)到近的順序輸入,這樣可以保證距離最近的智能體在最終獲得的隱藏狀態(tài)中具有最大的影響力。每輸入一個(gè)智能體的狀態(tài),LSTM網(wǎng)絡(luò)都會(huì)生成一個(gè)隱藏狀態(tài),并傳入下一步計(jì)算中。將最后的隱藏狀態(tài)作為一個(gè)固定長(zhǎng)度的、編碼過的全局狀態(tài)提供給決策神經(jīng)網(wǎng)路用于選擇動(dòng)作。
本文中Actor和Critic網(wǎng)絡(luò)具有相似的前端結(jié)構(gòu),他們都有一個(gè)LSTM網(wǎng)絡(luò)處理輸入,有2個(gè)全連接隱層處理信息。但是,Critic網(wǎng)絡(luò)的輸入中不僅包含了全局狀態(tài)信息,還加入了所有智能體的當(dāng)前動(dòng)作信息,進(jìn)一步增強(qiáng)了智能體之間的協(xié)同。如前文所述,Actor神經(jīng)網(wǎng)絡(luò)的作用是擬合為智能體選擇最優(yōu)動(dòng)作的策略函數(shù),由于仿真中動(dòng)作空間是離散的,所以使用Gumbel-Softmax估計(jì)器作為Actor的輸出層[23]。Critic網(wǎng)絡(luò)的輸出層只有一個(gè)神經(jīng)元,用于輸出評(píng)價(jià)值Q。
根據(jù)前文中相關(guān)描述和參數(shù)信息,表1給出了本文使用的強(qiáng)化學(xué)習(xí)方法算法流程。
表1 強(qiáng)化學(xué)習(xí)計(jì)算制導(dǎo)算法流程
在仿真期間,發(fā)生碰撞的次數(shù)將會(huì)被記錄下來,并在每回合仿真最后輸出。當(dāng)模擬器生成了最大數(shù)量為max_num的無人機(jī)后不再生成新的無人機(jī)。需要指出的是,為了提高訓(xùn)練速度,本文使用AdaGrad優(yōu)化器對(duì)LSTM網(wǎng)絡(luò)進(jìn)行更新操作。
為了更好地訓(xùn)練和驗(yàn)證算法的有效性,基于OpenAI的Gym環(huán)境建立了一個(gè)大量飛機(jī)自由飛行的2D模擬器,模擬器中空域范圍為34km×34km。模擬器的輸入為無人機(jī)的聯(lián)合動(dòng)作at,輸出為新的全局狀態(tài)s′t和當(dāng)前即時(shí)回報(bào)Rt。算法根據(jù)全局狀態(tài)中參數(shù)對(duì)的個(gè)數(shù)判斷當(dāng)前環(huán)境中的無人機(jī)數(shù)目。每回合中最大仿真步數(shù)為Tmax=500×max_num。
本文設(shè)置LSTM網(wǎng)絡(luò)的隱層有32個(gè)節(jié)點(diǎn),其輸入數(shù)據(jù)需要正則化,選擇Softsign函數(shù)作為其激活函數(shù)。各網(wǎng)絡(luò)結(jié)構(gòu)中的全連接層均為128個(gè)節(jié)點(diǎn),使用ReLU函數(shù)作為激活函數(shù)。
操作系統(tǒng)環(huán)境為Windows10 x64,使用軟件工具包版本為Python3.7和TensorFlow 2.1.0。硬件信息為Intel i5-9600K、DDR4 16GB和240GB SSD。
為了研究多智能體計(jì)算制導(dǎo)神經(jīng)網(wǎng)絡(luò)的性能,分別設(shè)計(jì)了訓(xùn)練案例和壓力測(cè)試案例。訓(xùn)練案例用來訓(xùn)練并驗(yàn)證文中算法的有效性,而壓力測(cè)試案例則用于檢驗(yàn)訓(xùn)練好的決策神經(jīng)網(wǎng)絡(luò)對(duì)高航路密度場(chǎng)景的適應(yīng)性。下面分別給出了算法在各案例中的仿真結(jié)果。
(1)強(qiáng)化學(xué)習(xí)訓(xùn)練和驗(yàn)證
在此場(chǎng)景中,有6個(gè)出生點(diǎn)均勻分布在正六邊形的各頂點(diǎn)處,相鄰頂點(diǎn)間距為16km。在每個(gè)出生點(diǎn)以60~180s的隨機(jī)時(shí)間間隔生成新的無人機(jī),并以非臨近頂點(diǎn)作為其終點(diǎn)設(shè)定初始航路。圖4(a)是該場(chǎng)景在仿真過程中的截圖。
將訓(xùn)練過程的最大回合數(shù)設(shè)定為10萬次,在每個(gè)回合中生成200架無人機(jī),單回合最大仿真步數(shù)Tmax=105。強(qiáng)化學(xué)習(xí)系統(tǒng)有如下相關(guān)參數(shù):網(wǎng)絡(luò)更新率τ=0.01,折扣因子γ=0.98,最小樣本數(shù)為1000組,M=103,各優(yōu)化器使用默認(rèn)參數(shù),神經(jīng)網(wǎng)絡(luò)的相關(guān)參數(shù)每1000回合存儲(chǔ)1次。
(a)訓(xùn)練場(chǎng)景
環(huán)境累計(jì)回報(bào)值隨訓(xùn)練回合數(shù)變化的曲線如圖5所示。從圖5中可以看出,決策神經(jīng)網(wǎng)絡(luò)在經(jīng)歷了2萬回合訓(xùn)練后才逐漸學(xué)習(xí)到有一定效果的策略,且整體收斂過程較慢。分析其原因,應(yīng)是LSTM網(wǎng)絡(luò)在訓(xùn)練前期難以收斂導(dǎo)致。由于后端決策網(wǎng)絡(luò)輸入了大量依賴LSTM網(wǎng)絡(luò)輸出的隱藏狀態(tài)信息,LSTM網(wǎng)絡(luò)的性能嚴(yán)重限制了算法的整體效果。曲線最終逐漸收斂于回報(bào)值300附近,說明本文算法能夠有效避免航路沖突。
制導(dǎo)決策神經(jīng)網(wǎng)絡(luò)訓(xùn)練完成后,將訓(xùn)練好的ActorD應(yīng)用在每架無人機(jī)上,進(jìn)行1000回合獨(dú)立仿真實(shí)驗(yàn)并統(tǒng)計(jì)發(fā)生碰撞次數(shù)信息。對(duì)飛機(jī)無制導(dǎo)自由飛行場(chǎng)景也進(jìn)行了1000回合獨(dú)立仿真實(shí)驗(yàn),并將取得的結(jié)果作為對(duì)比。表2展示了本文算法的性能,說明提出的算法可以有效降低限定空域內(nèi)多無人機(jī)飛行過程中的碰撞概率。由于初始航向即指向目標(biāo)點(diǎn),自由飛行場(chǎng)景中未發(fā)生碰撞的飛機(jī)全部到達(dá)目標(biāo)點(diǎn)。在使用本文算法的場(chǎng)景中,所有飛機(jī)均到達(dá)目標(biāo)點(diǎn)。統(tǒng)計(jì)了隨機(jī)100回合中每個(gè)仿真步長(zhǎng)內(nèi)空域中無人機(jī)密度信息,并繪制圖6所示直方圖。綜合表2和圖6可以看出,大多數(shù)時(shí)間空域內(nèi)有20~26架飛機(jī)在飛行,最大數(shù)量可達(dá)30架次,本文算法能夠在此航路密度下保證不發(fā)生機(jī)間碰撞,說明其具有較好的性能。
表2 測(cè)試案例碰撞統(tǒng)計(jì)表
圖6 單步長(zhǎng)內(nèi)無人機(jī)數(shù)量統(tǒng)計(jì)Fig.6 Statistical histogram of UAVs in a single step
為了測(cè)試算法的運(yùn)算速度,統(tǒng)計(jì)了隨機(jī)100回合中某一步長(zhǎng)內(nèi)無人機(jī)數(shù)量與計(jì)算時(shí)間的關(guān)系數(shù)據(jù),取均值后繪制成圖7所示曲線。由圖7可以看出,隨著空域內(nèi)無人機(jī)數(shù)量的增加,算法總的計(jì)算時(shí)間也快速增大。當(dāng)空域內(nèi)無人機(jī)數(shù)量不超過22架時(shí),算法運(yùn)算時(shí)間不超過1s,在實(shí)際應(yīng)用中可以接受。后續(xù)可以通過壓縮神經(jīng)網(wǎng)絡(luò)或優(yōu)化決策系統(tǒng)結(jié)構(gòu)來進(jìn)一步提升運(yùn)算速度。
圖7 單步長(zhǎng)內(nèi)計(jì)算時(shí)間隨無人機(jī)數(shù)量變化曲線Fig.7 Computation time with the number of UAVs in a single step
通過觀察模擬器中無人機(jī)飛行路徑發(fā)現(xiàn),隨著訓(xùn)練回合數(shù)的增加,無人機(jī)規(guī)避動(dòng)作數(shù)量大量減少,飛向目標(biāo)點(diǎn)的曲線愈發(fā)平滑。但這一結(jié)果并未得到充分統(tǒng)計(jì)和論證,未來將對(duì)此點(diǎn)進(jìn)行深入研究。
(2)壓力測(cè)試
為進(jìn)一步評(píng)估算法性能,本文設(shè)計(jì)了一個(gè)限定空域內(nèi)多無人機(jī)相遇的壓力測(cè)試場(chǎng)景,此場(chǎng)景有助于研究算法在高航路密度條件下解決碰撞沖突的能力。在壓力測(cè)試場(chǎng)景的每一回合中,產(chǎn)生從10架到50架不等數(shù)量的無人機(jī),隨機(jī)分布在一個(gè)內(nèi)徑為28km、外徑為34km的環(huán)形空域上。限定任意2架飛機(jī)的初始位置最小距離不小于1km。每架飛機(jī)的終點(diǎn)被設(shè)定為空域中的中心對(duì)稱位置,因此所有飛機(jī)的初始航向都必然指向空域中心,以確保他們都存在碰撞可能。圖4(b)展示了在場(chǎng)景中有20架飛機(jī)的仿真過程截圖。
圖8展示了隨著飛機(jī)數(shù)量的增加,本文計(jì)算制導(dǎo)算法在測(cè)試場(chǎng)景中的性能,其中每個(gè)數(shù)據(jù)點(diǎn)表示100個(gè)獨(dú)立回合中統(tǒng)計(jì)結(jié)果的均值。從圖8中可以看出,如果空域內(nèi)飛機(jī)不采取制導(dǎo)措施,60%以上的飛機(jī)將在測(cè)試中發(fā)生碰撞,這一概率隨著飛機(jī)數(shù)目的增長(zhǎng)而逐漸增加。然而在應(yīng)用本文算法的測(cè)試場(chǎng)景中,無人機(jī)的最大碰撞概率不超過10%,在總數(shù)28架以下的場(chǎng)景中可以保證無碰撞發(fā)生。由此表明,即使在高航路密度情況下,本文提出的計(jì)算制導(dǎo)方法也具有良好的適應(yīng)性。
圖8 碰撞概率隨飛機(jī)總數(shù)變化圖Fig.8 Collision probability as the number of UAVs increases
針對(duì)有限空域內(nèi)多固定翼無人機(jī)避碰飛行問題,提出了一種實(shí)時(shí)分布式計(jì)算制導(dǎo)方法。算法分析與實(shí)驗(yàn)結(jié)果表明:
1)提出了一種解決限定空域內(nèi)多飛行器碰撞沖突問題的方法,為未來三維空間制導(dǎo)算法和實(shí)物仿真提供了新的研究思路;
2)基于全局狀態(tài)信息的神經(jīng)網(wǎng)絡(luò)決策方法可以解決多智能體計(jì)算制導(dǎo)問題,能夠有效降低多無人機(jī)在飛行過程中的碰撞概率;
3)基于強(qiáng)化學(xué)習(xí)的計(jì)算制導(dǎo)算法在高航路密度場(chǎng)景下具有良好的性能,能夠有效避免碰撞發(fā)生,對(duì)提高限定空域內(nèi)無人機(jī)容量有一定幫助。
文中算法在仿真過程中僅對(duì)空間進(jìn)行抽象,并未考慮受硬件影響的精確時(shí)間因素;受限于硬件性能致使訓(xùn)練時(shí)間過長(zhǎng),未能對(duì)連續(xù)動(dòng)作空間問題進(jìn)行深入分析。未來需要對(duì)以上兩點(diǎn)展開進(jìn)一步研究。