摘" 要: 針對(duì)圖書(shū)智能分揀系統(tǒng)中的分揀車(chē)路徑規(guī)劃問(wèn)題,提出一種基于深度強(qiáng)化學(xué)習(xí)框架和競(jìng)爭(zhēng)雙深度Q網(wǎng)絡(luò)路徑規(guī)劃算法。將分揀車(chē)的路徑規(guī)劃問(wèn)題構(gòu)建成馬爾可夫決策過(guò)程,然后通過(guò)結(jié)合競(jìng)爭(zhēng)Q網(wǎng)絡(luò)和雙深度Q網(wǎng)絡(luò)構(gòu)建競(jìng)爭(zhēng)雙深度Q網(wǎng)絡(luò)(D3QN),進(jìn)而在避免過(guò)估計(jì)的同時(shí),優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)。最后,通過(guò)設(shè)計(jì)智能代理的狀態(tài)、動(dòng)作和獎(jiǎng)勵(lì)函數(shù),并采用動(dòng)態(tài)[ε?]貪婪算法和衰減式學(xué)習(xí)率策略,使智能代理能夠快速地選擇最優(yōu)動(dòng)作,縮短完成預(yù)定卸載的移動(dòng)路徑,降低碰撞障礙物的概率。仿真結(jié)果表明,相比于基于競(jìng)爭(zhēng)Q網(wǎng)絡(luò)、雙深度Q網(wǎng)絡(luò)和深度Q網(wǎng)絡(luò)的路徑規(guī)劃算法,提出的基于D3QN方法所規(guī)劃的路徑更短、碰撞率更低。
關(guān)鍵詞: 自動(dòng)分揀; 機(jī)器人; 路徑規(guī)劃; 深度強(qiáng)化學(xué)習(xí); 競(jìng)爭(zhēng)雙深度Q網(wǎng)絡(luò); 馬爾可夫決策
中圖分類(lèi)號(hào): TN929.5?34" " " " " " " " " " " " "文獻(xiàn)標(biāo)識(shí)碼: A" " " " " " " " " " " " 文章編號(hào): 1004?373X(2024)19?0161?08
Book sorting vehicle′ path planning based on deep reinforcement learning
CHEN Yue
(Library, Jianghan University, Wuhan 430056, China)
Abstract: In view of the problem of the sorting vehicle path planning in the intelligent sorting system for books, a path planning algorithm based on the deep reinforcement learning (DRL) framework and dueling double deep Q?network (D3QN) is proposed. The path planning issue is formalized as a Markov decision process (MDP). Then, by combing the dueling Q?network and double deep Q?network, a dueling double deep Q?network (D3QN) is designed to optimize the network structure while avoiding overestimation. By designing the state, action and reward function of the intelligent agent, and adopting the dynamic [ε?]greedy algorithm and the attenuating learning rate strategy, the intelligent agent can select the optimal action rapidly, shorten the moving path which is used to complete the scheduled unloading, and reduce the probability of collision with obstacles. The simulation results show that the proposed D3QN?based path planning algorithm can shorten the path and reduce the probability of collision in comparison with the existing path planning algorithms which are based on dueling Q?network, double deep Q?network and deep Q?network.
Keywords: automatic sorting; robot; path planning; DRL; D3QN; Markov decision
0" 引" 言
圖書(shū)館是文化建設(shè)的重要承載者,也是市民讀者朋友們經(jīng)常光顧的場(chǎng)所之一,館內(nèi)人流量隨之逐步增長(zhǎng)[1],與此同時(shí),圖書(shū)館內(nèi)部的書(shū)籍借閱后圖書(shū)的分揀和搬運(yùn)面臨諸多挑戰(zhàn)。例如,當(dāng)讀者歸還圖書(shū)時(shí)不能及時(shí)分類(lèi)、分揀、歸類(lèi)上架,從而影響到后面借閱該書(shū)的讀者,長(zhǎng)久以來(lái),此現(xiàn)象嚴(yán)重影響到讀者的借閱體驗(yàn)。
書(shū)籍分揀和搬運(yùn)向來(lái)是圖書(shū)館管理工作中最耗費(fèi)人力與物力的部分。為了更好地實(shí)現(xiàn)圖書(shū)分揀和搬運(yùn),圖書(shū)分揀方案也在逐步優(yōu)化改善。起初傳統(tǒng)的圖書(shū)分揀都是由人工進(jìn)行的,需要大量的人力支持,館藏越大,人工成本越高,但即使工作人員非常仔細(xì)的核對(duì),長(zhǎng)時(shí)間也無(wú)法避免疏漏。
隨著科技的發(fā)展,自動(dòng)化搭配RFID形式逐漸進(jìn)入了圖書(shū)館領(lǐng)域,頂升分揀、斜擺輪分揀設(shè)備的出現(xiàn)幫助了館方在有限的人力資源條件下,相對(duì)提高了館員分揀效率以及圖書(shū)分揀精度,但其分揀過(guò)程的噪音比較大,占地面積大,無(wú)法和讀者互動(dòng),并不能滿足很多大館的需求。伴隨著人工智能的發(fā)展,搬運(yùn)機(jī)器人出現(xiàn),實(shí)現(xiàn)了館藏分揀、運(yùn)輸、低噪音、高科技展示、讀者互動(dòng)等功能。
圖書(shū)分揀車(chē)是智慧圖書(shū)館的常用機(jī)器人設(shè)備(以下簡(jiǎn)稱(chēng)機(jī)器人)[2]。機(jī)器人需將書(shū)籍運(yùn)送到指定的目的地,進(jìn)而完成書(shū)籍的搬運(yùn)任務(wù)。然而,圖書(shū)館內(nèi)屬于室內(nèi)環(huán)境,既有行走的閱讀人員,也有固定的書(shū)架、桌子等障礙物,這給機(jī)器人的移動(dòng)增加了難度。而在復(fù)雜環(huán)境下進(jìn)行良好的路徑規(guī)劃是機(jī)器人完成圖書(shū)卸載的基礎(chǔ)前提。因此,機(jī)器人如何規(guī)劃路徑成為基于機(jī)器人應(yīng)用的關(guān)鍵技術(shù)。
通常,機(jī)器人自身搭載一些傳感設(shè)備,如激光雷達(dá)傳感器,利用這些傳感設(shè)備感測(cè)周?chē)系K物,進(jìn)而改變移動(dòng)方向。在日常的機(jī)器人應(yīng)用中,機(jī)器人一般采取勻速移動(dòng),只通過(guò)改變移動(dòng)方向避開(kāi)障礙物,實(shí)現(xiàn)自主導(dǎo)航。
針對(duì)機(jī)器人的路徑規(guī)劃問(wèn)題,研究人員提出不同的方案。例如,文獻(xiàn)[3]提出基于A*算法的路徑規(guī)劃方案。該方案先將移動(dòng)環(huán)境分割成網(wǎng)格,再利用網(wǎng)格規(guī)劃?rùn)C(jī)器人的路徑。但是該方案是針對(duì)已知環(huán)境,不適用于人流穿梭的動(dòng)態(tài)圖書(shū)館環(huán)境。文獻(xiàn)[4]提出基于遺傳算法的路徑規(guī)劃方案。利用遺傳算法搜索最優(yōu)路徑,但是該算法需要對(duì)狀態(tài)空間編碼,不太適用于圖書(shū)館的復(fù)雜環(huán)境。文獻(xiàn)[5]提出基于聯(lián)合粒子群優(yōu)化和蝙蝠算法的路徑規(guī)劃方案。該方案通過(guò)粒子群優(yōu)化和蝙蝠算法生成機(jī)器人的移動(dòng)駐點(diǎn),避開(kāi)障礙物,生成無(wú)碰撞的移動(dòng)路徑。此外,文獻(xiàn)[6]提出聯(lián)合粒子群優(yōu)化和灰狼優(yōu)化器規(guī)劃?rùn)C(jī)器人移動(dòng)路徑。將路徑規(guī)劃問(wèn)題構(gòu)建成一個(gè)優(yōu)化問(wèn)題,再利用粒子群優(yōu)化和灰狼優(yōu)化器求解,得到避免障礙物的解。
上述研究工作是通過(guò)智能仿生算法規(guī)劃?rùn)C(jī)器人的移動(dòng)路徑,可實(shí)現(xiàn)自主導(dǎo)航。但基于智能仿生算法的路徑規(guī)劃算法存在一些不足。首先,這些算法應(yīng)對(duì)未知環(huán)境或者突發(fā)情況的能力不足,在未知環(huán)境下的路徑規(guī)劃性能不理想;其次,智能仿生算法的搜索能力取決于算法參數(shù)。若參數(shù)取值不合理,則容易使算法陷入局部最優(yōu)[7]。
相對(duì)而言,深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning, DRL)具有較強(qiáng)的學(xué)習(xí)環(huán)境能力,處理未知環(huán)境的能力較強(qiáng)。智能體通過(guò)不斷的嘗試和試錯(cuò),感知環(huán)境,產(chǎn)生最優(yōu)的決策。文獻(xiàn)[8]提出基于深度Q網(wǎng)絡(luò)的多智能體深度強(qiáng)化學(xué)習(xí)規(guī)劃方法。該方法采用競(jìng)爭(zhēng)Q網(wǎng)絡(luò)(Dueling Q?network)優(yōu)化機(jī)制,估計(jì)狀態(tài)值和優(yōu)勢(shì)函數(shù)值,進(jìn)而產(chǎn)生最優(yōu)動(dòng)作。文獻(xiàn)[9]提出基于Q?learning的路徑規(guī)劃算法。通過(guò)存儲(chǔ)每個(gè)動(dòng)作下的[Q]值,再選擇具有最大[Q]值的動(dòng)作。然而,Q?learning算法需要[Q]表存儲(chǔ)[Q]值。若狀態(tài)環(huán)境較大,需要較大的[Q]表存儲(chǔ)[Q]值,增加了對(duì)內(nèi)存需求。同時(shí),查詢(xún)時(shí)間也隨[Q]表尺寸增加而提升。
受上述工作啟發(fā),提出基于競(jìng)爭(zhēng)雙深度Q網(wǎng)絡(luò)的機(jī)器人路徑規(guī)劃算法。將機(jī)器人的移動(dòng)路徑構(gòu)建成一個(gè)馬爾可夫決策過(guò)程(Markov Decision Process, MDP)。再利用競(jìng)爭(zhēng)雙深度Q網(wǎng)絡(luò)(Dueling Double Deep Q?Network, D3QN)求解,得到最優(yōu)的動(dòng)作,進(jìn)而縮短移動(dòng)路徑,降低更改方向的次數(shù)。此外,通過(guò)采用衰減式學(xué)習(xí)率和探索因子機(jī)制,提升算法的收斂速度,提高平均獎(jiǎng)勵(lì)。仿真結(jié)果表明,提出的D3QN算法提升了規(guī)劃路徑的效率,有效避開(kāi)了障礙物。
1" 系統(tǒng)模型
考慮如圖1所示的系統(tǒng)模型,其為一個(gè)室內(nèi)的閱讀室。室內(nèi)有書(shū)柜、行人、桌子和沙發(fā)等物體。其中行人是可移動(dòng)的,其他物體是固定的。圖中有8個(gè)書(shū)籍卸載點(diǎn),搬運(yùn)機(jī)器人(機(jī)器人)將書(shū)運(yùn)輸?shù)竭@些卸載點(diǎn)。不失一般性,設(shè)定以下假定條件:
1) 機(jī)器人以固定速率移動(dòng),但可調(diào)整移動(dòng)方向。
2) 當(dāng)機(jī)器人移動(dòng)至離卸載點(diǎn)0.2 m時(shí),就會(huì)停止5 s,用于卸載書(shū)籍。5 s后,再移動(dòng)到下一個(gè)卸載點(diǎn)。
3) 若機(jī)器人的充電量低于5%,它就中止此次書(shū)籍卸載任務(wù)。移動(dòng)到充電樁進(jìn)行充電,充滿電后,再繼續(xù)執(zhí)行任務(wù)。
4) 卸載點(diǎn)的位置為已知信息。機(jī)器人在執(zhí)行卸載任務(wù)之前,先將這些位置信息載入機(jī)器人。
5) 機(jī)器人自身搭載了激光雷達(dá)傳感器,通過(guò)此傳感器感測(cè)環(huán)境信息。
令[P=pi1≤i≤N]表示卸載點(diǎn)位置集,其中,[pi]表示第[i]個(gè)卸載點(diǎn)的位置。機(jī)器人需要遍布每個(gè)卸載點(diǎn),并卸下該位置點(diǎn)的書(shū)籍,為了簡(jiǎn)化任務(wù),假定在每個(gè)卸載點(diǎn)卸載一本書(shū)。
2" 基于D3QN的移動(dòng)機(jī)器人的路徑規(guī)劃算法
2.1" 馬爾可夫決策過(guò)程
將移動(dòng)機(jī)器人的路徑規(guī)劃過(guò)程表述成馬爾可夫決策過(guò)程(MDP)。MDP是求解隨機(jī)動(dòng)態(tài)系統(tǒng)中最優(yōu)決策的有效方法。用一個(gè)三元組[S, A, R]表示MDP,其中,[S]表示智能體所有可能狀態(tài)組成的狀態(tài)空間;[A]表示智能體所有可能采取的動(dòng)作集合;[R]表示獎(jiǎng)勵(lì)函數(shù)。
2.1.1" 狀態(tài)空間設(shè)計(jì)
狀態(tài)空間是智能體在執(zhí)行動(dòng)作前所面對(duì)的環(huán)境狀況。機(jī)器人在完成卸載任務(wù)期間,通過(guò)激光雷達(dá)傳感器感測(cè)周?chē)h(huán)境,檢查是否有障礙物阻礙機(jī)器人的移動(dòng)[10]。為此,令[se,t]表示機(jī)器人在[t]時(shí)刻感測(cè)狀態(tài)矢量,其定義如式(1)所示:
[se,t=fi,t,di,tT," " "i=1,2,…,12] (1)
式中:[fi,t]為布爾變量,其表示機(jī)器人在時(shí)刻[t]是否感知到障礙物,若感知到障礙物,則[fi,t=1],反之,[fi,t=0];[di,t]表示激光雷達(dá)傳感器探測(cè)后返回的距離,如圖2a)所示,下標(biāo)[i]表示激光雷達(dá)傳感器的第[i]根射線。本文采用12根射線,相鄰兩根射線間的夾角為[π6],如圖2所示。
除了考慮感測(cè)狀態(tài)矢量,還需考慮到機(jī)器人的自身狀態(tài)信息。自身狀態(tài)信息包括機(jī)器人的水平位置、卸載點(diǎn)的水平位置、離目標(biāo)卸載點(diǎn)的距離(以下簡(jiǎn)稱(chēng)目標(biāo)距離)和機(jī)器人的移動(dòng)方向。具體而言,用[sm,t]表示機(jī)器人在[t]時(shí)刻自身狀態(tài)矢量,其定義如式(2)所示:
[sm,t=xt,yt,xt,yt,d,φ, β,ET] (2)
式中:[xt,yt]、[xt,yt]分別表示機(jī)器人、卸載點(diǎn)的水平位置;[d]表示目標(biāo)距離;[φ]表示機(jī)器人的移動(dòng)方向與橫軸正半軸的夾角(第一視角),且[φ∈0,2π];[β]表示機(jī)器人的移動(dòng)方向與機(jī)器人到目標(biāo)卸載點(diǎn)連線間的夾角,且[β∈0,2π],如圖2b)所示;[E]表示機(jī)器人的電量。
最后,將包含自身狀態(tài)和感測(cè)狀態(tài)矢量定義為智能體的狀態(tài),如式(3)所示:
[st=se,t,sm,t] (3)
式中[st]表示在時(shí)刻[t]的狀態(tài)。
2.1.2" 動(dòng)作空間設(shè)計(jì)
機(jī)器人在執(zhí)行任務(wù)期間,若頻繁變換移動(dòng)速度,則能量消耗速度提升,并且也可能對(duì)機(jī)器人的發(fā)動(dòng)機(jī)造成損傷。為此,機(jī)器人在行駛過(guò)程中保持勻速行駛,只通過(guò)變換移動(dòng)方向避開(kāi)障礙物[11]。因此,機(jī)器人的動(dòng)作空間就是機(jī)器人移動(dòng)方向的變化量[Δφ∈-π2,π2]。
令[at]表示智能體在時(shí)刻[t]的動(dòng)作,其定義如式(4)所示:
[at=Δφ=φt-φt-1] (4)
式中:[φt]表示在[t]時(shí)刻機(jī)器人的移動(dòng)方向;[φt-1]表示在[t-1]時(shí)刻機(jī)器人的移動(dòng)方向??紤]機(jī)器人自身限制以及移動(dòng)安全性,機(jī)器人方向變換角度應(yīng)小于[π6],即[Δφ≤π6]。
2.2" 獎(jiǎng)勵(lì)函數(shù)的設(shè)計(jì)
獎(jiǎng)勵(lì)函數(shù)在DQN算法中扮演著重要作用,其能導(dǎo)向動(dòng)作的選擇。提出基于D3QN的路徑規(guī)劃算法旨在提高規(guī)劃移動(dòng)路徑的效率,因此,獎(jiǎng)勵(lì)函數(shù)由獎(jiǎng)勵(lì)項(xiàng)和懲罰項(xiàng)兩項(xiàng)組成。對(duì)靠近目標(biāo)卸載點(diǎn)和向目標(biāo)卸載點(diǎn)方向移動(dòng)的動(dòng)作進(jìn)行獎(jiǎng)勵(lì);對(duì)與障礙物發(fā)生碰撞的動(dòng)作進(jìn)行懲罰。
[Rt=rd+rβ-ro] (5)
式中:[Rt]表示智能體執(zhí)行動(dòng)作[at]所得到的獎(jiǎng)勵(lì);[rd]、[rβ]分別表示靠近目標(biāo)卸載點(diǎn)和向目標(biāo)卸載點(diǎn)移動(dòng)所得到的正獎(jiǎng)勵(lì);而[ro]表示機(jī)器人與障礙物發(fā)生碰撞所得到的負(fù)獎(jiǎng)勵(lì)(懲罰)。
具體而言,[rd]反映了距離獎(jiǎng)勵(lì)。希望機(jī)器人靠近目標(biāo)卸載點(diǎn),直至離目標(biāo)卸載點(diǎn)的距離為0.2 m。因此,當(dāng)機(jī)器人離目標(biāo)卸載點(diǎn)的距離為0.2 m時(shí),得到獎(jiǎng)勵(lì)最大;當(dāng)離目標(biāo)卸載點(diǎn)的距離大于0.2 m時(shí),較前一時(shí)刻更靠近目標(biāo)卸載點(diǎn),則也得到正獎(jiǎng)勵(lì)。因此,將[rd]定義為:
[rd=1," " " " dt=0.2 m0.5," " " " dt-1-dtgt;0" "and" "dtgt;0.2 m0," " " " others]" (6)
式中[dt]表示在[t]時(shí)刻機(jī)器人離目標(biāo)卸載點(diǎn)的距離。
[rβ]反映了方向獎(jiǎng)勵(lì)。希望機(jī)器人能以直線方式靠近目標(biāo)卸載點(diǎn),即希望[β]趨近于零,進(jìn)而縮短移動(dòng)距離,減少能量消耗。因此,將[rβ]定義為:
[rβ=1," " " "βt=00.5," " " "βt-1-βtgt;00," " " "others] (7)
式中[βt]表示在[t]時(shí)刻機(jī)器人的移動(dòng)方向與機(jī)器人到目標(biāo)卸載點(diǎn)連線間的夾角。
機(jī)器人在移動(dòng)過(guò)程中可能與障礙物相碰,為此,用[ro]約束機(jī)器人的移動(dòng),降低與機(jī)器人相碰的概率。在正常情況下,機(jī)器人在移動(dòng)過(guò)程中需要與其他物體保持一個(gè)安全距離[ds]。若機(jī)器人離其他物體的距離低于安全距離[ds]則進(jìn)行懲罰;若與其他物體碰撞,則進(jìn)行較大懲罰。為此,將[ro]定義為:
[ro=-0.8," " " "dt≤ds0," " " "others]" "(8)
2.3" 基于D3QN的路徑規(guī)劃
D3QN算法結(jié)合了Double DQN和Dueling DQN算法[12]。
2.3.1" Dueling DQN算法
DQN和Dueling DQN的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
Dueling DQN是在DQN的基礎(chǔ)上將[Q]值分割成兩部分。DQN直接輸出[Q]值,而Dueling DQN是通過(guò)兩條路徑計(jì)算[Q]值。第一條路徑輸出標(biāo)量[Vs],其僅與輸入狀態(tài)[s]有關(guān);第二條路徑輸出矢量[As,a],其不僅與狀態(tài)有關(guān),也與動(dòng)作有關(guān)。最終,將[As,a]和[Vs]值之和作為Dueling DQN的[Q]值[13]。
具體而言,將[t]時(shí)刻的Dueling DQN輸出的[Q]值表述為:
[Qst,at;θT=Vst;θt+Ast,at;θt-1Aat+1Ast,at+1;θt] (9)
式中:[Qst,at;θt]表示[Q]值;[θt]表示網(wǎng)絡(luò)參數(shù)。
2.3.2" Double DQN算法
Double DQN算法采用了結(jié)構(gòu)相同的Q網(wǎng)絡(luò)(訓(xùn)練網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)),訓(xùn)練網(wǎng)絡(luò)用于估計(jì)[Q]值;目標(biāo)網(wǎng)絡(luò)用于評(píng)估動(dòng)作。采用兩個(gè)Q網(wǎng)絡(luò)將狀態(tài)價(jià)值與狀態(tài)?動(dòng)作進(jìn)行分離,使得智能體能選擇更好的動(dòng)作[14]。為了簡(jiǎn)化描述,用[Qst,at;θt]表示目標(biāo)網(wǎng)絡(luò),其中[θt]表示目標(biāo)網(wǎng)絡(luò)參數(shù);相應(yīng)地,用[Qst,at;θt]表示訓(xùn)練網(wǎng)絡(luò),其中[θt]表示訓(xùn)練網(wǎng)絡(luò)參數(shù)。
令[yt]表示[t]時(shí)刻的目標(biāo)[Q]值,其定義如式(10)所示:
[yt=Rt+γQst+1,argmaxaQst+1,at+1;θt;θt] (10)
式中:[argmaxaQst+1,at+1;θt]表示由訓(xùn)練網(wǎng)絡(luò)產(chǎn)生的最優(yōu)動(dòng)作;[γ]表示折扣因子。
2.3.3" 算法框架
結(jié)合2.3.1節(jié)和2.3.2節(jié)的表述,圖4給出規(guī)劃路徑的過(guò)程。整個(gè)架構(gòu)主要由環(huán)境、誤差函數(shù)、經(jīng)驗(yàn)回放、訓(xùn)練網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)等模塊組成。
基于D3QN的規(guī)劃路徑的偽代碼如下:
Step1: 對(duì)參數(shù)進(jìn)行初始化,包括設(shè)定經(jīng)驗(yàn)回放單元、隨機(jī)初始化Q網(wǎng)絡(luò)及其參數(shù);初始化目標(biāo)網(wǎng)絡(luò)及其參數(shù);設(shè)定更新步長(zhǎng)[C]、迭代次數(shù)、每次迭代的步數(shù);
Step2:" [for k=1 to Nmax do]
Step3:" " " " 初始化當(dāng)前狀態(tài)[st]
Step4:" " " " [for t=1 to T do]
Step5:" " " " " " 根據(jù)[ε?]貪婪算法從Q網(wǎng)絡(luò)中選擇一個(gè)動(dòng)作
Step6:" " " " " " 執(zhí)行動(dòng)作[at],并觀測(cè)獎(jiǎng)勵(lì)[rt]和下一個(gè)狀態(tài)[st+1]
Step7:" " " " " " 將[st,at,rt,st+1]存儲(chǔ)于經(jīng)驗(yàn)回放單元
Step8:" " " " " " 更新?tīng)顟B(tài)[st+1←st]
Step9:" " " " " " 從經(jīng)驗(yàn)池[D]中采用batch個(gè)樣本,[j=1,2,…,m,]
依據(jù)式(10)計(jì)算目標(biāo)[Q]值
Step10:" " " " " 依據(jù)式(13)計(jì)算均方損失函數(shù)
Step11:" " " " " 隨機(jī)梯度下降更新Q網(wǎng)絡(luò)參數(shù)
Step12:" " " " " 每隔[C]步,將Q網(wǎng)絡(luò)參數(shù)拷貝至目標(biāo)Q網(wǎng)絡(luò)
Step13:" " " "End for
Step14: End for
第1步:先初始化網(wǎng)絡(luò)參數(shù),包括總的迭代次數(shù)[Nmax]、每次迭代中的步數(shù)[T]、經(jīng)驗(yàn)回放單元的存儲(chǔ)空間以及訓(xùn)練網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)、目標(biāo)網(wǎng)絡(luò)參數(shù)的更新步長(zhǎng)[C]。
第2步:進(jìn)入迭代環(huán)節(jié),如Step2~Step14所示。先隨機(jī)地產(chǎn)生初始狀態(tài)[s0],然后通過(guò)[ε?]貪婪算法選擇動(dòng)作[at]。[ε?]貪婪算法總是以概率[ε]從動(dòng)作空間中隨機(jī)地選擇動(dòng)作(探索方式);以[1-ε]概率選擇具有最大[Q]值的動(dòng)作(利用方式)。
[at=argmaxa∈A Q," " " 1-ε隨機(jī)選擇," " " ε]" " (11)
傳統(tǒng)的[ε?]貪婪算法采用固定[ε]值,這不利于平衡探索方式與利用方式間的關(guān)系。采用隨迭代次數(shù)衰減的[ε]值,表達(dá)式如下:
[ε=εinit×λk," " " ε≥εminεmin," " " εlt;εmin] (12)
式中:[εinit]為[ε]的初始值,即最大值;[λ]為衰減因子;[k]為當(dāng)前迭代次數(shù);[εmin]表示[ε]的最小值,設(shè)置[εmin]的目的在于控制[ε]過(guò)小。當(dāng)[λ∈0,1],則[ε]逐步變小。換而言之,在訓(xùn)練的初始階段,[ε]值較大,智能體隨機(jī)選擇動(dòng)作的概率高,即探索方式占主導(dǎo);在訓(xùn)練的后期階段,[ε]值較小,智能體選擇具有最大[Q]值動(dòng)作的概率高,即利用方式占主導(dǎo)。
選擇動(dòng)作[at]后,執(zhí)行此動(dòng)作,并獲取相應(yīng)的獎(jiǎng)勵(lì),再進(jìn)入下一個(gè)狀態(tài)[st+1]。
第3步:將[st,at,rt,st+1]存儲(chǔ)于經(jīng)驗(yàn)回放單元。
第4步:從狀態(tài)[st]更新至狀態(tài)[st+1]。
第5步:從經(jīng)驗(yàn)回放單元隨機(jī)抽取batch個(gè)樣本,并依據(jù)式(10)計(jì)算目標(biāo)[Q]值,如Step9所示。
第6步:獲取了目標(biāo)[Q]值后,再計(jì)算均方誤差。
[Lθt=Eyt-Qst,at;θt2]" (13)
式中[E?]表示期望運(yùn)算。
第7步:計(jì)算[Lθt]的梯度。
[?Lθt=Eyt-Qst,at;θt?Qst,at;θt] (14)
再利用隨機(jī)梯度下降法更新網(wǎng)絡(luò)的參數(shù)[θt]:
[θt+1=θt-η?Lθt] (15)
式中[η]為學(xué)習(xí)率。
為了提高算法的收斂速度,采用動(dòng)態(tài)變化的學(xué)習(xí)率,而不是固定的學(xué)習(xí)率。
[η=ηinit×δk] (16)
式中:[ηinit]表示初始學(xué)習(xí)率;[δ]表示學(xué)習(xí)率衰減因子。
第8步:每隔[C]步更新[Q]網(wǎng)絡(luò)參數(shù):[θt←θt]。
3" 性能分析
3.1" 仿真參數(shù)
利用Python 3.6和PyTorch工具搭建仿真平臺(tái),進(jìn)行仿真實(shí)驗(yàn)。D3QN算法采用全連接的神經(jīng)網(wǎng)絡(luò),一個(gè)輸入層、兩個(gè)隱藏層和一個(gè)輸出層。表1列出神經(jīng)網(wǎng)絡(luò)參數(shù)。此外,為了降低運(yùn)行誤差,每個(gè)實(shí)驗(yàn)獨(dú)立運(yùn)行50次,取平均值作為最終的實(shí)驗(yàn)數(shù)據(jù)。
3.2" 參數(shù)[ε]對(duì)獎(jiǎng)勵(lì)的影響
首先分析參數(shù)[ε]對(duì)平均獎(jiǎng)勵(lì)的影響。本次實(shí)驗(yàn)的參數(shù)設(shè)置如下:學(xué)習(xí)率[η]固定為0.01,[εinit=0.9],[εmin=0.1];參數(shù)[ε]的衰減因子[λ]取0.999、0.8和0.2。此外,圖標(biāo)[εfixed=0.9]表示采用固定的[ε]?貪婪策略,即在訓(xùn)練過(guò)程中參數(shù)[ε]=0.9。圖5a)、圖5b)分別給出平均獎(jiǎng)勵(lì)、累加獎(jiǎng)勵(lì)隨[ε]的變化情況。
從圖5a)可知,相比于固定的[ε]?貪婪策略([εfixed=0.9]),衰減的[ε]?貪婪策略可有效地提升平均獎(jiǎng)勵(lì)。原因在于:衰減的[ε]?貪婪策略能夠在訓(xùn)練初始階段有效地探索環(huán)境;在訓(xùn)練后期階段有效地利用已有的知識(shí)。由于[εfixed=0.9]的獎(jiǎng)勵(lì)為負(fù)值,它的累加獎(jiǎng)勵(lì)也是負(fù)值,無(wú)法在圖5b)中顯示出來(lái)。此外,在[εinit=0.9]的前提條件下,[λ]取0.999、0.8和0.2三種情況下平均獎(jiǎng)勵(lì)相差較小??傮w上來(lái)看,[λ]=0.2的累加獎(jiǎng)勵(lì)優(yōu)于[λ]=0.998和[λ]=0.8兩種情況的累加獎(jiǎng)勵(lì)。為了得到最好的性能,在后續(xù)實(shí)驗(yàn)中取[εinit=0.9]、[λ]=0.2。
3.3" 參數(shù)[η]對(duì)獎(jiǎng)勵(lì)的影響
接下來(lái),分析學(xué)習(xí)率參數(shù)[η]對(duì)獎(jiǎng)勵(lì)的影響。本次實(shí)驗(yàn)的參數(shù)設(shè)置如下:[εinit=0.9]、[λ]=0.2;學(xué)習(xí)率[ηinit=0.01],[η]的衰減因子[δ]取0.9、0.8和0.2,如圖6所示。圖標(biāo)[ηfixed=0.01]表示學(xué)習(xí)率是固定的情況,即在訓(xùn)練過(guò)程中學(xué)習(xí)率一直是0.01。
從圖6可知,采用固定的學(xué)習(xí)率并不利于智能體學(xué)習(xí)環(huán)境,所獲取的平均獎(jiǎng)勵(lì)遠(yuǎn)低于采用動(dòng)態(tài)學(xué)習(xí)率(見(jiàn)式(15))。這說(shuō)明逐步變小的學(xué)習(xí)率可以促進(jìn)智能體搜索更優(yōu)的動(dòng)作,更好地學(xué)習(xí)環(huán)境。在初始學(xué)習(xí)率相同的情況下,衰減因子[δ]等于0.9、0.8和0.2三種情況的平均獎(jiǎng)勵(lì)相差不大。其中[δ]=0.9情況下所獲取的平均獎(jiǎng)勵(lì)略?xún)?yōu)于其他兩種情況,原因在于:[δ]=0.9情況下的學(xué)習(xí)率衰減速度慢于[δ]=0.8和[δ]=0.2兩種情況。
3.4" 性能對(duì)比分析
為了更好地分析算法的性能,驗(yàn)證利用D3QN規(guī)劃?rùn)C(jī)器人路徑的有效性。選擇采用DQN、Double DQN、Dueling DQN作為基準(zhǔn),進(jìn)而分析采用D3QN規(guī)劃?rùn)C(jī)器人移動(dòng)路徑的性能。
首先,分析在訓(xùn)練過(guò)程中的碰撞率。碰撞率是指機(jī)器人在移動(dòng)過(guò)程與障礙物發(fā)生碰撞的概率??紤]如圖1所示的實(shí)驗(yàn)環(huán)境,機(jī)器人在移動(dòng)的物理空間只有固定障礙物、無(wú)移動(dòng)障礙物。假定物理空間內(nèi)有8個(gè)目標(biāo)卸載點(diǎn)。圖7繪制了DQN、Double DQN、Dueling DQN和D3QN算法規(guī)劃?rùn)C(jī)器人移動(dòng)的碰撞率。
從圖7可知,在訓(xùn)練的初始階段,DQN、Double DQN、Dueling DQN和D3QN算法的碰撞率較高,但隨著持續(xù)訓(xùn)練,碰撞率也得以下降,并逐步收斂。訓(xùn)練至約15 000次后,各算法的碰撞率穩(wěn)定。然而,相比于Double DQN和Dueling DQN算法,D3QN算法在碰撞率方面并沒(méi)有優(yōu)勢(shì)。原因在于:D3QN算法是主要面對(duì)存在移動(dòng)障礙物的應(yīng)用環(huán)境,即復(fù)雜的應(yīng)用環(huán)境。實(shí)質(zhì)上,在圖書(shū)館的應(yīng)用場(chǎng)景中,多數(shù)情況下肯定存在移動(dòng)的障礙物(人)。為此,接下來(lái),分析存在移動(dòng)障礙物環(huán)境下的D3QN算法的性能。
為了分析在復(fù)雜環(huán)境中,算法規(guī)劃?rùn)C(jī)器人的移動(dòng)路徑的性能。在物理空間中增加了4個(gè)移動(dòng)行人(移動(dòng)障礙物),他們隨機(jī)移動(dòng)。圖8繪制了DQN、Double DQN、Dueling DQN和D3QN算法的碰撞率。對(duì)比觀察圖7和圖8可知,增添了移動(dòng)障礙物就增加了規(guī)劃路徑的難度、增加了碰撞率。
接下來(lái),分析機(jī)器人在完成目標(biāo)卸載任務(wù)所移動(dòng)的距離。機(jī)器人在移動(dòng)過(guò)程中存在移動(dòng)障礙物。仍考慮圖1的區(qū)域場(chǎng)景,固定障礙物不變,移動(dòng)障礙物(行人)從0增加至6個(gè),移動(dòng)速度為0.6 m/s;目標(biāo)卸載點(diǎn)為8個(gè)。圖9給出機(jī)器人的移動(dòng)距離隨移動(dòng)障礙物的變化情況。
從圖9可知,移動(dòng)障礙物數(shù)量的增加,延長(zhǎng)了機(jī)器人的移動(dòng)路徑長(zhǎng)度。原因在于:移動(dòng)障礙物數(shù)量的增加,導(dǎo)致機(jī)器人調(diào)整移動(dòng)方向的次數(shù)增多,這就增加了移動(dòng)路徑。此外,相比于DQN、Double DQN和Dueling DQN,D3QN縮短了機(jī)器人的移動(dòng)路徑。這說(shuō)明,利用D3QN能夠有效規(guī)劃移動(dòng)路徑,減少了調(diào)整方向的次數(shù)。
4" 結(jié)" 語(yǔ)
本文針對(duì)智能分揀系統(tǒng)中搬運(yùn)機(jī)器人的路徑規(guī)劃問(wèn)題,提出一種基于DRL的路徑規(guī)劃算法。先將路徑規(guī)劃問(wèn)題構(gòu)建成馬爾可夫決策過(guò)程,考慮到Double DQN和Dueling DQN算法各自的特點(diǎn),構(gòu)建D3QN網(wǎng)絡(luò),并利用D3QN算法求解路徑規(guī)劃問(wèn)題。通過(guò)對(duì)機(jī)器人的移動(dòng)方向、碰撞障礙物信息設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù),智能體通過(guò)與環(huán)境的交互,產(chǎn)生最優(yōu)動(dòng)作,降低碰撞概率,進(jìn)而縮短移動(dòng)路徑。仿真結(jié)果表明,提出的基于D3QN的路徑規(guī)劃算法縮短了移動(dòng)路徑,降低了碰撞率。
參考文獻(xiàn)
[1] 嚴(yán)珊.基于預(yù)訓(xùn)練模型的深度學(xué)習(xí)算法及其在圖書(shū)館行人目標(biāo)檢測(cè)中的應(yīng)用[J].圖書(shū)館研究與工作,2024(3):43?51.
[2] 強(qiáng)麗麗.圖書(shū)館自動(dòng)尋物機(jī)器人移動(dòng)軌跡智能檢測(cè)與跟蹤研究[J].機(jī)械設(shè)計(jì)與制造工程,2023,52(5):43?48.
[3] DOGRU S, MARQUES L. A*?based solution to the coverage path planning problem [C]// Proceedings of Iberian Robotics Conference 2022. Heidelberg, Germany: Springer, 2022: 240?248.
[4] 李御馳,閆軍濤,宋志華,等.基于遺傳算法的無(wú)人機(jī)監(jiān)視覆蓋航路規(guī)劃算法研究[J].計(jì)算機(jī)科學(xué)與應(yīng)用,2019,9(6):1208?1215.
[5] AJEIL F H, IBRAHEEM I K, SAHIB M A, et al. Multi?objective path planning of an autonomous mobile robot using hybrid PSO?MFB optimization algorithm [J]. Applied soft computing, 2020, 89: 106?119.
[6] GUI F, RAHIMAN W, ALHADY S S N, et al. Meta?heuristic approach for solving multi?objective path planning for autonomous guided robot using PSO?GWO optimization algorithm with evolutionary programming [J]. Journal of ambient intelligence and humanized computing, 2021, 12(7): 7873?7890.
[7] 王星宇,胡燕海,徐堅(jiān)磊,等.基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法[J].電子技術(shù)應(yīng)用,2023,49(1):75?80.
[8] 史殿習(xí),彭瀅璇,楊煥煥,等.基于DQN的多智能體深度強(qiáng)化學(xué)習(xí)運(yùn)動(dòng)規(guī)劃方法[J].計(jì)算機(jī)科學(xué),2024,51(2):268?277.
[9] 王正寧,周陽(yáng),呂俠,等.一種基于2D和3D聯(lián)合信息的改進(jìn)MDP跟蹤算法[J].計(jì)算機(jī)科學(xué),2019,46(3):97?102.
[10] 張薇,何若俊.面向物聯(lián)網(wǎng)數(shù)據(jù)收集的無(wú)人機(jī)自主路徑規(guī)劃[J].航空學(xué)報(bào),2024,45(8):234?248.
[11] 胡正陽(yáng),王勇.基于深度確定性策略梯度的船舶自主航行避碰方法[J/OL].指揮控制與仿真:1?9[2023?12?18].http://kns.cnki.net/kcms/detail/32.1759.TJ.20231215.1042.004.html.
[12] 張良玉.移動(dòng)機(jī)器人深度強(qiáng)化學(xué)習(xí)路徑規(guī)劃研究[D].大連:大連海事大學(xué),2021.
[13] 武明虎,金波,趙楠,等.基于深度強(qiáng)化學(xué)習(xí)的V2X頻譜資源管理方法[J].光通信研究,2023(3):71?78.
[14] 周翼.基于改進(jìn)競(jìng)爭(zhēng)網(wǎng)絡(luò)的機(jī)器人避障方法研究[D].西安:西安電子科技大學(xué),2019.
[15] PIARDI L, LIMA J, PEREIRA A I, et al. Coverage path planning optimization based on Q?learning algorithm [C]// Proceedings of the 16th International Conference of Numerical Analysis and Applied Mathematics. [S.l.: s.n.], 2019: 5114220.
作者簡(jiǎn)介:陳" 玥(1982—),女,武漢人,博士研究生,副研究館員,主要研究方向?yàn)橹腔蹐D書(shū)館。
收稿日期:2024?05?27" " " " " "修回日期:2024?06?20
基金項(xiàng)目:湖北省重點(diǎn)研發(fā)計(jì)劃:面向智能工廠的云邊端協(xié)同數(shù)字孿生關(guān)鍵技術(shù)研究(2022BAD064)