盧曉龍
(山東省地質(zhì)測繪院,山東 濟(jì)南 250013)
近年來,我國大中城市普遍都遇到了交通擁堵的問題。首先,城市長期按照“職住就近”原則安排城市用地的格局被打破,通勤活動(dòng)在城市中成為普遍現(xiàn)象[1]。其次,快速的城市化腳步又促使城市常住人口的飛速增長。最后,不斷普及的私家汽車也給交通帶來了巨大的壓力[1]。
為了緩解交通壓力,公共交通系統(tǒng)成為城市大力發(fā)展的對(duì)象[3-5]。空間數(shù)據(jù)模型是實(shí)現(xiàn)公共交通系統(tǒng)管理和出行規(guī)劃等諸多應(yīng)用的基礎(chǔ)。目前,大量的相關(guān)工作基本集中在巴士系統(tǒng)的數(shù)據(jù)模型構(gòu)建上[2]。論文首先對(duì)復(fù)合模式下不同公交方式的特征進(jìn)行分析,然后基于多項(xiàng)構(gòu)模原則建立了復(fù)合公共交通空間數(shù)據(jù)模型,并探討了由數(shù)據(jù)模型構(gòu)建網(wǎng)絡(luò)模型的核心算法。
作為最早的城市公共交通系統(tǒng),巴士系統(tǒng)已經(jīng)非常成熟,其主要特征包括[3]:
1.1.1 巴士運(yùn)行路線沿城市道路網(wǎng)絡(luò)布置。
1.1.2 巴士來回的兩次運(yùn)行路線基本相同。
1.1.3 存在同名站點(diǎn)位置不同的情況。
城市鐵路系統(tǒng)由于具有運(yùn)行速度快、運(yùn)行時(shí)間穩(wěn)定的特點(diǎn),因此,成為當(dāng)前各大城市解決交通問題的重要方式。城市鐵路系統(tǒng)的特征包括:
1.2.1 專有的運(yùn)行線路實(shí)現(xiàn)了高效率的運(yùn)行。城市鐵路具有專有的運(yùn)行線路,因此就避免了其運(yùn)行過程受其它交通方式的影響。
1.2.2 出入口和換乘站構(gòu)成的換乘系統(tǒng)。鐵路運(yùn)行路線由固定的換乘站構(gòu)成,換乘站和出入口由地下或地上通道連接,它們共同構(gòu)成了城市鐵路的換乘系統(tǒng)。
1.2.3 換乘時(shí)間有時(shí)較長。受城市鐵路沿線建筑物的影響,很多換乘站點(diǎn)難以配置在離出入口較近的位置上,居民從出入口到乘車站經(jīng)常需要較長的時(shí)間。
根據(jù)公共交通系統(tǒng)的特征分析,我們構(gòu)建一個(gè)復(fù)合公共交通空間數(shù)據(jù)模型,模型構(gòu)建在以下基本原則之上:
2.1.1 考慮所有對(duì)居民換乘時(shí)間影響較大的因素。巴士站點(diǎn)規(guī)模較小,從站點(diǎn)內(nèi)的一個(gè)候車牌到另一個(gè)候車牌的時(shí)間通常不會(huì)超過10 秒,因此,巴士站點(diǎn)可以被抽象為一個(gè)點(diǎn),其內(nèi)部的結(jié)構(gòu)并不需要表達(dá)。相反,城市鐵路的換乘有時(shí)會(huì)需要較長的時(shí)間,因此,為了表達(dá)同一站點(diǎn)內(nèi)的換乘,歸屬不同路線的同一站點(diǎn)要分別存儲(chǔ)。對(duì)于不同站點(diǎn)的換乘,巴士和鐵路系統(tǒng)均要考慮。
2.1.2 避免重復(fù)的數(shù)據(jù)存儲(chǔ),方便公共交通線路和站點(diǎn)的變動(dòng)。由于巴士的運(yùn)行路線被限制在城市道路中,可以基于道路網(wǎng)絡(luò)數(shù)據(jù)并利用路線與站點(diǎn)的拓?fù)潢P(guān)系來重構(gòu)巴士路線,不需要單獨(dú)對(duì)其進(jìn)行存儲(chǔ)。地鐵的專有路線則需要額外存儲(chǔ),原因是站點(diǎn)并不能完全反映出鐵路的運(yùn)行路線。這種只記錄巴士結(jié)點(diǎn)和站點(diǎn)與路線拓?fù)潢P(guān)系的數(shù)據(jù)模型不僅減小了數(shù)據(jù)量,避免了因數(shù)據(jù)誤差等造成的線路和站點(diǎn)在空間上不一致的情況,而且數(shù)據(jù)維護(hù)的工作量很小。當(dāng)路線發(fā)生變化時(shí),只需要對(duì)系統(tǒng)中沒有的站點(diǎn)進(jìn)行采集,并更新相應(yīng)的拓?fù)潢P(guān)系數(shù)據(jù)表即可,這對(duì)于易變的巴士系統(tǒng)非常有效。
2.1.3 盡量以最少的數(shù)據(jù)庫查詢來實(shí)現(xiàn)公共交通線路的重構(gòu)和換乘方案的規(guī)劃。巴士線路重構(gòu)和居民出行路線規(guī)劃都要通過對(duì)數(shù)據(jù)表進(jìn)行查詢實(shí)現(xiàn),為了保持模型運(yùn)行的高效率,“較少查詢次數(shù)、少量數(shù)據(jù)冗余”的策略應(yīng)用在模型構(gòu)建中,即根據(jù)數(shù)據(jù)表完成一項(xiàng)任務(wù)需要的查詢次數(shù)較少,但有些查詢會(huì)返回一個(gè)較結(jié)果更大的集合,而在計(jì)算機(jī)內(nèi)存中遍歷集合要比查詢數(shù)據(jù)庫快得多。
模型以城市道路網(wǎng)絡(luò)為基礎(chǔ),分別對(duì)城市公共巴士系統(tǒng)和鐵路系統(tǒng)進(jìn)行了建模,以下為模型的具體內(nèi)容。
城市道路網(wǎng)絡(luò)采用通行的“結(jié)點(diǎn)-弧段”模型(圖1)。道路按照路段(Section)進(jìn)行組織(Arc-Node Table),路段的兩端由起始結(jié)點(diǎn)(From Node)和終止結(jié)點(diǎn)(To Node)記錄,路段的形狀由弧段(Shape)表示。對(duì)于雙向行使的路段,兩個(gè)方向要分別進(jìn)行表達(dá)。結(jié)點(diǎn)表(Node Table)存儲(chǔ)了結(jié)點(diǎn)的坐標(biāo)和其它屬性。結(jié)點(diǎn)轉(zhuǎn)彎表(Node Turn Table)表達(dá)了結(jié)點(diǎn)所連接的路段彼此間是否能夠轉(zhuǎn)向以及完成轉(zhuǎn)向的費(fèi)用。路段間允許轉(zhuǎn)向只存在于不會(huì)產(chǎn)生逆向車流的情況,例如,圖1(a)中從s1轉(zhuǎn)向s5的就不允許。轉(zhuǎn)向的費(fèi)用由障礙(Impedance)進(jìn)行度量,其值可以為0/1 來表達(dá)是否允許轉(zhuǎn)向,或者任意正整數(shù)來衡量轉(zhuǎn)向的難度,例如轉(zhuǎn)向時(shí)產(chǎn)生的車流沖突次數(shù)。旅行距離(Travel Distance)表示一個(gè)可允許轉(zhuǎn)向所需要走過的平均路程,旅行時(shí)間(Travel Time)表示一個(gè)可允許轉(zhuǎn)向的平均花費(fèi)時(shí)間。
圖1 城市道路網(wǎng)絡(luò)及數(shù)據(jù)模型
城市公共交通是對(duì)抽象領(lǐng)域時(shí)空數(shù)據(jù)的可視化,大體可以歸納為公交線網(wǎng)、路網(wǎng)、公交規(guī)劃等可視化內(nèi)容[6]。如圖2(a)所示,城市公共巴士系統(tǒng)由巴士線路和站點(diǎn)構(gòu)成,線路的端點(diǎn)由兩個(gè)站點(diǎn)表示,線路的運(yùn)行是從起始站點(diǎn)開始,沿該站點(diǎn)所在路段的運(yùn)行方向行駛至路段上的下一個(gè)站點(diǎn),當(dāng)?shù)竭_(dá)路段末端時(shí)發(fā)生轉(zhuǎn)向,并在新的路段上沿其運(yùn)行方向繼續(xù)行駛,直至達(dá)到線路的終止站點(diǎn)。
圖2(b)給出了公共巴士系統(tǒng)的空間數(shù)據(jù)模型,由三張數(shù)據(jù)表組成。站點(diǎn)表(Stop Table)記錄了巴士系統(tǒng)中所有站點(diǎn)的數(shù)據(jù),包括站點(diǎn)所在的路段(Arc ID)、站點(diǎn)距離路段起始點(diǎn)的里程數(shù)(Mileage)以及站點(diǎn)的其它屬性。站點(diǎn)的位置可根據(jù)線性參照方法確定,即在路段弧段上距離起始結(jié)點(diǎn)一定距離(里程數(shù))的位置上進(jìn)行插值。
圖2 城市公交巴士系統(tǒng)網(wǎng)絡(luò)及數(shù)據(jù)模型
線路-路段表(Line-Section Table)存儲(chǔ)了線路經(jīng)過的所有路段,經(jīng)過的順序由Arc ID和Next Arc ID 規(guī)定。首選,從表中查詢出線路的所有記錄,然后按照如下算法來構(gòu)建線路的途徑路段順序鏈表:①構(gòu)建一個(gè)空的鏈表。②從記錄集中依次提取一條記錄,并判斷:如果鏈表中存在一個(gè)元素其值等于記錄的Next Arc ID,則在該元素前插入一個(gè)新元素;如果鏈表中存在一個(gè)元素其指針的值等于記錄的Arc ID,則在該元素后插入一個(gè)新元素;否則,在鏈表中新增加一個(gè)元素。對(duì)新創(chuàng)建的元素,將記錄的Arc ID 和Next Arc ID 分別賦給它的值和其指針。通過以上算法,可以生成一個(gè)路段的鏈表。鏈表中元素的順序即為線路途徑路段的順序。
線路-站點(diǎn)表(Line-Stop Table)表達(dá)了線路經(jīng)過的所有站點(diǎn)。與線路-路段表相似,站點(diǎn)的順序也由兩個(gè)字段規(guī)定:Stop ID 和Next Stop ID。使用相同的算法可以生成線路所途徑站點(diǎn)的順序鏈表。
以上模型中,巴士的運(yùn)行路線需要根據(jù)三個(gè)數(shù)據(jù)表重構(gòu),其算法如下:①構(gòu)建線路的站點(diǎn)鏈表和路段鏈表,并從路段-結(jié)點(diǎn)表中提取出路段鏈表中所有路段的圖形和起止結(jié)點(diǎn)。②構(gòu)建一個(gè)空的線段列表。③從路段鏈表中提取一個(gè)路段,并按照以下規(guī)則設(shè)置一個(gè)起始位置:如果路段為起始路段,則設(shè)置路段起始結(jié)點(diǎn)為起始位置,否則為空。④查詢結(jié)點(diǎn)鏈表,獲得處在該路段上的所有站點(diǎn)(已按序排列),并按照以下規(guī)則設(shè)置一個(gè)終止位置:如果結(jié)點(diǎn)鏈表到達(dá)末尾,則將終止位置設(shè)置為末尾結(jié)點(diǎn);否則,末尾結(jié)點(diǎn)為路段的終止結(jié)點(diǎn)。⑤從路段圖形中提取處在起始位置和終止位置間的線段,增加到線段列表中。⑥循環(huán)③-⑤,直至路段鏈表到達(dá)末尾為止。⑦將線段列表中的線段依次首尾相連,構(gòu)成巴士的運(yùn)行路線。
通過構(gòu)建緩存文件,并將以上算法生成的公交運(yùn)行路線保存在其中,可以避免不必要的重構(gòu)計(jì)算。當(dāng)公交巴士系統(tǒng)發(fā)生變化時(shí),只需要運(yùn)行一次重構(gòu)算法來更新緩存文件即可。這樣,可以保證模型的高效率。
圖3(a)給出了城市公交鐵路系統(tǒng)的網(wǎng)絡(luò)模型。其中,公交列車運(yùn)行在固定的線路上,列車站點(diǎn)包括線路的起始和終止站點(diǎn)、換乘站點(diǎn)和中途站點(diǎn)。站點(diǎn)布置在地下或地上一定高度,并與地面配置連接通道和入口(4 個(gè)和2 個(gè)入口較為常見),兩條路線的換乘站點(diǎn)通過通道相連。
圖3(b)給出了城市公交鐵路系統(tǒng)的空間數(shù)據(jù)模型[8]。站點(diǎn)表(Stop Table)通過距離線路起點(diǎn)的里程數(shù)(Mileage)來確定在路線上的位置,并利用Is Transfer Stop 來指示是否為換乘車站。線路表(Line Table)存儲(chǔ)了每條鐵路線路的圖形和其它屬性。線路-站點(diǎn)表(Line-Stop Table)與公交巴士數(shù)據(jù)模型中的對(duì)應(yīng)表作用相同。入口-站點(diǎn)表(Entrance-Stop Table)存儲(chǔ)了每個(gè)入口的地面位置以及到達(dá)與之相連接的站點(diǎn)所需要的時(shí)間和平均旅行路程。值得注意的是,換乘站點(diǎn)在此也被作為一種入口來記錄,例如,乘坐l1的乘客可通過t2換乘站到達(dá)l2的t7換乘站,此時(shí),t2換乘站可看作是進(jìn)入t7站點(diǎn)的入口,反之亦然。但換乘站間一般通過同一通道相連接,旅行時(shí)間和距離都相當(dāng),因此只需要在入口表中記錄一次。入口-站點(diǎn)表具有兩方面的作用:①通過地面入口點(diǎn)與地上的公交巴士系統(tǒng)連接,支持綜合的公交換乘方案規(guī)劃。②量化了乘客從入口到鐵路站點(diǎn)間的旅行費(fèi)用(旅行時(shí)間和旅行路程),從而能更準(zhǔn)確地確定兩點(diǎn)間乘坐公交列車所需要的時(shí)間。
根據(jù)圖3 四個(gè)數(shù)據(jù)表,可以利用2.3 節(jié)中相同的算法構(gòu)造鐵路線路的站點(diǎn)順序鏈表,并通過查詢?nèi)肟?站點(diǎn)表獲得可到達(dá)每個(gè)站點(diǎn)的入口?;谝陨蠑?shù)據(jù),可對(duì)給定的起止位置計(jì)算最佳的鐵路換乘方案。
圖3 城市公交鐵路系統(tǒng)網(wǎng)絡(luò)及數(shù)據(jù)模型
論文呈現(xiàn)了我們所建立的一個(gè)復(fù)合公共交通空間數(shù)據(jù)模型,模型分別對(duì)城市道路網(wǎng)絡(luò)、公交巴士系統(tǒng)以及公交鐵路系統(tǒng)進(jìn)行了表達(dá),同時(shí)也考慮了巴士系統(tǒng)與鐵路系統(tǒng)的聯(lián)系。為了能夠更準(zhǔn)確地對(duì)度量乘坐公交列車時(shí)的旅行時(shí)間,從地面鐵路入口到乘車站點(diǎn)、以及乘客換乘另一公交列車所用時(shí)間均在模型中被記錄。模型的基礎(chǔ)是公交系統(tǒng)網(wǎng)絡(luò)中的拓?fù)潢P(guān)系,鏈表方式被用來表達(dá)和儲(chǔ)存這種拓?fù)潢P(guān)系。對(duì)于網(wǎng)絡(luò)中要素的幾何圖形,模型依據(jù)拓?fù)潢P(guān)系只記錄可構(gòu)成該要素的最基本圖形。當(dāng)需要重構(gòu)網(wǎng)絡(luò)時(shí),可以根據(jù)拓?fù)潢P(guān)系以及特定的算法來生成要素的幾何圖形。論文中給出了一種根據(jù)巴士路線和站點(diǎn)及路段間的關(guān)系來重構(gòu)巴士路線的算法。
公交換乘規(guī)劃是面向廣大居民的最重要的一項(xiàng)公交應(yīng)用??臻g數(shù)據(jù)模型是該應(yīng)用的基礎(chǔ),而最優(yōu)換乘的求解算法則是應(yīng)用的核心。由于包含相互協(xié)同的兩種交通方式,復(fù)合公共交通系統(tǒng)的公交網(wǎng)絡(luò)較單一的巴士系統(tǒng)更為復(fù)雜,求解最優(yōu)換乘也相應(yīng)地更為困難。因此,在提出的復(fù)合公共交通空間數(shù)據(jù)模型基礎(chǔ)上,進(jìn)一步探討高效率的公交換乘求解算法將是下一步的重要工作。