柴明璐,唐曉嵐,陳瀟然,陳文龍
(首都師范大學(xué) 信息工程學(xué)院,北京 100048)
E-mail:tangxl@cnu.edu.cn
隨著現(xiàn)代城市規(guī)模的快速擴(kuò)張和汽車數(shù)量的飆升,城市交通系統(tǒng)日趨復(fù)雜,帶來(lái)了愈加嚴(yán)峻的交通問(wèn)題,嚴(yán)重影響了城市通勤效率和降低了市民在日常生活中的出行質(zhì)量.為了引導(dǎo)駕駛行為,城市中可達(dá)區(qū)域的計(jì)算旨在得到車輛或乘客在起始時(shí)間由起始位置出發(fā)通過(guò)特定的查詢時(shí)間段可以抵達(dá)的有界區(qū)域.
如圖1所示,可達(dá)區(qū)域在各式各樣的城市應(yīng)用中起著重要的作用.其中,圖1(a)所示的基于興趣點(diǎn)(POIs)的推薦中,低電量電動(dòng)汽車想找尋附近能夠在剩余電量的行駛時(shí)間內(nèi)抵達(dá)到的充電站時(shí),那么位于可達(dá)區(qū)域內(nèi)充電站將會(huì)被推薦給駕駛員.圖1(b)所示的基于空間距離的服務(wù)覆蓋分析.計(jì)算外賣配送員在特定時(shí)間段內(nèi)的可達(dá)區(qū)域,以便準(zhǔn)時(shí)將餐食配送到位,因此,餐廳可以依據(jù)可達(dá)區(qū)域?qū)ε渌蛦T及車輛資源的分配進(jìn)行相應(yīng)的調(diào)整.
由于城市中交通情況每時(shí)每刻都發(fā)生著變化,因此可達(dá)區(qū)域隨著不同的起始時(shí)間也是不同的.如圖1(a)中的虛線圈和實(shí)線圈分別表示上午8:00和下午4:00的可達(dá)區(qū)域.
顯然,上午8:00時(shí)區(qū)域內(nèi)有2個(gè)充電站被推薦給駕駛員,而下午4:00時(shí)則有6個(gè)充電站滿足條件被推薦給駕駛員.同樣,在圖1(b)中,餐廳在下午7:00僅能為可達(dá)區(qū)域內(nèi)的2個(gè)客戶提供服務(wù),而在中午12:00則能為可達(dá)區(qū)域內(nèi)的4個(gè)客戶提供服務(wù).
現(xiàn)有的研究工作中主要通過(guò)分析靜態(tài)的道路網(wǎng)絡(luò)在空間可達(dá)性上支持上述城市應(yīng)用.例如,判定起點(diǎn)位置和終點(diǎn)位置間是否存在最短距離(歐式距離,曼哈頓距離等)的連接路段集.由于沒(méi)有考慮到城市中復(fù)雜的交通情況和可達(dá)區(qū)域隨時(shí)間變化的問(wèn)題,這類基于道路網(wǎng)絡(luò)的方法缺乏對(duì)時(shí)間因素的深入討論.
圖1 城市應(yīng)用示例
如今,我們通過(guò)配備在車輛上的車載定位裝置(如北斗,GPS)能夠方便地獲取大量的軌跡數(shù)據(jù),這些富含城市時(shí)空信息的軌跡數(shù)據(jù)為可達(dá)區(qū)域的挖掘提供了新的可能性.綜上所述,如何通過(guò)整合城市交通數(shù)據(jù)從中提取出空間和時(shí)間的特征來(lái)計(jì)算準(zhǔn)確的可達(dá)區(qū)域是一個(gè)關(guān)鍵問(wèn)題.
本文提出了一種利用大型城市出租車GPS軌跡數(shù)據(jù)挖掘的時(shí)空可達(dá)區(qū)域計(jì)算方法(RAC),由3個(gè)主要計(jì)算過(guò)程組成:1)可達(dá)點(diǎn)計(jì)算:根據(jù)查詢時(shí)間和空間約束以及查詢時(shí)間段對(duì)軌跡數(shù)據(jù)進(jìn)行過(guò)濾和提取得到目標(biāo)軌跡,接著通過(guò)合并目標(biāo)軌跡的軌跡點(diǎn)來(lái)計(jì)算唯一對(duì)應(yīng)的可達(dá)點(diǎn),以降低后續(xù)步驟的計(jì)算復(fù)雜度;2)覆蓋路段計(jì)算:通過(guò)將可達(dá)點(diǎn)映射到城市道路得到覆蓋路段,然后聚合同一覆蓋路段上符合距離約束的可達(dá)點(diǎn),在降低可達(dá)點(diǎn)集冗余性的同時(shí)簡(jiǎn)化了可達(dá)區(qū)域邊界的計(jì)算過(guò)程;3)邊界路段計(jì)算:通過(guò)依次選取最大軌跡抵達(dá)數(shù)的覆蓋路段作為邊界路段來(lái)保證可達(dá)區(qū)域的邊界在各個(gè)方向上都具有最大機(jī)會(huì)抵達(dá)的特性.
本文的主要貢獻(xiàn)總結(jié)如下:1)提出了一種新型的可達(dá)區(qū)域的計(jì)算方法(RAC),通過(guò)挖掘大量城市交通數(shù)據(jù)為城市應(yīng)用提供了一種可行的數(shù)據(jù)驅(qū)動(dòng)解決方法;2)為了有效地找到可到達(dá)區(qū)域的邊界,RAC引入了可達(dá)點(diǎn)的計(jì)算,過(guò)濾不在查詢時(shí)間段內(nèi)的軌跡數(shù)據(jù),找到由一系列軌跡點(diǎn)組成的目標(biāo)軌跡,接著計(jì)算得到唯一的可達(dá)點(diǎn),從而極大程度上降低了覆蓋路段計(jì)算方法的復(fù)雜度;3)為了找到可達(dá)區(qū)域在各個(gè)方向上的最大機(jī)會(huì)抵達(dá)的邊界,設(shè)計(jì)了一種基于最大軌跡抵達(dá)數(shù)的邊界路段選擇策略;4)為了評(píng)估RAC的性能,本文采用來(lái)自北京34040輛出租車1個(gè)月的真實(shí)軌跡數(shù)據(jù)進(jìn)行實(shí)驗(yàn).實(shí)驗(yàn)結(jié)果表明,RAC的可達(dá)區(qū)域面積僅是傳統(tǒng)方法的20%和30%;且在不同的起始位置實(shí)驗(yàn)中,RAC的軌跡覆蓋率達(dá)到74%左右;而在算法運(yùn)行效率實(shí)驗(yàn)中,RAC在不同規(guī)模的數(shù)據(jù)集中始終保持著最高的運(yùn)行效率.因此,本文提出的RAC與其他方法相比能夠得到更準(zhǔn)確的可達(dá)區(qū)域和保持較高的軌跡覆蓋率.綜上,RAC在計(jì)算效果和算法運(yùn)行效率上是可行的.
本文的結(jié)構(gòu)組織如下:第2節(jié)介紹相關(guān)工作;第3節(jié)介紹算法的基本概念與符號(hào)及算法設(shè)計(jì);第4節(jié)詳細(xì)討論RAC的3個(gè)主要計(jì)算過(guò)程;第5節(jié)介紹基于車輛軌跡數(shù)據(jù)的實(shí)驗(yàn)結(jié)果及分析;第6節(jié)總結(jié)全文.
本節(jié)將討論3個(gè)與城市可達(dá)區(qū)域緊密相關(guān)的研究主題,包括城市計(jì)算、軌跡查詢和可達(dá)性查詢.
城市計(jì)算作為一個(gè)新興的研究課題,集成了城市傳感、數(shù)據(jù)管理、數(shù)據(jù)分析和城市服務(wù).通過(guò)挖掘城市中每時(shí)每刻產(chǎn)生的數(shù)據(jù)來(lái)解決如交通擁堵、能源消耗和環(huán)境污染等各式各樣的問(wèn)題[1,2].文獻(xiàn)[3]提出了一種基于地理相似區(qū)域查詢技術(shù),通過(guò)分析興趣點(diǎn)(POIs)數(shù)據(jù)在城市中找出與給定區(qū)域Top-k相似的區(qū)域.文獻(xiàn)[4]提出了一種DRoF(Discovering Regions of different Functions)框架通過(guò)挖掘人類移動(dòng)軌跡數(shù)據(jù)同時(shí)結(jié)合域內(nèi)的興趣點(diǎn)(POIs)數(shù)據(jù)的匹配來(lái)區(qū)分城市中的不同功能區(qū)域.文獻(xiàn)[5]通過(guò)提取車輛GPS軌跡數(shù)據(jù)的集群來(lái)在地圖上建立人類移動(dòng)目的地,進(jìn)一步匹配已有的行政邊界數(shù)據(jù)來(lái)找尋人類可以抵達(dá)的邊界.上述在城市計(jì)算中各個(gè)方向的研究方法為基于軌跡數(shù)據(jù)的城市可達(dá)性查詢提供了研究思路.
軌跡查詢旨在通過(guò)對(duì)具有豐富時(shí)間空間信息的軌跡數(shù)據(jù)進(jìn)行查詢?yōu)槟壳俺鞘兄悄芙煌ǚ?wù)提供技術(shù)支持,其包含諸如范圍查詢和路徑規(guī)劃等熱門(mén)的研究課題[6-9].在范圍查詢研究中,基于軌跡數(shù)據(jù)在給定區(qū)域內(nèi)查詢移動(dòng)對(duì)象在某個(gè)時(shí)間段內(nèi)移動(dòng)到各個(gè)路段的概率,通過(guò)對(duì)路段概率的統(tǒng)計(jì)進(jìn)行路段的選擇.文獻(xiàn)[10]通過(guò)對(duì)軌跡數(shù)據(jù)庫(kù)內(nèi)每個(gè)移動(dòng)對(duì)象建立有效的索引來(lái)加速給定區(qū)域內(nèi)的移動(dòng)物體將朝向下一個(gè)位置移動(dòng)的概率計(jì)算.文獻(xiàn)[11]則是通過(guò)對(duì)大規(guī)模軌跡數(shù)據(jù)挖掘獲得給定區(qū)域中最具影響力的k個(gè)位置,以此為諸如廣告牌位置選址等應(yīng)用提供有效的建議.此外,路徑規(guī)劃廣泛地研究了在當(dāng)前城市路網(wǎng)中任何路段皆可達(dá)時(shí),從一個(gè)位置到另一個(gè)位置間的路徑如何進(jìn)行規(guī)劃的問(wèn)題.其中Dijkstra算法及相關(guān)改進(jìn)方案很好地解決了在城市路網(wǎng)中最短路徑查詢的問(wèn)題[12-15].文獻(xiàn)[16]提出了一種估計(jì)路段行駛時(shí)間的模型PTTE(Path Travel Time Estimation),通過(guò)細(xì)化挖掘最近軌跡數(shù)據(jù)和歷史軌跡數(shù)據(jù)來(lái)達(dá)到實(shí)時(shí)評(píng)估城市路網(wǎng)中任何路段上的行駛時(shí)間的目的.文獻(xiàn)[17]通過(guò)基于大規(guī)模歷史軌跡數(shù)據(jù)的路徑預(yù)測(cè)找到特定時(shí)間段內(nèi)車輛行駛最頻繁的路段.與上述軌跡查詢研究不同,本文的目標(biāo)是通過(guò)軌跡數(shù)據(jù)挖掘在城市中從起始位置和開(kāi)始時(shí)間計(jì)算出在給定時(shí)間間隔內(nèi)具有時(shí)空特征的可達(dá)區(qū)域.
與軌跡查詢不同的是,可達(dá)性查詢通常基于靜態(tài)圖論分析城市道路網(wǎng)絡(luò)中是否存在從一個(gè)位置到另一個(gè)位置的合適的路徑,以此來(lái)量化位置間可達(dá)性[18-21].文獻(xiàn)[22]提出了一種查詢方法OMP(Optimal Meeting Point Query)來(lái)尋找給定歐幾里德空間內(nèi)的道路網(wǎng)絡(luò)中的最佳相遇位置.另一些可達(dá)性研究集中在城市路網(wǎng)數(shù)據(jù)中的最近鄰查詢(Nearest Neighbor Query).其原理是基于空間最短距離在給定查詢區(qū)域內(nèi)的路網(wǎng)找出給定位置的k個(gè)最近鄰居(路段上位置或路段)[23,24],以此來(lái)評(píng)估給定位置和這些鄰居節(jié)點(diǎn)的可達(dá)性.然而,基于靜態(tài)圖論分析得出的可達(dá)性查詢結(jié)果僅表示空間關(guān)系,而城市交通狀況隨時(shí)間變化很大,路段間的可達(dá)性隨著時(shí)間的推移也會(huì)有很大的變化,顯然在依賴查詢時(shí)間的城市應(yīng)用中,已有的研究無(wú)法提供有效的可達(dá)性判斷.而車輛軌跡數(shù)據(jù)作為一種時(shí)空數(shù)據(jù)能夠優(yōu)化可達(dá)性查詢.文獻(xiàn)[25]提出一種新型的軌跡數(shù)據(jù)驅(qū)動(dòng)的可達(dá)性查詢方法,根據(jù)在道路網(wǎng)絡(luò)上收集的大量城市軌跡數(shù)據(jù)找到可達(dá)的路段,但是無(wú)法提供從查詢起始位置出發(fā)各個(gè)方向上都是最大機(jī)會(huì)抵達(dá)的路段.綜上所述,本文提出的時(shí)空可達(dá)區(qū)域計(jì)算方法將動(dòng)態(tài)的出租車GPS軌跡與靜態(tài)的城市道路網(wǎng)絡(luò)相關(guān)聯(lián),并通過(guò)基于最大軌跡抵達(dá)數(shù)的邊界路段選擇策略來(lái)保證可達(dá)區(qū)域的邊界在各個(gè)方向上都是最大機(jī)會(huì)抵達(dá),為城市應(yīng)用提供具有時(shí)間和空間特征的可達(dá)區(qū)域計(jì)算方法.
本節(jié)給出時(shí)空可達(dá)區(qū)域計(jì)算方法(RAC)的基本概念與符號(hào)以及算法設(shè)計(jì),這些基本概念和符號(hào)的使用將在第4節(jié)進(jìn)行具體的描述.
為了從Trj中得到用于計(jì)算可達(dá)區(qū)域的目標(biāo)軌跡,本文引入了查詢時(shí)空點(diǎn)和查詢時(shí)間段對(duì)其約束.查詢時(shí)空點(diǎn)指在計(jì)算時(shí)空可達(dá)區(qū)域時(shí)的起始位置和起始時(shí)間,在算法中的作用是對(duì)軌跡trji進(jìn)行時(shí)間-空間復(fù)合約束,記為QP=(qlon,qlat,st),其中qlon和qlat分別是起始位置的經(jīng)度和緯度,st是起始時(shí)間.查詢時(shí)間段則是指自查詢時(shí)空點(diǎn)QP出發(fā)計(jì)算時(shí)空可達(dá)區(qū)域的給定時(shí)間片段,依據(jù)自查詢時(shí)空點(diǎn)開(kāi)始行駛的時(shí)間基數(shù)eta和時(shí)間區(qū)間閾值εTT計(jì)算得到,記為T(mén)=[st+eta-εTT,st+eta+εTT].
當(dāng)軌跡trji滿足查詢時(shí)空點(diǎn)QP的時(shí)間-空間復(fù)合約束條件且在查詢時(shí)間段T內(nèi)存在有序軌跡點(diǎn)集時(shí),則將該有序軌跡點(diǎn)集組成的軌跡片段稱為目標(biāo)軌跡oti,且所有車輛軌跡中的目標(biāo)軌跡集用OT={ot1,ot2,…,otl}表示.
本文以如圖2示例來(lái)詳細(xì)地描述從軌跡中提取目標(biāo)軌跡的過(guò)程.令北京火車站為查詢時(shí)空點(diǎn)QP=(116.4210°E,39.9035°N,8:00am),查詢時(shí)間段為T(mén)=[8:18am,8:22am](εTT=2minutes),車輛V1、V2和V3產(chǎn)生的軌跡trj1、trj2和trj3用單實(shí)線表示,目標(biāo)軌跡用雙實(shí)線表示.其中,V1在8:00am-8:22am期間處于行駛狀態(tài),因此選擇trj1中T區(qū)間內(nèi)的軌跡作為目標(biāo)軌跡(途徑A和C間產(chǎn)生的軌跡).V2在8:05am到達(dá)D隨即停止行駛,由于車輛配備的GPS設(shè)備通常定期產(chǎn)生軌跡數(shù)據(jù),而不對(duì)車輛行駛狀態(tài)進(jìn)行檢查,因此trj2在8:05am之后仍記錄著D點(diǎn)位置作為軌跡數(shù)據(jù).通常,現(xiàn)有的研究在進(jìn)行軌跡查詢或計(jì)算時(shí)往往考慮trj2,而trj2顯然不適用于[8:18am,8:22am]可達(dá)區(qū)域的計(jì)算(trj2應(yīng)當(dāng)用于8:05am左右的可達(dá)區(qū)域計(jì)算).同樣的,V2到達(dá)F后隨即停止行駛,因此選擇trj3在8:18am-8:20am期間的軌跡作為目標(biāo)軌跡.
圖2 目標(biāo)軌跡示例
為進(jìn)一步簡(jiǎn)化后續(xù)計(jì)算,本文引入可達(dá)點(diǎn)對(duì)目標(biāo)軌跡進(jìn)行聚合運(yùn)算.可達(dá)點(diǎn)由特定位置的空間信息和經(jīng)過(guò)該位置的目標(biāo)軌跡數(shù)組成,記為rpi=(rloni,rlati,numi),其中rloni和rlati表示該位置的經(jīng)度和緯度,numi表示抵達(dá)或經(jīng)過(guò)該位置的目標(biāo)軌跡數(shù)量,稱為可達(dá)點(diǎn)軌跡數(shù).由于可達(dá)點(diǎn)rpi是由oti計(jì)算得到,因此每條目標(biāo)軌跡oti對(duì)應(yīng)著一個(gè)可達(dá)點(diǎn),故初始可達(dá)點(diǎn)集為RP={rp1,rp2,…,rpl}.
接下來(lái),通過(guò)引入路段、覆蓋路段及邊界路段基本概念找出構(gòu)成可達(dá)區(qū)域邊界的路段.路段是指由起點(diǎn)和終點(diǎn)構(gòu)成且不包含交叉路口的道路片段,記為rj=(oj,dj).路段的起點(diǎn)用oj=(olonj,olatj)表示,olonj和olatj分別是起點(diǎn)的經(jīng)度和緯度.相似地,路段的終點(diǎn)用dj=(dlonj,dlatj)表示.為便于分析,在以QP為原點(diǎn)的基于地理信息的坐標(biāo)系中,本文令路段兩端點(diǎn)與查詢時(shí)空點(diǎn)QP的連線與橫軸方向的夾角較小者為起點(diǎn),較大者為終點(diǎn).全部路段集則記為R={r1,r2,…,rz}.
通過(guò)執(zhí)行邊界路段選擇策略從覆蓋路段集中選出的構(gòu)成可達(dá)區(qū)域邊界的覆蓋路段稱為邊界路段,記為brj,邊界路段集記為BR={br1,br2,…,bry}.邊界路段選擇策略使用覆蓋路段的角度信息進(jìn)行路段篩選,該角度信息包括覆蓋路段crj的起點(diǎn)oj、終點(diǎn)dj以及可達(dá)點(diǎn)集RRPj和時(shí)空查詢點(diǎn)QP連線與橫軸正方向的角度,記為craj.計(jì)算方式如下:
對(duì)任意覆蓋路段crj∈CR,計(jì)算起點(diǎn)oj和終點(diǎn)dj與時(shí)空查詢點(diǎn)QP連線與橫軸正方向的角度,分別記為oaj和daj,可達(dá)點(diǎn)集RRPj中的任意可達(dá)點(diǎn)rpτ和時(shí)空查詢點(diǎn)QP連線與橫軸正方向的角度記為rpaτ,可達(dá)點(diǎn)角度集記為RPAj={rpa1,…,rpaτ,…,rpaω},crj的覆蓋路段角度記為craj={oaj,daj,RPAj}.所有覆蓋路段的角度構(gòu)成覆蓋路段角度集,記為CRA={cra1,cra2,…,crax}.
本文中廣泛使用的符號(hào)及術(shù)語(yǔ)由表1給出.
本文提出的時(shí)空可達(dá)區(qū)域計(jì)算方法RAC由以下三個(gè)計(jì)算步驟構(gòu)成.
表1 符號(hào)和術(shù)語(yǔ)
Table 1 Notations and terminologies
符號(hào)描 述Trj軌跡集,Trj = {trj1,trj2,…,trjn}QP時(shí)空查詢點(diǎn),QP=(qlon,qlat,st)T查詢時(shí)間段,T=[st+eta-εTT,st+eta+εTT]OT目標(biāo)軌跡集,OT={ot1,ot2,…,otl}RP可達(dá)點(diǎn)集, RP={rp1,rp2,…,rpl}R路段集,R={r1,r2,…,rz}CR覆蓋路段集,CR={cr1,cr2,…,crx}BR邊界路段集,BR={br1,br2,…,bry}CRA覆蓋路段角度集,CRA={cra1,cra2,…,crax}εQT查詢時(shí)空約束的時(shí)間閾值εQD查詢時(shí)空約束的距離閾值εTT查詢時(shí)間段T的時(shí)間閾值εDD可達(dá)點(diǎn)合并過(guò)程的距離閾值
1)可達(dá)點(diǎn)計(jì)算:首先在軌跡集Trj中找出滿足查詢時(shí)空點(diǎn)的時(shí)空約束且在查詢時(shí)間段T的軌跡數(shù)據(jù)記為目標(biāo)軌跡oti,進(jìn)一步計(jì)算出目標(biāo)軌跡集OT.然后通過(guò)合并oti∈OT的軌跡點(diǎn)來(lái)得到可達(dá)點(diǎn)rpi,進(jìn)一步計(jì)算出可達(dá)點(diǎn)集RP.
2)覆蓋路段計(jì)算:首先通過(guò)匹配可達(dá)點(diǎn)集RP與路段集R,得到覆蓋路段集CR.為了簡(jiǎn)化下一步邊界路段計(jì)算過(guò)程,需對(duì)覆蓋路段crj上的可達(dá)點(diǎn)進(jìn)行合并.具體地,若覆蓋路段crj上存在距離小于等于給定距離閾值εDD的兩個(gè)可達(dá)點(diǎn)時(shí),則將這兩個(gè)可達(dá)點(diǎn)合并成一個(gè)新的可達(dá)點(diǎn).
3)邊界路段計(jì)算:首先從覆蓋路段集CR中選出軌跡抵達(dá)數(shù)最大的覆蓋路段crm加入到邊界路段集BR中.然后依據(jù)覆蓋路段角度cram,更新其他覆蓋路段crn及其角度值cran.
(1)
其中,εQD是QP時(shí)空約束檢查的距離閾值,εQT是QP時(shí)空約束檢查的時(shí)間閾值.然后,從QP時(shí)空約束檢查返回值為T(mén)RUE的軌跡trji中選出位于查詢時(shí)間段T的序列點(diǎn)記為目標(biāo)軌跡oti,若trji中不存在位于T的序列點(diǎn)則將trji拋棄.目標(biāo)軌跡oti表示如下:
(2)
對(duì)每條目標(biāo)軌跡oti計(jì)算得出可達(dá)點(diǎn)rpi,其中rpi的經(jīng)度rlon由oti的序列點(diǎn)的平均經(jīng)度計(jì)算得到,rpi的緯度rlat由oti的序列點(diǎn)的平均緯度計(jì)算得到.由于每條目標(biāo)軌跡映射到唯一的可達(dá)點(diǎn),因此可達(dá)點(diǎn)軌跡數(shù)numi為1,rpi的計(jì)算公式如下:
(3)
可達(dá)點(diǎn)計(jì)算過(guò)程由算法1給出.第1-2行初始化目標(biāo)軌跡集OT與可達(dá)點(diǎn)集RP為空集.第3-8行遍歷車輛軌跡trji∈Trj,判斷trji經(jīng)QP時(shí)空約束檢查的返回值,若返回值為T(mén)RUE,則將trji在查詢時(shí)間段內(nèi)的軌跡記為目標(biāo)軌跡oti,并加入目標(biāo)軌跡集OT,反之則進(jìn)行下一條軌跡判斷.第9-13行遍歷目標(biāo)軌跡oti∈OT,計(jì)算可達(dá)點(diǎn)rpi的相應(yīng)屬性值.第14行終止算法并返回可達(dá)點(diǎn)集RP.
算法1.可達(dá)點(diǎn)計(jì)算算法
輸入:1)Trj={trj1,trj2,…,trjn},
2)QP=(qlon,qlat,st),
3)T=[st+eta-εTT,st+eta+εTT].
輸出:RP
1. initializeOT=?;
2. initializeRP=?;
3.foreachtrji∈Trjdo
4.iftheQPchecking fortrjireturns TRUEthen
5. select the part oftrjiduringTasoti;
6.OT←{oti}∪OT;
7.end
8.end
9.foreachoti∈OTdo
10. calculaterloni,rlatiandnumiofrpi;
11.rpi=(rloni,rlati,numi);
12.RP←{rpi}∪RP;
13.end
14.returnRP;
算法1執(zhí)行后得到初始可達(dá)點(diǎn)集RP,由于每條目標(biāo)軌跡對(duì)應(yīng)著一個(gè)可達(dá)點(diǎn),龐大的輸入軌跡數(shù)量導(dǎo)致可達(dá)點(diǎn)的數(shù)量龐大且位置分散,不利于時(shí)空可達(dá)區(qū)域的計(jì)算.因此,本方法引入覆蓋路段來(lái)合并位于同一路段且距離近的可達(dá)點(diǎn),以降低數(shù)據(jù)的冗余性,提高計(jì)算的效率和結(jié)果的精度.
算法2給出覆蓋路段計(jì)算的偽代碼.第1行初始化覆蓋路段集CR為空集.第2-12行檢查每條路段rj上是否存在可達(dá)點(diǎn)rpi,若存在,則rj是覆蓋路段,將rj加入到CR中,同時(shí)更新RRPj和tnj的屬性值,然后將rpi從RP中刪除.第13-21行,當(dāng)位于同一覆蓋路段上的兩個(gè)可達(dá)點(diǎn)間的距離小于等于預(yù)設(shè)距離時(shí),將其合并為一個(gè)新的可達(dá)點(diǎn).最后,第22行終止算法并返回覆蓋路段集CR.
算法2.覆蓋路段計(jì)算算法
輸入:1)RP={rp1,rp2,…,rpl},
2)R={r1,r2,…,rz}.
輸出:CR
1. initializeCR=?;
2.foreachrj∈Rdo
3.ifRP= ?then
4. break;
5.end
6.if?rpi∈RPwhich is onrjthen
7.CR←{rj}∪CR;
8.RRPj←{rpi}∪RRPj;
9.tnj=numi+tnj;
10.RP←RP-rpi;
11.end
12.end
13.foreachcrj∈CRdo
14.forany two reachable pointsrpα,rpβ∈RRPjdo
15.ifdis(rpα,rpβ)≤εDDthen
16. mergerpαandrpβintorpnew;
17.RRPj←RRPj-rpα-rpβ;
18.RRPj←{rpnew}∪RRPj;
19.end
20.end
21.end
22.returnCR
在可達(dá)點(diǎn)合并過(guò)程中,計(jì)算位于同一覆蓋路段crj上的可達(dá)點(diǎn)rpα和rpβ的距離dis(rpα,rpβ),并檢查是否滿足下式約束.
dis(rpα,rpβ)≤εDD
(4)
其中,εDD是給定合并過(guò)程的距離閾值.若滿足約束,則合并后的可達(dá)點(diǎn)rpnew通過(guò)下式計(jì)算得出:
(5)
顯然,新得到的可達(dá)點(diǎn)rpnew位于可達(dá)點(diǎn)rpα和rpβ之間,且抵達(dá)rpnew空間位置的軌跡數(shù)是可達(dá)點(diǎn)rpα和rpβ的軌跡數(shù)的總和.
圖3 可達(dá)點(diǎn)的路段匹配和合并示例
圖3簡(jiǎn)要地描述可達(dá)點(diǎn)的路段匹配和合并過(guò)程,其中實(shí)線是不存在可達(dá)點(diǎn)的路段,陰影線是覆蓋路段,圓形是合并前的可達(dá)點(diǎn),橢圓內(nèi)的可達(dá)點(diǎn)之間的距離小于等于距離閾值.合并后的可達(dá)點(diǎn)用菱形表示,可達(dá)點(diǎn)合并后的效果如圖4中右圖所示.
在本文構(gòu)建的以查詢時(shí)空點(diǎn)QP為原點(diǎn)的基于地理信息的坐標(biāo)系中,在同一方向上通常存在多條覆蓋路段.如何選擇最大機(jī)會(huì)抵達(dá)的覆蓋路段作為邊界路段是提高時(shí)空可達(dá)區(qū)域準(zhǔn)確性的關(guān)鍵問(wèn)題.因此,本文設(shè)計(jì)了一種基于最大軌跡抵達(dá)數(shù)的邊界路段選擇策略,目的是從覆蓋路段集CR中選出構(gòu)成時(shí)空可達(dá)區(qū)域的邊界路段集BR,提高計(jì)算結(jié)果的精度.
邊界路段計(jì)算過(guò)程由算法3給出.第1行初始化邊界路段集BR為空集.第2-4行從CR中選擇軌跡抵達(dá)數(shù)最大的crm加入到BR中.第5-7行遍歷覆蓋路段角度集CRA,當(dāng)路段角度cran被cram包含時(shí)刪除路段crn,否則執(zhí)行第8-22行更新crn的屬性值.待crn更新結(jié)束后執(zhí)行23行刪除路段crm.第25行終止算法并返回邊界路段集BR.
算法3.邊界路段計(jì)算算法
輸入:1)CR={cr1,cr2,…,crx},
2)CRA={cra1,cra2,…,crax}.
輸出:BR
1. initializeBR=?;
2.whileCR≠?do
3. selectcrm∈CRwith the maximumtnm
4.BR←{crm}∪BR;
5.foreachcran∈CRAdo
6.ifdam 7.CR←CR-crn; 8.else 9.foreachrpar∈RPAndo 10.ifoam 11.RPAn←RPAn-rpar; 12.RRPn←RRPn-rpr; 13.elseifoan 14. CASE 1; 15.elseifoam 16. CAES 2; 17.elseifoan 18. CASE 3; 19.end 20.end 21.end 22.end 23.CR←CR-crm; 24.end 25.returnBR; 具體地,基于最大軌跡抵達(dá)數(shù)的邊界路段選擇策略由兩個(gè)階段組成: 第1階段,從CR中選出軌跡抵達(dá)數(shù)最大的覆蓋路段crm,加入邊界路段集BR中. 第2階段,遍歷覆蓋路段角度集CRA,當(dāng)任意覆蓋路段crn的路段角度cran與選定的覆蓋路段crm的路段角度cram存在以下角度關(guān)系時(shí): oam (6) 此時(shí)cran被cram全包含,則將crn從CR中刪除.反之更新crn的屬性值,將滿足dam 情況1(CASE 1).存在以下路段角度關(guān)系時(shí): oan (7) 此時(shí)依據(jù)路段角度cran,將crn拆分成角度范圍[oan,oam)的子路段crα=(oα,dα,RRPα,tnα)和角度范圍(dam,dan]的子路段crβ=(oβ,dβ,RRPβ,tnβ).對(duì)任意可達(dá)點(diǎn)rpr∈RRPn,當(dāng)rpar 情況2(CASE 2).存在以下角度關(guān)系時(shí): oam (8) 此時(shí)對(duì)crn進(jìn)行更新操作,從RPAn選取最小值rpas,將rps的空間屬性值賦予dn,依據(jù)RRPn計(jì)算軌跡抵達(dá)數(shù)tnn. 情況3(CASE 3).存在以下角度關(guān)系時(shí): oan (9) 此時(shí)對(duì)crn進(jìn)行更新操作,從RPAn選取最大值rpae,將rpe的空間屬性值賦予on,依據(jù)RRPn計(jì)算軌跡抵達(dá)數(shù)tnn. 對(duì)crn更新結(jié)束后,則將crm從CR中刪除.判斷CR是否為空集,若為空,結(jié)束遍歷,否則繼續(xù)執(zhí)行策略. 算法1首先遍歷軌跡trji∈Trj中的軌跡點(diǎn),檢查是否滿足QP時(shí)空約束以及是否存在時(shí)間戳在查詢時(shí)間段內(nèi)的序列點(diǎn)集.由于不同軌跡的軌跡點(diǎn)數(shù)量不同,以|trji|max表示軌跡點(diǎn)數(shù)量的最大值,從軌跡集Trj計(jì)算目標(biāo)軌跡集OT過(guò)程的時(shí)間復(fù)雜度為O(|Trj|×|trji|max).接下來(lái),為每條目標(biāo)軌跡oti∈OT計(jì)算可達(dá)點(diǎn),得到可達(dá)點(diǎn)集RP,時(shí)間復(fù)雜度為O(|OT|).由于|OT|?|Trj|×|trji|max,因此算法1最終的時(shí)間復(fù)雜度為O(|Trj|×|trji|max). 算法2首先遍歷路段集R與可達(dá)點(diǎn)集RP,以時(shí)間復(fù)雜度O(|R|×|RP|)從路段集R中篩選覆蓋路段集CR.接著在每條覆蓋路段crj∈CR中,檢查可達(dá)點(diǎn)集RRPj,將距離相近的可達(dá)點(diǎn)進(jìn)行合并,以|RRPj|max表示一條覆蓋路段上可達(dá)點(diǎn)數(shù)的最大值,該過(guò)程的時(shí)間復(fù)雜度為O(|CR|×|RRPj|max).由于|CR|?|R|,|RRPj|max?|RP|,因此算法2最終的時(shí)間復(fù)雜度為O(|R|×|RP|). 算法3的第1階段以時(shí)間復(fù)雜度O(|CR|)從覆蓋路段集CR中選出軌跡抵達(dá)數(shù)最大的覆蓋路段crm.,第2階段以時(shí)間復(fù)雜度O(|CRA|)從覆蓋路段角度集CRA中篩選出與crm存在如式(6)角度關(guān)系的覆蓋路段crn,并以時(shí)間復(fù)雜度為O(|RPAn|)更新crn的屬性值.由于算法2合并可達(dá)點(diǎn)過(guò)程大大降低了crn的可達(dá)點(diǎn)集RRPn中的節(jié)點(diǎn)數(shù),RPAn中的角度數(shù)也相應(yīng)降低,故|RPAn|?|CRA|,因此算法3最終的時(shí)間復(fù)雜度為O(|CR|×|CRA|). 為了評(píng)估本文提出的城市可達(dá)區(qū)域計(jì)算方法RAC的性能,利用北京市出租車軌跡數(shù)據(jù)開(kāi)展了廣泛的實(shí)驗(yàn).原始的出租車軌跡數(shù)據(jù)收集于2015年6月份且行駛區(qū)域集中在北京市6環(huán)路以內(nèi)的34,040輛出租車,總計(jì)有397,423,783條記錄,具體的數(shù)據(jù)格式由表2給出.該數(shù)據(jù)集尚未公開(kāi). 表2 數(shù)據(jù)集的格式 Table 2 Format of dataset 字段格 式車輛ID5位數(shù)字: ddddd時(shí)間戳yyyy-mm-dd-hh-mm-ss; year-month-day-hour-minute-secondGPS緯度ddd.dddd;度GPS經(jīng)度ddd.dddd;度速度ddd;厘米/秒 為了提高計(jì)算的準(zhǔn)確性和執(zhí)行效率,本文首先對(duì)原始軌跡數(shù)據(jù)進(jìn)行預(yù)處理操作.具體地,本文清理了冗余的和無(wú)效的軌跡數(shù)據(jù)(速度為0),并提取了緯度在39.6578°N和40.1928°N,經(jīng)度在116.0052°E和116.7357°E之間的數(shù)據(jù)構(gòu)成了軌跡數(shù)據(jù)集Trj.同時(shí),本文從OpenStreetMap[27]提取了2000多條道路數(shù)據(jù)構(gòu)成路段集R,詳細(xì)的實(shí)驗(yàn)配置如表3所示. 表3 參數(shù)設(shè)置 Table 3 Experiment configurations 參數(shù)值起始位置北京火車站:(116.4210°E,39.9035°N)王府井:(116.4052°E,39.9066°N)天通苑:(116.4062°E,40.0694°N)中關(guān)村:(116.3105°E,39.9817°N)起始時(shí)間{00:05,01:05,…,23:05}基礎(chǔ)行駛時(shí)間30分鐘查詢時(shí)間段{[00:30,00:40],[01:30,01:40],…,[23:30,23:40]}查詢時(shí)空約束的時(shí)間閾值30秒查詢時(shí)空約束的距離閾值100米查詢時(shí)間段T的時(shí)間閾值5分鐘可達(dá)點(diǎn)合并過(guò)程的距離閾值500米 為了驗(yàn)證本文提出的可達(dá)區(qū)域計(jì)算方法的適用性,本文選出了5個(gè)不同的起始位置,其中以王府井為起始位置的實(shí)驗(yàn)將在5.1節(jié)詳細(xì)討論,其他起始位置點(diǎn)的實(shí)驗(yàn)將在5.2節(jié)討論. 本文選擇了經(jīng)典的凸包算法GRAHAM[28]和最遠(yuǎn)距離優(yōu)先的ANGLE算法作為對(duì)比算法.GRAHAM算法在基于地理的坐標(biāo)系中繪制數(shù)據(jù)集的凸包來(lái)構(gòu)成可達(dá)區(qū)域,凸包內(nèi)所有的可達(dá)點(diǎn)將會(huì)被覆蓋.ANGLE算法選擇每個(gè)方向上最遠(yuǎn)的可達(dá)點(diǎn)作為邊界點(diǎn),并對(duì)邊界點(diǎn)進(jìn)行順(逆)時(shí)針連接,構(gòu)成非凸多邊形區(qū)域以此作為可達(dá)區(qū)域. 本文引入了可達(dá)區(qū)域的面積和軌跡覆蓋率作為算法有效性的評(píng)價(jià)指標(biāo),顯然,可達(dá)區(qū)域的面積足夠大的時(shí)候可以覆蓋所有的軌跡,但可達(dá)區(qū)域的精度較低且不具有實(shí)際的應(yīng)用意義.軌跡覆蓋率則是可達(dá)區(qū)域內(nèi)的目標(biāo)軌跡數(shù)與所有目標(biāo)軌跡數(shù)的比值,在面積相同情況下,軌跡覆蓋率越高意味著更好的算法性能. 以王府井為查詢時(shí)空點(diǎn)的起始位置,計(jì)算不同起始時(shí)間的可達(dá)區(qū)域和軌跡覆蓋率,以此來(lái)評(píng)估RAC,GRAHAM和ANGLE方法的性能,其結(jié)果如圖4所示. 圖4 不同起始時(shí)間的計(jì)算結(jié)果 如圖4(a)所示,由RAC,GRAHAM,ANGLE方法計(jì)算得到的可達(dá)區(qū)域面積隨著起始時(shí)間的不同呈現(xiàn)出不同的特點(diǎn),但GRAHAM和ANGLE計(jì)算得到的可達(dá)區(qū)域面積總是比RAC大250-350平方公里.由于城市交通的急劇變化,GRAHAM和ANGLE的可達(dá)區(qū)域面積在幾個(gè)時(shí)間段內(nèi)劇烈波動(dòng),例如上午10點(diǎn)至下午3點(diǎn).顯然,經(jīng)過(guò)可達(dá)點(diǎn)的合并以及最大軌跡抵達(dá)數(shù)的邊界選擇策略,RAC在不同起始時(shí)間總是比GRAHAM和ANGLE得出更小且穩(wěn)定的可達(dá)區(qū)域.此外,在交通高峰時(shí)期,如上午8:00至9:00和下午6:00至7:00,RAC的可達(dá)區(qū)域面積有顯著變化,可以敏銳地捕捉出隨著交通情況的改變引起的可達(dá)區(qū)域變化. 為了更好地說(shuō)明開(kāi)始時(shí)間的影響,本文可視化分析起始時(shí)間為上午4:00、上午10:00、下午6:00和下午11:00的可達(dá)區(qū)域,結(jié)果見(jiàn)圖5. 如圖5所示,與GRAHAM方法和ANGLE方法相比,在上述4個(gè)起始時(shí)間中,RAC總體上得出更小的可達(dá)區(qū)域.同時(shí),如圖5(a)和圖5(c)所示,當(dāng)起始時(shí)間為上午4時(shí)和下午6時(shí),可達(dá)區(qū)域均覆蓋了二環(huán)路內(nèi)的絕大多數(shù)區(qū)域,差異體現(xiàn)在主干道路上(圖中部的東西向道路復(fù)興路),這是由于上午4時(shí)車輛在主干道的速度往往要比下午6時(shí)高,因此在貫穿城區(qū)的主干道東西方向上能夠到抵達(dá)更遠(yuǎn)的位置.此外,如圖5(b)和圖5(d)所示,當(dāng)起始時(shí)間為上午10時(shí)和下午11時(shí),RAC具有更大且相對(duì)穩(wěn)定的可達(dá)區(qū)域,覆蓋了三環(huán)內(nèi)大部分區(qū)域.綜上所述,不同起始時(shí)間的可達(dá)區(qū)域差異主要集中在主干道路和高速公路附近,而環(huán)路內(nèi)的可達(dá)區(qū)域隨時(shí)間推移相對(duì)穩(wěn)定. 圖5 王府井在不同起始時(shí)間的可達(dá)區(qū)域 為了驗(yàn)證本文提出的計(jì)算方法的高效性,針對(duì)不同規(guī)模的初始可達(dá)點(diǎn)集,分析GRAHAM方法、ANGLE方法和RAC方法的運(yùn)行效率.其中,以王府井為查詢時(shí)空點(diǎn)的起始位置,剩余實(shí)驗(yàn)參數(shù)同表2,依據(jù)表2的查詢時(shí)間段對(duì)初始可達(dá)點(diǎn)集進(jìn)行規(guī)模劃分,最終劃分目標(biāo)軌跡的數(shù)量為2500條至20000條的10個(gè)不同規(guī)模數(shù)的目標(biāo)軌跡數(shù)據(jù)集.如圖6所示,GRAHAM方法和ANGLE方法與本文的RAC方法有著明顯的性能差距,尤其是在目標(biāo)軌跡數(shù)量較大時(shí),RAC方法顯示出極短的運(yùn)行時(shí)間,這是由于GRAHAM和ANGLE采取循環(huán)遍歷可達(dá)點(diǎn)來(lái)尋求邊界點(diǎn)的方法,因此隨著數(shù)據(jù)的增大運(yùn)行時(shí)間呈現(xiàn)急速增長(zhǎng)的趨勢(shì).而RAC通過(guò)合并在同一覆蓋路段上的可達(dá)點(diǎn)操作大大減少了邊界路段的計(jì)算時(shí)間,隨著目標(biāo)軌跡數(shù)的增加RAC保持著較短的運(yùn)行時(shí)間.綜上所述,RAC在不同規(guī)模數(shù)據(jù)集上的運(yùn)行效率遠(yuǎn)遠(yuǎn)優(yōu)于GRAHAM方法和ANGLE方法. 圖6 算法運(yùn)行時(shí)間結(jié)果 除了5.1節(jié)討論的王府井,本文對(duì)其他三個(gè)典型的城市功能區(qū)內(nèi)的起始位置進(jìn)行了實(shí)驗(yàn),包括大型公共交通樞紐北京火車站、大型居民住宅區(qū)天通苑和大型科技辦公區(qū)中關(guān)村.不同起始位置的可達(dá)區(qū)域面積和軌跡覆蓋率的結(jié)果如圖7所示. 從圖7(a)看出RAC的可達(dá)區(qū)域面積在大部分起始時(shí)間保持穩(wěn)定,這是因?yàn)檫x擇從北京火車站出發(fā)的出租車的目的地總是相對(duì)均勻地分布在城市中.如圖7(d)所示,RAC以北京火車站為起始位置的軌跡覆蓋率比較穩(wěn)定,特別是在上午9:00至下午5:00之間,這是由于北京火車站位于市中心,受早晚高峰影響,這個(gè)時(shí)間段的可達(dá)區(qū)域相對(duì)集中,軌跡覆蓋率更加穩(wěn)定.在圖7(b)和圖7(c)中,RAC的可達(dá)區(qū)域在起始時(shí)間為上午8時(shí)到9時(shí)和下午6時(shí)到8時(shí)顯示相反的趨勢(shì),這是因?yàn)榇蠖鄶?shù)人早高峰時(shí)從居民區(qū)天通苑離開(kāi),而晚高峰時(shí)從中關(guān)村工作地點(diǎn)回家.二者的軌跡覆蓋率在圖7(e)和圖7(f)中顯示出類似的趨勢(shì). 圖7 不同起始位置的可達(dá)區(qū)域面積和軌跡覆蓋率結(jié)果 為實(shí)現(xiàn)定量分析,當(dāng)起始位置為北京火車站、天通苑和中關(guān)村時(shí),本文統(tǒng)計(jì)了RAC、GRAHAM和ANGLE在24個(gè)起始時(shí)間的平均可達(dá)區(qū)域面積和軌跡覆蓋率,其結(jié)果列于表4中. 表4 平均可達(dá)區(qū)域和軌跡覆蓋率 Table 4 Statistical results with different starting locations 平均面積(sq.km.)RACGRAHAMANGLE平均軌跡覆蓋率(%)RACGRAHAMANGLE北京火車站78.74500.48377.5274.4810095.19天通苑 91.19523.93408.0473.8810095.50中關(guān)村 66.27490.03399.7274.2310095.72 從表4看出,GRAHAM和ANGLE在不同的QP起始位置情況下計(jì)算的可達(dá)區(qū)域面積比RAC大得多.以GRAHAM和ANGLE的可達(dá)區(qū)域面積和軌跡覆蓋率的平均結(jié)果為參照,RAC的可達(dá)區(qū)域面積僅是傳統(tǒng)方法的30%,同時(shí)覆蓋了74%的目標(biāo)軌跡.總的來(lái)說(shuō),RAC方法較傳統(tǒng)方法輸出更準(zhǔn)確的可達(dá)區(qū)域. 針對(duì)現(xiàn)有城市可達(dá)性相關(guān)研究對(duì)時(shí)空特性的分析不足,本文提出一種基于大規(guī)模富有時(shí)空信息的出租車軌跡數(shù)據(jù)和道路數(shù)據(jù)的城市可達(dá)區(qū)域計(jì)算方法(RAC).首先,根據(jù)查詢時(shí)空點(diǎn)的時(shí)間和空間約束,從軌跡集中選擇在查詢時(shí)間段內(nèi)的目標(biāo)軌跡,并為每個(gè)目標(biāo)軌跡計(jì)算唯一的可達(dá)點(diǎn)以簡(jiǎn)化后續(xù)步驟.然后將可達(dá)點(diǎn)匹配到路段得到覆蓋路段,合并同一覆蓋路段上的鄰近可達(dá)點(diǎn)以降低數(shù)據(jù)冗余.最后,通過(guò)基于最大軌跡抵達(dá)數(shù)的邊界路段選擇策略,在覆蓋路段中選擇出最大機(jī)會(huì)抵達(dá)的邊界路段,提高可達(dá)區(qū)域的精度.基于北京市34040輛出租車1個(gè)月的真實(shí)軌跡數(shù)據(jù)和2000多條道路數(shù)據(jù)的實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)方法相比,RAC計(jì)算得到更準(zhǔn)確的可達(dá)區(qū)域且在不同規(guī)模數(shù)據(jù)集中擁有穩(wěn)定且高效的執(zhí)行效率.后續(xù),將對(duì)城市中不同類型的應(yīng)用進(jìn)行研究,優(yōu)化可達(dá)區(qū)域邊界路段的選擇,進(jìn)一步提高RAC的適用性.4.4 算法性能分析
5 實(shí) 驗(yàn)
5.1 查詢時(shí)空點(diǎn)中起始時(shí)間的實(shí)驗(yàn)分析
5.2 算法運(yùn)行時(shí)間分析
5.3 查詢時(shí)空點(diǎn)中起始位置的影響
6 總 結(jié)