郭瑝清 ,陳 鋒 ,2
(1.中國(guó)科學(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院,安徽 合肥230027;2.安徽中科龍安科技股份有限公司,安徽 合肥230088)
隨著城市人口的增多與經(jīng)濟(jì)的快速發(fā)展,我國(guó)汽車保有量不斷增長(zhǎng),城市交通擁堵問(wèn)題日益嚴(yán)峻。而城市交通干線是城市交通的動(dòng)脈,實(shí)現(xiàn)干線各交叉口間交通信號(hào)的動(dòng)態(tài)協(xié)調(diào),有效地疏導(dǎo)干線車輛,對(duì)于緩解城市交通擁堵具有重要意義。
目前,城市主干道多交叉口的協(xié)調(diào)控制,主要采用Maxband 和Multiband 法以及圖解法、數(shù)解法等綠波方法。LITTLE J D C 等人[1]最早提出最大綠波帶寬Maxband 模 型;GARTNER N H 等 人[2]在Maxband 模型的基礎(chǔ)上,提出復(fù)合綠波帶寬Multiband 模型;陳昕等人[3]對(duì)圖解法進(jìn)行了優(yōu)化,基于綠波帶的中心線交點(diǎn),設(shè)計(jì)了一種新的雙向綠波圖解法;盧凱等人[4]在綠燈中心點(diǎn)型雙向綠波協(xié)調(diào)設(shè)計(jì)數(shù)解法的基礎(chǔ)上,建立了一種綠燈終點(diǎn)型的雙向綠波數(shù)解法,從而減少了干線車隊(duì)的延誤時(shí)間;曲大義等人[5]在綠波協(xié)調(diào)中考慮了公交車輛的影響,并通過(guò)增加綠信比與對(duì)公交車輛適當(dāng)?shù)奶崴?,進(jìn)一步提升了交叉口的通行效率。
現(xiàn)有的綠波方法難以準(zhǔn)確地描述復(fù)雜的城市干線交通流狀態(tài),且采用靜態(tài)的控制模式,無(wú)法有效地協(xié)調(diào)時(shí)變的干線交通流。 隨著人工智能的不斷發(fā)展,采用深度強(qiáng)化學(xué)習(xí)實(shí)現(xiàn)城市交通信號(hào)優(yōu)化控制已成為研究的熱點(diǎn)。 HA-LI P 等人[6]為提高交叉口通行能力,提出了一種基于深度強(qiáng)化學(xué)習(xí)算法的單交叉口信號(hào)優(yōu)化控制方法;GAO J 等人[7]提出一種深度強(qiáng)化學(xué)習(xí)算法,從實(shí)時(shí)的交通流數(shù)據(jù)中自動(dòng)提取有用特征,實(shí)現(xiàn)單交叉口交通流的自適應(yīng)控制, 并采用經(jīng)驗(yàn)回放和目標(biāo)網(wǎng)絡(luò)技術(shù)[8],提高了算法的穩(wěn)定性;LI C C等人[9]為提高城市路網(wǎng)通行能力,提出了一種用于區(qū)域交叉口交通信號(hào)控制的深度強(qiáng)化學(xué)習(xí)算法, 通過(guò)多智能體學(xué)習(xí)最佳的交通信號(hào)控制策略;VAN DER POL E[10]采用Max-plus 算法和基于深度強(qiáng)化學(xué)習(xí)的多智能體方法,實(shí)現(xiàn)城市交通區(qū)域協(xié)調(diào)控制。
在深度強(qiáng)化學(xué)習(xí)領(lǐng)域,目前對(duì)于城市交通信號(hào)控制的研究,多以單交叉口為研究對(duì)象,而對(duì)于多交叉口的協(xié)調(diào)處理,普遍采用多智能體的協(xié)調(diào)控制。本文結(jié)合了雙重深度Q 網(wǎng)絡(luò)(Double Deep Q Network,Double DQN)[11]與基于競(jìng)爭(zhēng)架構(gòu)深度Q 網(wǎng)絡(luò)(Dueling Deep Q Network,Dueling DQN)[12],設(shè)計(jì)了基于DDDQN(Dueling Double Deep Q Network,DDDQN)的干線動(dòng)態(tài)協(xié)調(diào)控制算法。 通過(guò)將干線多交叉口的交通信號(hào)作為一個(gè)整體進(jìn)行處理,相比于采用多智能體協(xié)調(diào)控制,減輕了智能體間通信協(xié)調(diào)的負(fù)擔(dān),且智能體通過(guò)獲取多交叉口的實(shí)時(shí)狀態(tài),掌握干線全局信息,并使用Dueling DQN 網(wǎng)絡(luò)結(jié)構(gòu)模型,能更充分地發(fā)揮網(wǎng)絡(luò)提取干線交通流特征的能力,挖掘出多交叉口間協(xié)調(diào)控制的相關(guān)性。 實(shí)驗(yàn)結(jié)果表明,本文方法相比于現(xiàn)有綠波方法、經(jīng)典的深度Q 網(wǎng)絡(luò)(Deep Q Network,DQN)[13]、以及Double DQN 與Dueling DQN,能夠更有效地降低城市主干道的車均延誤和車輛的停車次數(shù)等重要的交通評(píng)價(jià)指標(biāo)。
Q 學(xué)習(xí)算法是由WATKINS C J C H 等人[14]提出的一種無(wú)模型強(qiáng)化學(xué)習(xí)算法。 在Q 學(xué)習(xí)中,智能體通過(guò)與環(huán)境交互獲得獎(jiǎng)勵(lì)來(lái)進(jìn)行學(xué)習(xí),以使得自身能根據(jù)當(dāng)前的狀態(tài)選擇最優(yōu)的動(dòng)作。 具體過(guò)程描述如下:在與環(huán)境交互過(guò)程中,t 時(shí)刻智能體觀測(cè)到的狀態(tài)為st, 當(dāng)執(zhí)行了某一動(dòng)作at后, 環(huán)境轉(zhuǎn)移到下一狀態(tài)st+1,此時(shí)智能體會(huì)獲得一個(gè)相應(yīng)獎(jiǎng)勵(lì)rt。 智能 體 根 據(jù) 所 有 記 錄 (st,at,rt,st+1), 更 新 狀 態(tài) 動(dòng) 作的Q 值,即Q(st,at)。
Q 學(xué)習(xí)通過(guò)表格的形式來(lái)存儲(chǔ)Q 值,而對(duì)于城市干線復(fù)雜的交通流,其狀態(tài)空間巨大,表格形式的存儲(chǔ)顯然無(wú)法滿足需求。 結(jié)合深度學(xué)習(xí)方法,采用DQN 算法,通過(guò)深度神經(jīng)網(wǎng)絡(luò)來(lái)擬合Q 值函數(shù)。
DQN 算法引入經(jīng)驗(yàn)回放和目標(biāo)網(wǎng)絡(luò)兩大技術(shù)[8]。 智能體在與環(huán)境交互中,通過(guò)經(jīng)驗(yàn)緩沖區(qū)存儲(chǔ)(st,at,rt,st+1)形式的樣本,在學(xué)習(xí)的過(guò)程中,再?gòu)慕?jīng)驗(yàn)緩沖區(qū)中抽取樣本,經(jīng)過(guò)深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練學(xué)習(xí),調(diào)整網(wǎng)絡(luò)參數(shù),以此達(dá)到擬合Q 值函數(shù),實(shí)現(xiàn)最優(yōu)策略的選取。 當(dāng)t 時(shí)刻輸入狀態(tài)st時(shí),輸出的目標(biāo)Q 值為:
式中γ∈(0,1)表示折扣因子,θ′表示目標(biāo)網(wǎng)絡(luò)參數(shù)。
DQN 算法的目標(biāo)Q 值是通過(guò)貪婪法得到的,雖然這樣可以讓Q 值逼近可能的優(yōu)化目標(biāo),但是容易導(dǎo)致過(guò)估計(jì)。 為了解決這一問(wèn)題,Double DQN 算法被提出[11],該算法通過(guò)解耦目標(biāo)Q 值動(dòng)作的選擇與目標(biāo)Q 值的計(jì)算,達(dá)到消除過(guò)估計(jì)問(wèn)題。 Double DQN的目標(biāo)Q 值計(jì)算如式(2)所示:
而WANG Z Y 等人[12]針對(duì)DQN 的網(wǎng)絡(luò)結(jié)構(gòu)模型進(jìn)行優(yōu)化,提出了Dueling DQN。 該算法將深度神經(jīng)網(wǎng)絡(luò)分成兩部分,一部分表示價(jià)值函數(shù),這部分僅僅與狀態(tài)st有關(guān),與具體采用的at無(wú)關(guān);而另外一部分稱為優(yōu)勢(shì)函數(shù), 同時(shí)與狀態(tài)st和動(dòng)作at相關(guān)。 所以最終的Q 值函數(shù)可以表示為:
式中V(st,ω,μ)表示價(jià)值函數(shù),A(st,at,ω,β)表示優(yōu)勢(shì)函數(shù),ω 為公共部分的網(wǎng)絡(luò)參數(shù),μ 為價(jià)值函數(shù)獨(dú)有部分的網(wǎng)絡(luò)參數(shù),β 為優(yōu)勢(shì)函數(shù)獨(dú)有部分的網(wǎng)絡(luò)參數(shù)。
本文結(jié)合Double DQN 與Dueling DQN 算法,對(duì)DQN 存在的過(guò)估計(jì)問(wèn)題和深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)同時(shí)優(yōu)化,并根據(jù)干線交通流特性,設(shè)計(jì)了基于DDDQN的干線動(dòng)態(tài)協(xié)調(diào)控制算法。 基于DDDQN 算法設(shè)計(jì)的目標(biāo)Q 值計(jì)算如式(4)所示:
式中,ω、μ、β 為當(dāng)前網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù),ω′、μ′、β′為目標(biāo)網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)。 DDDQN 算法深度神經(jīng)網(wǎng)絡(luò)定義的損失函數(shù)如式(5)所示:
網(wǎng)絡(luò)訓(xùn)練時(shí),還對(duì)優(yōu)勢(shì)函數(shù)部分做了中心化處理,得到如下公式:
式中A 表示優(yōu)勢(shì)函數(shù)輸出的動(dòng)作空間價(jià)值。
本節(jié)將針對(duì)城市交通干線的動(dòng)態(tài)協(xié)調(diào)控制,定義DDDQN 算法的狀態(tài)空間、動(dòng)作空間、獎(jiǎng)勵(lì)函數(shù),以及對(duì)深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。
如圖1 所示,以經(jīng)典的三個(gè)交叉口組成的城市交通干線為例。 將干線上各交叉口所有入口道車輛的位置信息、速度分布情況以及各交叉口當(dāng)前相位作為深度神經(jīng)網(wǎng)絡(luò)的輸入。 考慮第一個(gè)交叉口入口道a,距離停車線長(zhǎng)度為L(zhǎng) 的路段,將每個(gè)車道等分為長(zhǎng)度為c 的多個(gè)小路段,每段記為Cell。 假設(shè)車輛占用了長(zhǎng)度為c′的Cell 空間,則該Cell 的值為c′/c,所有的Cell 值構(gòu)成了入口道a 的位置矩陣,而在速度矩陣中,取每個(gè)Cell 內(nèi)所有車輛速度的平均值。干線的位置矩陣和速度矩陣由干線上所有入口道的位置矩陣和速度矩陣組成。
入口道a 的車道劃分如圖2 所示,對(duì)應(yīng)的位置矩陣、速度矩陣分別如圖3、圖4 所示。
圖1 城市交通干線示意圖
圖2 入口道a 車道劃分示意圖
圖3 入口道a 位置矩陣圖
圖4 入口道a 速度矩陣圖
同時(shí)將干線上各個(gè)交叉口當(dāng)前相位形成的相位矩陣作為深度神經(jīng)網(wǎng)絡(luò)的輸入。 假設(shè)干線上3 個(gè)交叉口的相位均為典型的4 相位,其相位空間如圖5所示,定義相位空間 p={EW,EWL,SN,SNL},分別表示東西直行、東西左轉(zhuǎn)、南北直行、南北左轉(zhuǎn)4 個(gè)相位。 且假設(shè)當(dāng)前干線上3 個(gè)交叉口的交通信號(hào)狀態(tài)均為東西直行,則相位矩陣表示為[EW,EW,EW],并在輸入深度神經(jīng)網(wǎng)絡(luò)前,轉(zhuǎn)換為該相位在相位空間的位置序號(hào),EW 在相位空間位于第一個(gè),即相位矩陣為[1,1,1]。
圖5 相位空間
智能體根據(jù)干線當(dāng)前的交通狀態(tài),選擇相應(yīng)動(dòng)作對(duì)各個(gè)交叉口交通信號(hào)進(jìn)行控制,以達(dá)到動(dòng)態(tài)協(xié)調(diào)干線交通流的目的。 本文將干線作為整體進(jìn)行處理。每個(gè)交叉口的動(dòng)作空間如圖6 所示,定義ai={0,1}。當(dāng)ai=0 時(shí),第i 交叉口保持當(dāng)前相位1 s;當(dāng)ai=1 時(shí),切換至下一個(gè)相位,相位切換按照相位空間順序循環(huán)切換。 為更適用現(xiàn)實(shí)情況,達(dá)到更好的控制效果,對(duì)待執(zhí)行動(dòng)作做如下限制: 當(dāng)前相位持續(xù)保持時(shí)間不小于交叉口的最小綠燈時(shí)間,才允許切換至下一相位,否則繼續(xù)保持當(dāng)前相位;若當(dāng)前相位持續(xù)保持時(shí)間大于交叉口的最大綠燈時(shí)間,則強(qiáng)制切換至下一相位。 為進(jìn)一步確保各個(gè)交叉口的交通安全性,在相位切換前,通過(guò)設(shè)置黃燈進(jìn)行過(guò)渡,即當(dāng)ai=1 時(shí),先執(zhí)行一個(gè)黃燈狀態(tài),黃燈保持時(shí)間為3 s。
每個(gè)交叉口用一位二進(jìn)制對(duì)其動(dòng)作編碼表示,所以對(duì)于n 個(gè)交叉口的交通干線,需要n 位二進(jìn)制,動(dòng)作空間的動(dòng)作總數(shù)為2n。
圖6 動(dòng)作空間
智能體根據(jù)獲得的獎(jiǎng)勵(lì)來(lái)調(diào)整所選取的最佳動(dòng)作,使得長(zhǎng)期累積獎(jiǎng)勵(lì)最大。本文定義的獎(jiǎng)勵(lì)為:
式中,Dt表示t 時(shí)刻各個(gè)支路延誤的集合,在所有支路中,當(dāng)存在某一支路的延誤超過(guò)給定的閾值D時(shí),給予智能體懲罰;否則考慮主干道是否有延誤產(chǎn)生,獎(jiǎng)勵(lì)為主干道延誤dt的倒數(shù),即延誤越低,獎(jiǎng)勵(lì)越大;當(dāng)主干道不存在延誤,即dt=0 時(shí),給予智能體最大獎(jiǎng)勵(lì)。
本文設(shè)計(jì)的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖7 所示。 將干線的車輛位置矩陣和速度矩陣以及各交叉口當(dāng)前相位組成的相位矩陣作為深度神經(jīng)網(wǎng)絡(luò)的輸入。位置矩陣和速度矩陣經(jīng)兩層卷積層提取相應(yīng)的特征,并將特征展開(kāi)為一維,與相位矩陣經(jīng)過(guò)一個(gè)全連接層后,兩者一起輸入全連接層,并將最后一層全連接層分成價(jià)值V 和優(yōu)勢(shì)A 兩部分,并根據(jù)式(6)融合兩部分輸出,最終輸出Q 值。
圖7 深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
訓(xùn)練時(shí),深度神經(jīng)網(wǎng)絡(luò)采用Adam 優(yōu)化器和ε 貪心策略進(jìn)行網(wǎng)絡(luò)輸出動(dòng)作的選取。 ε 值隨著訓(xùn)練次數(shù)的增加而增加,并最終以0.999 的概率選擇深度神經(jīng)網(wǎng)絡(luò)輸出最大價(jià)值的動(dòng)作。
本文的仿真實(shí)驗(yàn)平臺(tái)選擇中國(guó)科學(xué)技術(shù)大學(xué)微觀交通仿真平臺(tái)2.1(USTC Microscopic Traffic Simulator 2.1,USTC-MTS 2.1)。 算法模型通過(guò)Python 實(shí)現(xiàn),并采用PyTorch 搭建深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
參數(shù)設(shè)置:折扣因子γ=0.9,經(jīng)驗(yàn)池大小M=2 000,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率為0.001,卷積核大小為5×5,批處理大小為32,訓(xùn)練循環(huán)輪數(shù)為400,車道劃分取c=6 m。 干線上各交叉口間距如表1 所示。
表1 干線各交叉口間距
實(shí)際生活中,交通擁堵普遍發(fā)生在近飽和交通流量狀態(tài)下,并且在進(jìn)行干線協(xié)調(diào)控制時(shí),主干道上各個(gè)交叉口往往已存在車輛排隊(duì)。 為使實(shí)驗(yàn)更貼近現(xiàn)實(shí)情況,本文研究在近飽和流量,且主干道形成初始排隊(duì)情況下的干線協(xié)調(diào)控制。 主干道各個(gè)入口道的平均初始排隊(duì)長(zhǎng)度如表2 所示。
表2 主干道入口道平均初始排隊(duì)長(zhǎng)度
在近飽和流量和主干道存在初始排隊(duì)的情況下,將本文方法與現(xiàn)有綠波方法(用GW 表示)、經(jīng)典DQN 算 法、Double DQN 和Dueling DQN 進(jìn) 行 比 較。指標(biāo)參數(shù)選擇干線車均延誤和停車次數(shù),實(shí)驗(yàn)結(jié)果如圖8、圖9 所示。
圖8 車均延誤
圖9 停車次數(shù)
根據(jù)實(shí)驗(yàn)結(jié)果,各類算法在主干道平均每輪的車均延誤與停車次數(shù)如表3 所示。
表3 算法性能比較
從表3 可見(jiàn),采用DQN 算法及其相關(guān)改進(jìn)算法Double DQN、Dueling DQN 以及本文的DDDQN 算法,相比于現(xiàn)有綠波方法,在城市干線的車均延誤與車輛停車次數(shù)等重要交通評(píng)價(jià)指標(biāo)方面均有較大的改善。 說(shuō)明基于DQN 設(shè)計(jì)的算法能根據(jù)實(shí)時(shí)的交通流狀態(tài),對(duì)干線各個(gè)交叉口交通信號(hào)實(shí)現(xiàn)動(dòng)態(tài)協(xié)調(diào)控制,相比于現(xiàn)有綠波方法,能夠更加有效地降低主干道的車均延誤與停車次數(shù),進(jìn)一步改善城市交通擁堵現(xiàn)象。 其中使用基于DDDQN 的干線動(dòng)態(tài)協(xié)調(diào)控制算法,其干線的車均延誤與停車次數(shù)均為最小,算法性能最優(yōu)。 且從圖8 的車均延誤曲線與圖9 的停車次數(shù)曲線可以看出,相比于采用經(jīng)典DQN算法以及單獨(dú)使用Double DQN 與Dueling DQN,采用DDDQN 算法的車均延誤曲線與停車次數(shù)曲線波動(dòng)程度最小,最為穩(wěn)定,且收斂速度較快,對(duì)城市干線的動(dòng)態(tài)協(xié)調(diào)效果最優(yōu)。
本文將深度強(qiáng)化學(xué)習(xí)方法引入到城市交通干線的動(dòng)態(tài)協(xié)調(diào)控制中,結(jié)合Double DQN 與Dueling DQN,給出了一種DDDQN 的干線動(dòng)態(tài)協(xié)調(diào)算法。 通過(guò)解耦目標(biāo)Q 值動(dòng)作的選取與目標(biāo)Q 值的計(jì)算,消除了DQN 的過(guò)估計(jì)問(wèn)題,同時(shí)對(duì)深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,將輸出分為狀態(tài)價(jià)值與動(dòng)作優(yōu)勢(shì)兩部分,并做了中心化處理,使得智能體能更好地進(jìn)行干線交通信號(hào)決策控制。 并且本文將干線作為一個(gè)整體處理,通過(guò)將干線整體的交通狀態(tài)輸入深度神經(jīng)網(wǎng)絡(luò),能夠更充分發(fā)揮網(wǎng)絡(luò)挖掘干線各交叉口協(xié)調(diào)控制的相關(guān)性。 實(shí)驗(yàn)結(jié)果表明,DDDQN 算法較現(xiàn)有綠波方法、經(jīng)典的DQN、Double DQN 與Dueling DQN,有效地降低了城市干線的車均延誤與停車次數(shù)。 后續(xù)工作考慮將DDDQN 算法的應(yīng)用擴(kuò)展至城市路網(wǎng),實(shí)現(xiàn)區(qū)域協(xié)調(diào)優(yōu)化控制。