【摘 要】在龐大的公交網(wǎng)絡系統(tǒng)中如何選擇最優(yōu)的出行方案是居民普遍關(guān)心的問題。文章基于計算機算法實現(xiàn)了對出行方案快速高效的選擇,首先設計了公交網(wǎng)絡數(shù)據(jù)結(jié)構(gòu),其次詳細闡述基于SQL語言的算法步驟,最后以具體實例證實本研究的快速性及準確性,本文的研究為居民的出行提供了快速高效的解決方案。

【關(guān)鍵詞】計算機算法 城市公交網(wǎng)絡 出行路徑

近年來,研究人們出行過程換乘交通工具決策優(yōu)化問題,以提高人們的出行效率,是一個亟待解決的議題。本研究綜合以往研究所用的方法并結(jié)合人們出行情況的問卷調(diào)查結(jié)果,建立了以最少換乘次數(shù)以及最短外出距離為最終出行目標的模型。為了避免數(shù)據(jù)爆炸的出現(xiàn),選用的儲存公交網(wǎng)絡數(shù)據(jù)的數(shù)據(jù)庫是大型的,這樣便于對數(shù)據(jù)進行管理和維護,為了提高算法運算速度,選用Transace—SQL語言的求解算法。

公交網(wǎng)絡數(shù)據(jù)結(jié)構(gòu)

根據(jù)公交網(wǎng)絡的構(gòu)成情況,為了區(qū)分各方向上的線路及站點,本節(jié)首先對每個線路中的站點進行編號。例如,10路(南行)線路中的第一站a、中間站b、中間站c、最后一站d分別用1、2、3、4進行編號,那么10路(北行)線路中的站點第一站d、中間站c、中間站b、最后一站a的自然數(shù)編號為1、2、3、4。同時,借助SQL server設計如表1、表2所示的儲存站點、線路以及編號的數(shù)據(jù)結(jié)構(gòu)。

表1 線路站點

表2 公交站點間距

求解步驟

本算法的求解思想是:將兩個目標進行分層處理,也就是說利用Transace—SQL語言的編寫程序?qū)崿F(xiàn)操作中所需的運算,能夠得到不同換乘次數(shù)(0次即直達、1次、2次)的出行方案,并將所得的方案存儲于相應的數(shù)據(jù)庫表(如表3、表4所示)中,接著編寫儲存過程的參數(shù),進而選出最優(yōu)的出行方案。

表3 直達方案

表4 一次換乘方案

具體步驟如下:⑴創(chuàng)建一個帶參數(shù)的存儲過程,該參數(shù)包括初始站和目的站。⑵從表1中分別找出所有經(jīng)過初始站和目的站的線路集合,命名為line-set-1,line-set-2。⑶將上一步所得的兩個集合取交集,得到的集合命名為line-set-3。⑷判斷上步所得到的交集中是否為空,如果不是空值,那么存在直達出行方案,進而將該方案存入表3,轉(zhuǎn)到步驟⒀;如果是空值,則轉(zhuǎn)到步驟⑸。⑸分別找出line-set-1和line-set-2所對應的所有站點的集合,依次命名為Transfer-stop-set-1和Transfer-stop-set-2。⑹將上一步得到的兩個集合取交集得到的集合命名為Transfer-stop-set-3。⑺判斷⑹得到的集合是否為空,如果不是空值,那么則說明通過一次換乘能到達目的站,轉(zhuǎn)而進行步驟⑻;如果是空值,則轉(zhuǎn)到步驟⑽。⑻找出Transfer-stop-set-3集合中所有的1次換乘線路,命名為line-set-4。⑼將集合line-set-1與line-set-4取交集,得到的集合命名為line-set-5,表示第一次乘車的路經(jīng)集;將集合line-set-2與line-set-4取交集,得到的集合命名為line-set-6,表示第一次換乘的路經(jīng)集;依據(jù)模式“初始站a—首次乘車路徑L1—首次換乘站b”以及站a和換乘站b在路徑L1中的自然數(shù)編號的大小來確定所選擇的路徑是否是正確的(例如10路(南行)路徑正確,則10路(北行)路徑錯誤),由此得到一次換乘中的上一段路徑方案,如此類推可以得到下半段換乘方案。⑽分別找出Transfer-stop-set-1和Transfer-stop-set-2所對應的所有線路集合,命名為Transfer-line-1和Transfer-line-2;將所得的兩個集合取交集,得到的新集合為第一次換乘線路集合,命名為Transfer-line-one。⑾如果上步最后所得到的集合是空集,則到步驟⒂;如果不是空集,則到步驟⑿。⑿找出Transfer-line-one里邊的全部站點集合,命名為temp-transfer-stop,將其分別與Transfer-stop-set-1和Transfer-stop-set-2取交集,得到的集合依次命名為Transfer-stop-11和Transfer-stop-21;分別找出經(jīng)過Transfer-stop-11和Transfer-stop-21的全部線路集合,依次命名為line-set-10、line-set-12,并將line-set-12與集合line-set-2取交集,得到的集合依次命名為Transfer-line-two,將line-set-10與line-set-1取交集,得到的集合line-set-11,并依照⑼中的方法將得到的外出方案存入transfer-two-time-trip表。⒀建立所有外出方案的外出距離的存儲過程,并且都要帶有輸入和輸出參數(shù)。⒁依照上步得到的外出距離找到最優(yōu)的外出路線,則算法結(jié)束。⒂如果換乘次數(shù)是在3次及以上,則建議選用其他交通工具出行,則算法結(jié)束。

實際應用分析

利用上文給出的求解步驟,本文以武漢市的260個公交站點和25條公交線路數(shù)據(jù)為數(shù)據(jù)基礎,建立數(shù)據(jù)庫以及數(shù)據(jù)表。比如,出發(fā)站為“武漢車站”,目的站為“武漢大學”,需要在SQL查詢分析器中輸入:find-trip-strategy‘武漢車站’‘武漢大學’,系統(tǒng)立即可得到如下表所示方案。

表5 一次換乘方案

說明,從武漢車站到武漢大學之間沒有直達的線路,所以得到了一次換乘方案,由于本研究基于的目標是最少的換乘次數(shù),所以該表輸出即為最終換乘結(jié)果方案表,接著依據(jù)所建立的外出方案距離的存儲過程得到所需的最優(yōu)外出路線。

結(jié)

該研究為解決龐大公交網(wǎng)絡系統(tǒng)下的快速高效選擇出行方案提供了可行思路,為人們的出行帶來了一定程度的便利。參考文獻:

[1]溫金輝.用于最短路算法的公交網(wǎng)絡模型構(gòu)建[J].交通標準化,2011(08):35-38.

[2]汪濤,許樂,張繼,方志耕.城市公交網(wǎng)絡的拓撲結(jié)構(gòu)及其演化模型研究[J].公路交通科技,2009(11):42-45.

[3]王東,劉剛.基于復雜網(wǎng)絡的城市公交網(wǎng)絡的研究[J].統(tǒng)計研究,2008(11):52.