周雙林,楊 星,b,劉克中,b,熊 勇,b,吳曉烈,劉炯炯,王偉強(qiáng)
(武漢理工大學(xué) a.航運(yùn)學(xué)院; b.內(nèi)河航運(yùn)技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室, 武漢 430063)
隨著海上交通密度的增加和船舶航速的提升,人為制定船舶航行避碰決策正面臨巨大的壓力。[1]調(diào)查顯示,80%的碰撞事故是由船員因素造成的,其中船員未遵守《國際海上避碰規(guī)則》是船舶之間發(fā)生碰撞的主要因素。[2]自主避碰技術(shù)作為保障船舶在海上安全航行的關(guān)鍵技術(shù),其研究受到各國學(xué)者的關(guān)注。ABDALLAH等[3]采用非線性優(yōu)化方法解決兩船避碰問題,并將COLREGS(International Regulations for Preventing Collisions at Sea,COLREGs)作為優(yōu)化算法的約束條件,通過仿真試驗(yàn)驗(yàn)證該避碰算法的有效性;倪生科等[4]基于多種群的遺傳算法進(jìn)行船舶避碰輔助決策研究,通過合理設(shè)置算法的終止條件對(duì)遺產(chǎn)算法的適應(yīng)度函數(shù)進(jìn)行評(píng)價(jià),從而為船舶避碰提供有效的輔助決策;ZHANG等[5]和張金奮等[6]提出一種基于分布式框架的實(shí)時(shí)多船決策支持系統(tǒng),建立讓路船和直航船的行動(dòng)方式和幅度等避碰模型,并將其應(yīng)用于多船避碰;李麗娜等[7-8]結(jié)合避碰規(guī)則和良好船藝,提出一種船舶擬人智能避碰決策方法,通過實(shí)時(shí)處理避碰參數(shù)計(jì)算模型和目標(biāo)交會(huì)特征模型等避碰模型,實(shí)現(xiàn)對(duì)多個(gè)危險(xiǎn)目標(biāo)船舶的避讓;SZLAPCZYNSKI等[9]采用船舶域評(píng)估船舶的碰撞危險(xiǎn),并采用光柵海圖優(yōu)化算法中的搜索策略得到能適用于開闊水域和受限水域的多船避碰方法;沈海青等[10]基于深度競爭Q學(xué)習(xí)和A*算法提出一種無人船智能避碰方法,將COLREGs轉(zhuǎn)化成動(dòng)態(tài)航行限制線,使避碰決策符合COLREGs;于家根等[11-12]分別基于擬態(tài)物理學(xué)優(yōu)化算法和社會(huì)情感優(yōu)化算法對(duì)船舶特定會(huì)遇場景下的轉(zhuǎn)向避碰決策問題進(jìn)行研究。
在船舶自主避碰相關(guān)研究中,仍存在對(duì)COLREGs考慮不夠充分和構(gòu)建復(fù)雜環(huán)境模型時(shí)避碰算法計(jì)算量較大的問題。當(dāng)前人工智能技術(shù)飛速發(fā)展,具有模型簡單、魯棒性強(qiáng)和能自主學(xué)習(xí)適應(yīng)環(huán)境等特點(diǎn),其深度強(qiáng)化學(xué)習(xí)技術(shù)廣泛應(yīng)用于智能避碰和路徑規(guī)劃研究中。本文針對(duì)當(dāng)前自動(dòng)避碰算法存在的不足,結(jié)合船舶航行特性和COLREGs基于深度強(qiáng)化學(xué)習(xí)中的深度Q網(wǎng)絡(luò)(Deep Q Network,DQN)算法,提出一種針對(duì)多種會(huì)遇場景的船舶智能避碰方法,利用深度神經(jīng)網(wǎng)絡(luò)對(duì)智能體進(jìn)行訓(xùn)練,并通過數(shù)值仿真對(duì)兩船會(huì)遇和多船會(huì)遇場景進(jìn)行測試,驗(yàn)證該方法的有效性。
強(qiáng)化學(xué)習(xí)算法理論框架基于馬爾可夫決策過程(Markov Decision Process, MDP),其本質(zhì)是agent與環(huán)境不斷交互實(shí)現(xiàn)學(xué)習(xí)適應(yīng)環(huán)境的過程,通過不斷更新agent行為策略,使其獲得最大累計(jì)獎(jiǎng)勵(lì)Rt。[13]
(1)
式(1)中:γ∈[0,1]為折扣系數(shù),可調(diào)節(jié)未來獎(jiǎng)勵(lì)對(duì)當(dāng)前動(dòng)作的影響;rk為k時(shí)刻獲得的瞬時(shí)獎(jiǎng)勵(lì)。
累計(jì)回報(bào)獎(jiǎng)勵(lì)期望即動(dòng)作值函數(shù)Qπ(s,a)和狀態(tài)值函數(shù)Vπ(s),通常作為評(píng)價(jià)策略π的標(biāo)準(zhǔn),其中:s為agent所處狀態(tài);a為agent采取的動(dòng)作;Qπ(s,a)為agent依據(jù)策略π在處于狀態(tài)s時(shí)采取動(dòng)作a獲得的期望獎(jiǎng)勵(lì)值;Vπ(s)為agent處于s時(shí)采取策略π獲得的期望獎(jiǎng)勵(lì)值。
Qπ(s,a)=Eπ{Rt|st=s,at=a}
(2)
Vπ(s)=Eπ{Rt|st=s}
(3)
強(qiáng)化學(xué)習(xí)的目標(biāo)是得到最優(yōu)動(dòng)作值函數(shù)Q*(s,a)和最優(yōu)狀態(tài)值函數(shù)V*(s),有
(4)
(5)
將式(2)代入式(4),可得Q*(s,a)的迭代形式為
(6)
式(6)中:s′和a′為下一時(shí)刻的狀態(tài)和動(dòng)作,Q*(s,a)滿足Bellman方程。由此可求得最優(yōu)策略函數(shù)π*(s)為
(7)
利用深度神經(jīng)網(wǎng)絡(luò)對(duì)Q*(s,a)進(jìn)行估計(jì),其代價(jià)函數(shù)為
L(θi)=E{(yi-Q(s,a;θi))2}
(8)
式(8)中:θ為深度神經(jīng)網(wǎng)絡(luò)中的參數(shù);i為訓(xùn)練回合數(shù)。
神經(jīng)網(wǎng)絡(luò)優(yōu)化目標(biāo)為
(9)
深度強(qiáng)化學(xué)習(xí)采用記憶回放技術(shù)解決樣本數(shù)據(jù)關(guān)聯(lián)性問題,加速估計(jì)Q*(s,a)的訓(xùn)練過程。
船舶會(huì)遇場景復(fù)雜,避碰行動(dòng)受操縱性和COLREGS的約束,因此選擇具有良好魯棒性的DQN算法構(gòu)建船舶智能避碰模型,該模型的核心工作是合理設(shè)計(jì)MDP中的各個(gè)要素。根據(jù)船舶間實(shí)時(shí)獲取的航行信息,從全局的角度建立包含會(huì)遇環(huán)境信息的狀態(tài)集St,保證輸入神經(jīng)網(wǎng)絡(luò)中船舶航行信息的完整性。船舶避碰行為at主要考慮轉(zhuǎn)向,保證避碰決策的可執(zhí)行性。獎(jiǎng)勵(lì)函數(shù)rt是船舶DQN避碰模型中最核心的部分,是船舶智能避碰決策制定的依據(jù)。當(dāng)不存在碰撞危險(xiǎn)時(shí),船舶在海上通常按規(guī)定航向航行;當(dāng)存在碰撞危險(xiǎn)時(shí),船舶采取的避碰決策既需考慮船舶間避碰過程的安全有效性,又要考慮船舶在避碰過程中是否遵守COLREGs。因此,應(yīng)綜合考慮航向跟隨、船舶碰撞和規(guī)則符合等因素,對(duì)船舶智能避碰模型DQN獎(jiǎng)勵(lì)函數(shù)進(jìn)行設(shè)計(jì)?;贒QN的船舶智能避碰模型框架見圖1。
船舶航行時(shí)衡量本船與周圍船舶危險(xiǎn)度的直接
且重要的標(biāo)準(zhǔn)是兩船在最近會(huì)遇點(diǎn)時(shí)的距離和方位。[14]船舶避碰行動(dòng)通常開始于6 n mile,為提高避碰算法處理本船與周圍船舶會(huì)遇信息的可計(jì)算性,以半徑rencounter=6 n mile作為本船對(duì)周圍環(huán)境感知并記錄的范圍。
1) 為減小計(jì)算量,縮短訓(xùn)練時(shí)間,以12°為1個(gè)單位,將本船可航行范圍分成30個(gè)區(qū)域,每個(gè)區(qū)域的邊界弧長L=2 327.29 m,小于大多數(shù)船舶航行的安全距離,保證在開闊水域中每個(gè)區(qū)域內(nèi)最多有1艘目標(biāo)船。記錄每個(gè)區(qū)域中目標(biāo)船到本船的距離d0,沒有目標(biāo)船的區(qū)域記錄di=rencounter=6,并以距離值作為強(qiáng)化學(xué)習(xí)的狀態(tài)因數(shù)之一,有
xt=[dt,1,dt,2,…,dt,30]
(10)
2) 為量化兩船會(huì)遇的緊迫程度,引入最近會(huì)遇時(shí)間(Time to Closest Point of Approaching,tCPA)和最近會(huì)遇距離(Distance of Closest Point of Approaching,dCPA)作為指標(biāo),該狀態(tài)因數(shù)為
Tt=[TCPA1,Tt,CPA2,…,Tt,CPA30],
dt=[dt,CPA1,dt,CPA2,…,dt,CPA30]
(11)
將本船相對(duì)目標(biāo)船的方位作為狀態(tài)因數(shù)之一,有
θt=[θt,1,θt,2,…,θt,30]
(12)
綜上,強(qiáng)化學(xué)習(xí)的狀態(tài)集為
(13)
頻繁改變船舶航速易對(duì)主機(jī)造成損害,且花費(fèi)的時(shí)間較長,為保證算法輸出的避碰決策具有良好的可操作性,系統(tǒng)動(dòng)作集選擇航向變化量,本船進(jìn)行避碰行為采取的轉(zhuǎn)向角度設(shè)計(jì)為:A={-Δψ,0,Δψ},左轉(zhuǎn)為負(fù),右轉(zhuǎn)為正,Δψ>0,其中Δψ可根據(jù)實(shí)際船舶操作特性進(jìn)行合理設(shè)置。
船舶智能避碰深度強(qiáng)化學(xué)習(xí)算法中的獎(jiǎng)勵(lì)函數(shù)是船舶智能避碰決策制定的依據(jù)。當(dāng)船舶不存在碰撞危險(xiǎn)時(shí),本船應(yīng)按預(yù)先規(guī)定航向航行;當(dāng)船舶存在碰撞危險(xiǎn)時(shí),本船應(yīng)采取合理的避碰決策,其執(zhí)行的避碰行動(dòng)既要考慮船舶間避碰過程的安全有效性,又要考慮船舶在避碰過程中是否遵守COLREGS。
2.3.1航向保持獎(jiǎng)勵(lì)函數(shù)
當(dāng)本船周圍不存在需要避讓的目標(biāo)船時(shí),應(yīng)按照預(yù)先規(guī)定的航向航行。觀察本船每一時(shí)刻的航向,并將其與規(guī)定的航向相比較,計(jì)算其偏差。當(dāng)偏差值大于可接受的最大誤差時(shí),認(rèn)為此時(shí)的狀態(tài)處于偏離航向狀態(tài),需對(duì)其進(jìn)行懲罰。因此,設(shè)計(jì)航向保持獎(jiǎng)勵(lì)函數(shù)為
(14)
式(14)中:Δφe為此時(shí)本船航向與規(guī)定航向之間的偏差;Δφe,max為可接受的最大航向偏差值;-rcf為航向偏差的懲罰值。
2.3.2避碰獎(jiǎng)勵(lì)函數(shù)
當(dāng)存在碰撞危險(xiǎn)時(shí),本船應(yīng)采取避碰決策,始終與周圍船舶保持安全的物理距離,對(duì)船舶間距離小于安全會(huì)遇距離(Safe Distance of Approach,SDA)的狀態(tài)給予懲罰。[14]因此,設(shè)計(jì)避碰獎(jiǎng)勵(lì)函數(shù)為
(15)
式(15)中:Pt,0為本船在t時(shí)刻的位置;Pt,Ti為目標(biāo)船i在t時(shí)刻的位置;SDA為兩船間的安全會(huì)遇距離;-rcollision為發(fā)生碰撞的懲罰值。
2.3.3遵守規(guī)則獎(jiǎng)勵(lì)函數(shù)
船舶避碰過程除保證避讓的安全有效性外,還要考慮避讓過程是否遵守COLREGs。通過對(duì)該規(guī)則進(jìn)行解讀分析,量化部分要求,設(shè)計(jì)針對(duì)避碰決策是否符合規(guī)則的獎(jiǎng)勵(lì)函數(shù)。分析每一時(shí)刻輸入到強(qiáng)化學(xué)習(xí)系統(tǒng)中的狀態(tài)信息,通過對(duì)局面和階段進(jìn)行判斷,確定船舶責(zé)任和會(huì)遇態(tài)勢(shì),分別針對(duì)不同情況逐一設(shè)計(jì)對(duì)應(yīng)的獎(jiǎng)勵(lì)函數(shù),在訓(xùn)練時(shí)視不同情況對(duì)獎(jiǎng)勵(lì)函數(shù)進(jìn)行調(diào)用。
2.3.3.1 直航船
COLREGs第17條規(guī)定:兩船中的一艘船應(yīng)給另一艘船讓路時(shí),另一艘船應(yīng)保持航向和航速。[15]當(dāng)本船判定為直航船時(shí),應(yīng)對(duì)其采取變向的行為進(jìn)行懲罰,設(shè)計(jì)直航船獎(jiǎng)勵(lì)函數(shù)為
(16)
式(16)中:Δφ為本船作為直航船時(shí)航向改變量;Δφmax為直航船可接受的最大航向改變量;-rcourse為直航船采取變向行為的懲罰值。
2.3.3.2 讓路船
COLREGs第16條規(guī)定:須給他船讓路的船舶,應(yīng)盡可能及早地采取大幅度的行動(dòng),寬裕地讓清他船。[15]因此,當(dāng)檢測到存在碰撞危險(xiǎn)且判定本船為讓路船時(shí),本船應(yīng)及早地采取避碰行動(dòng),對(duì)遲緩的動(dòng)作進(jìn)行懲罰。設(shè)計(jì)讓路船及早行動(dòng)獎(jiǎng)勵(lì)函數(shù)為
(17)
式(17)中:φtdetect為檢測到危險(xiǎn)時(shí)刻的本船航向;φtdetect-1為檢測到危險(xiǎn)上一時(shí)刻的航向;Δt為檢測到發(fā)生危險(xiǎn)的時(shí)刻與采取動(dòng)作的時(shí)刻之間的差值;-rsoon為對(duì)應(yīng)的懲罰值。
根據(jù)COLREGs要求,讓路船應(yīng)該寬裕地讓清他船。因此,定義本船最近會(huì)遇距離的預(yù)警范圍dpre和發(fā)生碰撞的物理距離dcol見圖2。[16]當(dāng)船舶會(huì)遇時(shí),計(jì)算船舶間的最近會(huì)遇距離dCPA,通過判斷dCPA是否小于各閾值來判斷船舶間是否存在碰撞危險(xiǎn),進(jìn)而判斷避讓行動(dòng)是否寬裕。預(yù)警范圍dpre和物理距離dcol與船舶尺度、船舶運(yùn)動(dòng)特性和船舶操縱性等相關(guān),各船舶可根據(jù)自身屬性設(shè)定不同的dCPA閾值dpre和dcol,設(shè)計(jì)寬裕獎(jiǎng)勵(lì)函數(shù)Rwide為
(18)
綜上,讓路船獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)為
Rgive-way=Rsoon+Rwide
(19)
考慮本船同時(shí)與多船形成復(fù)雜會(huì)遇場景的情況,判斷本船為讓路船或直航船的依據(jù)見式(20)。若相對(duì)其中至少1艘目標(biāo)船本船判斷為讓路船,則認(rèn)為本船需采取避讓行動(dòng),即本船為讓路船;若相對(duì)所有目標(biāo)船本船判斷為直航船,則本船為直航船。
(20)
式(20)中:fi為本船相對(duì)第i條目標(biāo)船的船舶責(zé)任;f為本船同時(shí)應(yīng)對(duì)多船會(huì)遇時(shí)的船舶責(zé)任。
2.3.3.3 對(duì)遇局面
根據(jù)COLREGs第十四條的要求,當(dāng)2艘機(jī)動(dòng)船在相反的或接近相反的航向上相遇致有構(gòu)成碰撞危險(xiǎn)時(shí),應(yīng)各向右轉(zhuǎn)向從他船的左舷駛過。[16]兩船處于對(duì)遇局面時(shí),本船應(yīng)采取轉(zhuǎn)向動(dòng)作,保證兩船在最近會(huì)遇點(diǎn)時(shí)本船處于他船左舷位置,即本船相對(duì)他船的相對(duì)方位角θcpa為180°~360°,對(duì)該狀態(tài)給予獎(jiǎng)勵(lì)。因此,設(shè)計(jì)對(duì)遇局面下的獎(jiǎng)勵(lì)函數(shù)如式(21)所示,其函數(shù)示意見圖3。
(21)
式(21)中:rhead-on為對(duì)遇局面獎(jiǎng)勵(lì)值系數(shù)。
圖2 船舶周圍預(yù)警范圍示意圖3 對(duì)遇局面獎(jiǎng)勵(lì)函數(shù)
2.3.3.4 交叉讓路局面
根據(jù)COLREGs第15條的要求,當(dāng)2艘機(jī)動(dòng)船交叉相遇,并構(gòu)成碰撞危險(xiǎn)時(shí),有他船在本船右舷的船舶應(yīng)給他船讓路,且應(yīng)避免橫越他船的前方。[16]在交叉讓路局面下,本船應(yīng)從他船艉部經(jīng)過,因此定義相對(duì)方位閾值θε=[90°,270°],通過判斷在最近會(huì)遇點(diǎn)時(shí)本船相對(duì)他船的相對(duì)方位θcpa是否屬于θε來判斷本船是否橫越他船的前方,設(shè)計(jì)交叉讓路局面獎(jiǎng)勵(lì)函數(shù)Rcross為
(22)
式(22)中:rcross為交叉讓路局面獎(jiǎng)勵(lì)值系數(shù)。通過對(duì)局面和階段進(jìn)行判斷確定本船的責(zé)任和會(huì)遇態(tài)勢(shì),訓(xùn)練時(shí)視不同情況對(duì)獎(jiǎng)勵(lì)函數(shù)進(jìn)行調(diào)用。處于各局面與責(zé)任下本船調(diào)用獎(jiǎng)勵(lì)函數(shù)具體情況為:對(duì)遇局面Rhead-on+Rgive-way;交叉讓路局面Rcross+Rgive-way;追越局面Rgive-way;交叉直航局面Rstand-on;被追越局面Rstand-on。
船舶避碰深度強(qiáng)化學(xué)習(xí)過程是DQN算法中神經(jīng)網(wǎng)絡(luò)收斂的過程,將本船的航行狀態(tài)集作為神經(jīng)網(wǎng)絡(luò)輸入數(shù)據(jù),初始給定一個(gè)避讓策略求出值函數(shù),并利用值函數(shù)更新避碰策略,如此循環(huán)即可訓(xùn)練出收斂的最優(yōu)避碰策略。完整算法步驟如下:
Input:rt={Rgive-way,Rstand-on,Rhead-on,Rcross} %輸入船舶可調(diào)用獎(jiǎng)勵(lì)函數(shù)集
Input:at%輸入動(dòng)作集1. Initialize replay memoryDto capacityN
2. Initialize action-value function Q with random weights
3. for episode = 1;Mdo
4. Initialize sequences1={x1} and preprocessed sequencedφ1=
φ(s1)
5. fort=1,Tdo
6. With probability ∈ select a random actionat
8. Execute actionatin emulator and observe rewardrtand imagex(t+1)
9. Setst+1=st,at,xt+1and preprocessφt+1=φ(st+1)
10. Store transition (φt,at,rt,φt+1) inD
11. Sample random minibatch of transitions
(φj,aj,rj,φj+1) fromD
13. Perform a gradient descent step on (yj-Q(φj,aj;θ))2
14. end for
15. end for
基于TensorFlow深度學(xué)習(xí)框架編程實(shí)現(xiàn)提出的避碰算法。訓(xùn)練開始時(shí)設(shè)置1艘用于訓(xùn)練的本船agent,并設(shè)置其初始位置、航速、航向、dpre(1.5 n mile)和dcol(0.5 n mile)等參數(shù)。[14]根據(jù)訓(xùn)練場景的要求增加一定數(shù)量長寬與agent相同的目標(biāo)船,針對(duì)不同會(huì)遇場景設(shè)置目標(biāo)船的初始位置、航向和航速等參數(shù),目標(biāo)船航行時(shí)具備自主航行能力,用以模擬多種會(huì)遇場景的情形。
設(shè)置DQN算法的相關(guān)參數(shù)如下:記憶回放池的大小為2 000;批量數(shù)據(jù)集的大小為500;最大訓(xùn)練回合為10 000;學(xué)習(xí)率γ=0.99;獎(jiǎng)勵(lì)折扣系數(shù)ε為0.9;設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為[120,128,128,3],即1個(gè)輸入層、2個(gè)隱藏層和1個(gè)輸出層,輸入層包含120個(gè)節(jié)點(diǎn),輸入為船舶智能避碰深度強(qiáng)化學(xué)習(xí)算法中的狀態(tài)集數(shù)據(jù);每個(gè)隱藏層都有128個(gè)節(jié)點(diǎn),隱藏層節(jié)點(diǎn)的激活函數(shù)選擇ReLU非線性激活函數(shù);輸出為動(dòng)作集中對(duì)應(yīng)3個(gè)動(dòng)作的動(dòng)作值;層與層之間的節(jié)點(diǎn)全連接;采用Adam優(yōu)化算法進(jìn)行訓(xùn)練,得到基于深度強(qiáng)化學(xué)習(xí)的船舶智能避碰模型。
為驗(yàn)證提出的避碰算法在兩船會(huì)遇局面下能使船舶在COLREGs的要求下有效避讓來船,分別對(duì)不同會(huì)遇局面進(jìn)行仿真驗(yàn)證。
3.1.1對(duì)遇局面
兩船的初始參數(shù)設(shè)置見表1,仿真的船舶航行軌跡和兩船距離隨時(shí)間的變化曲線分別見圖4和圖5。由圖4和圖5可知,本船按照COLREGs的要求向右轉(zhuǎn)向?qū)崿F(xiàn)與目標(biāo)船左對(duì)左安全通過,并在駛過讓清后恢復(fù)原航向,整個(gè)避碰過程安全有效。
表1 對(duì)遇局面的船舶初始參數(shù)設(shè)置
圖4 對(duì)遇局面中兩船的航行軌跡圖5 對(duì)遇局面中兩船距離隨時(shí)間變化曲線
3.1.2交叉相遇局面
兩船的初始參數(shù)設(shè)置見表2,仿真的船舶航行軌跡和兩船距離隨時(shí)間的變化曲線分別見圖6和圖7。由圖6和圖7可知:本船按照COLREGs要求向右轉(zhuǎn)向,并從目標(biāo)船的艉部駛過,實(shí)現(xiàn)對(duì)目標(biāo)船的避讓。
表2 交叉相遇局面的船舶初始參數(shù)設(shè)置
圖6 交叉相遇局面中兩船的航行軌跡圖7 兩船距離隨時(shí)間變化曲線
3.1.3追越局面
兩船的初始參數(shù)設(shè)置見表3,仿真的船舶航行軌跡和兩船距離隨時(shí)間的變化曲線分別見圖8和圖9。由圖8和圖9可知:本船追越他船局面中本船按照COLREGs在目標(biāo)船的右舷作為讓路船從目標(biāo)船的艉部通過,被追越目標(biāo)船作為直航船保持原來的航行狀態(tài)繼續(xù)航行。
作為船舶避碰研究中的重要內(nèi)容之一,多船避碰中各船面臨的會(huì)遇場景比兩船會(huì)遇局面更復(fù)雜。為驗(yàn)證提出的避碰算法可使本船在應(yīng)對(duì)復(fù)雜會(huì)遇場景時(shí)具備自主避碰能力,進(jìn)一步進(jìn)行多船避碰仿真試驗(yàn)。
表3 交叉相遇局面的船舶初始參數(shù)設(shè)置
圖8 追越局面中兩船的航行軌跡 圖9 兩船距離隨時(shí)間的變化曲線
3.2.1多船會(huì)遇初始參數(shù)設(shè)置
以3艘船舶會(huì)遇場景為例進(jìn)行多船避碰測試,船舶初始參數(shù)設(shè)置見表4。
表4 多船會(huì)遇場景船舶初始參數(shù)設(shè)置
3.2.2多船避碰仿真驗(yàn)證結(jié)果分析
多船會(huì)遇仿真試驗(yàn)中的單次訓(xùn)練回合累計(jì)獎(jiǎng)勵(lì)函數(shù)值的變化曲線和船舶航行軌跡分別見圖10和圖11。由圖10可知:隨著訓(xùn)練回合數(shù)的增加,DQN算法中的累計(jì)獎(jiǎng)勵(lì)函數(shù)值逐漸增大,算法在不斷地學(xué)習(xí)。通過足夠次數(shù)的訓(xùn)練學(xué)習(xí)后,可得到符合COLREGs的深度強(qiáng)化學(xué)習(xí)多船避碰模型。由圖11可知:本船一開始與目標(biāo)船1形成碰撞危險(xiǎn),因此本船采取向右轉(zhuǎn)向?qū)δ繕?biāo)船1進(jìn)行避讓,在轉(zhuǎn)向過程中為避免與目標(biāo)船2形成新的危險(xiǎn),本船進(jìn)行左轉(zhuǎn)向,實(shí)現(xiàn)對(duì)目標(biāo)船2的避讓并恢復(fù)航向,最終形成的多船避讓過程如圖11所示。
多船會(huì)遇場景中各船舶間距離隨時(shí)間變化曲線見圖12,其中OS-TS1、OS-TS2和TS1-TS2分為本船與目標(biāo)船1、本船與目標(biāo)船2、目標(biāo)船1與目標(biāo)船2之間的距離隨時(shí)間的變化曲線。由圖12可知:各船舶間的距離始終保持在安全會(huì)遇距離之外。
圖10 單次訓(xùn)練回合累計(jì)獎(jiǎng)勵(lì)函數(shù)值的變化曲線圖11 多船會(huì)遇場景中的船舶航行軌跡
圖12 多船會(huì)遇場景中各船舶間距離隨時(shí)間變化曲線
針對(duì)船舶自主避碰問題,在對(duì)COLREGs充分理解的基礎(chǔ)上,基于深度強(qiáng)化學(xué)習(xí)技術(shù)能自主學(xué)習(xí)適應(yīng)環(huán)境的特點(diǎn),提出一種COLREGs約束下的船舶DQN避碰算法,通過分析船舶避碰影響因素,設(shè)計(jì)船舶智能避碰DQN模型。將本船視為智能體,根據(jù)船舶間實(shí)時(shí)獲取的航行信息設(shè)計(jì)準(zhǔn)確描述船舶避讓過程的狀態(tài)集和動(dòng)作集,保證輸入神經(jīng)網(wǎng)絡(luò)中船舶航行信息的完整性和可計(jì)算性;結(jié)合船舶避讓決策制定中對(duì)安全性和遵守COLREGs的要求,設(shè)計(jì)考慮航向跟隨、船舶碰撞和規(guī)則符合等要素的獎(jiǎng)勵(lì)函數(shù);利用深度神經(jīng)網(wǎng)絡(luò)對(duì)智能體進(jìn)行訓(xùn)練,并采用Adam優(yōu)化算法提高訓(xùn)練速度。通過多種會(huì)遇場景的數(shù)值仿真試驗(yàn)驗(yàn)證了該算法的有效性。目前,針對(duì)兩船通過溝通繞開規(guī)則進(jìn)行協(xié)同避讓的情況暫未考慮,今后可就平衡嚴(yán)格遵守COLREGs與船舶協(xié)商避讓開展進(jìn)一步的研究,同時(shí)通過增加會(huì)遇船舶數(shù)量和會(huì)遇場景復(fù)雜度來優(yōu)化算法。