一種基于道路等級的最短路徑規(guī)劃算法
【專利摘要】本發(fā)明涉及一種基于道路等級的最短路徑規(guī)劃算法,包括如下步驟:步驟1,數(shù)據(jù)準(zhǔn)備與數(shù)據(jù)預(yù)處理;步驟2,道路網(wǎng)層次化表達包括道路網(wǎng)級別劃分和基于道路等級的層次化表達;步驟3,路網(wǎng)通行時間計算;步驟4,最短路徑近似計算。本專利所提出的基于道路等級最短路徑方法經(jīng)過大量實驗驗證,充分考慮不同等級道路的通行能力,以通行時間為判斷標(biāo)準(zhǔn),計算方法比較通用,結(jié)果更精確,在應(yīng)急救援中,如果通過道路檢測信息能排除道路網(wǎng)中故障路段,通過獲取交通流量計算實時通行速度,規(guī)劃結(jié)果更準(zhǔn)確。
【專利說明】一種基于道路等級的最短路徑規(guī)劃算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬計算機科學(xué)與地理信息科學(xué)領(lǐng)域,涉及一種基于道路等級的最短路徑規(guī) 劃算法。
【背景技術(shù)】
[0002] 最短路徑的計算問題是一個經(jīng)典的問題,一個最實際的應(yīng)用就是在道路網(wǎng)絡(luò)中 進行路徑分析,如在給定的道路網(wǎng)中,尋找起點到目標(biāo)點的最佳路徑問題。當(dāng)前最短路徑 分析方法從算法的可實現(xiàn)性以及穩(wěn)定性來講,可以概括為兩類:一類是充分利用最短路徑 在道路網(wǎng)中的空間相關(guān)性,把道路網(wǎng)中的最短路徑壓縮成為簡單的格式,這樣可以大幅度 提高查詢效率,這種方法比較有代表性的是H. Samet和J. Sankaranarayanan等人提出的 SILC(SpatialIy Induced Linkage Cognizance)改進算法,以及 J. Sankaranarayanan等人 提出的PCPD(Path-Coherent Pairs Decomposition)算法;另外一種方法是基于道路網(wǎng)中 某些節(jié)點對最短路徑查詢的重要性,然后以Dijkstra算法為基礎(chǔ)進行改進。雖然當(dāng)前已有 根據(jù)此提出的一些新的算法,但是這些算法并不是很有效。對于第一類方法需要計算道路 結(jié)點所構(gòu)建的不同道路之間的關(guān)聯(lián)性,從而進行替代計算,算法復(fù)雜,計算量大。因此,第二 類方法較為常用,但是現(xiàn)有研究往往只考慮道路結(jié)點權(quán)重,但是未考慮不同道路等級以及 在不同道路等級下對最短時間的限制,因此研究一種結(jié)合道路等級以及道路等級約束下最 短時間的新算法是非常有必要的。
【發(fā)明內(nèi)容】
[0003] 鑒于此,本發(fā)明提出一種基于道路等級的最短路徑規(guī)劃算法,在傳統(tǒng)最短路徑規(guī) 劃的基礎(chǔ)上,充分考慮道路通行能力,通過道路等級實現(xiàn)道路層次化表達,與此同時,采用 時間成本變量代替距離變量,通過計算最短通行時間規(guī)劃最佳救援路徑。
[0004] 一種基于道路等級的最短路徑規(guī)劃算法,包括如下步驟:
[0005] 步驟1,數(shù)據(jù)準(zhǔn)備與數(shù)據(jù)預(yù)處理,
[0006] 所述數(shù)據(jù)準(zhǔn)備是通過GPS導(dǎo)航獲取道路網(wǎng)數(shù)據(jù),通過交通部門獲取道路單行線信 息數(shù)據(jù),以及通過網(wǎng)絡(luò)查詢獲取每個道路等級的最大通行速度數(shù)據(jù),其中,
[0007] 所述道路網(wǎng)數(shù)據(jù)包括道路名稱、道路等級和道路節(jié)點坐標(biāo),將所述道路網(wǎng)數(shù)據(jù)以 shape格式存儲;所述道路單行線信息數(shù)據(jù)包括道路名稱、道路起點、道路終點和道路單行 方向,所述道路等級的最大通行速度數(shù)據(jù)包括道路名稱、道路等級和最大通行車速,將所述 道路單行線信息數(shù)據(jù)和道路等級的最大通行速度數(shù)據(jù)以dbf格式存儲。Shap e文件格式是 一種矢量數(shù)據(jù)格式,它沒有拓?fù)湫畔?,一個Shape files由一組文件組成,其中必要的基本文 件包括坐標(biāo)文件(.shp)、索引文件(.shx)和屬性文件(.dbf)三個文件;dbf格式存儲為一 種特殊的文件格式,表示數(shù)據(jù)庫文件,F(xiàn)oxbase,Dbase,Visual FoxPro等數(shù)據(jù)庫處理系統(tǒng)所 產(chǎn)生的數(shù)據(jù)庫文件。
[0008] 所述數(shù)據(jù)預(yù)處理包括道路數(shù)據(jù)通行方向處理和道路數(shù)據(jù)節(jié)點信息處理,其中,
[0009] 所述道路數(shù)據(jù)通行方向處理是將道路單行方向分為正向和逆向兩種,在道路網(wǎng) shape屬性表中增加正向和逆向字段,用二值0和1分別表示道路在該方向不通行或通行, 用所述0和1對所述道路單行方向進行賦值,得到處理后的道路單行方向數(shù)據(jù);
[0010] 所述道路數(shù)據(jù)節(jié)點信息處理方法為:當(dāng)兩條道路相交且通車時,在相交處增加節(jié) 點,增加道路節(jié)點坐標(biāo),原來兩條道路變成四條道路,當(dāng)兩條道路相交但不通車時,道路節(jié) 點坐標(biāo)保持不變,通過所述道路數(shù)據(jù)節(jié)點信息處理得到處理后的道路節(jié)點坐標(biāo);
[0011] 步驟2,對步驟1中獲取的道路網(wǎng)數(shù)據(jù)中的道路等級進行劃分,劃分后的道路等級 分為:公路、城市道路和鄉(xiāng)村道路,其中,
[0012] 公路劃分為高速公路、一級公路、二級公路、三級公路和四級公路,城市道路劃分 為快速路、主干路、次干路和支路,鄉(xiāng)村道路劃分為農(nóng)村硬化道路、機耕路和鄉(xiāng)村路;
[0013] 將所述劃分后的道路等級進行層次化表達,將道路視為由連接邊和節(jié)點組成的網(wǎng) 狀圖形,如果每個節(jié)點與其聯(lián)通的節(jié)點間的道路是通行的,那么記錄所述每個節(jié)點和其聯(lián) 通的節(jié)點,同時記錄所述每個節(jié)點與其聯(lián)通的節(jié)點間的連接邊,得到聯(lián)通的兩節(jié)點間的連 接邊數(shù)據(jù);
[0014] 步驟3,基于步驟2中的節(jié)點及聯(lián)通的兩節(jié)點間的連接邊數(shù)據(jù),利用距離公式根據(jù) 道路節(jié)點坐標(biāo)計算每個道路段的距離,其中聯(lián)通的兩節(jié)點間通行的道路是一條以上的,計 算不同道路段的距離,利用獲得的所述距離、所述道路的最大通行車速求出兩聯(lián)通的節(jié)點 間不同道路的通行時間,比較所述不同道路的通行時間得出聯(lián)通的兩節(jié)點間的最短通行時 間;
[0015] 步驟4,基于步驟1-3處理后得到的道路單行方向數(shù)據(jù)、道路節(jié)點坐標(biāo)、聯(lián)通的兩 節(jié)點間的連接邊數(shù)據(jù)、聯(lián)通的兩節(jié)點間的最短通行時間,列出從起始節(jié)點到終點所有連接 情況,規(guī)定時間最短的方案視為最短路徑的方案,任意兩節(jié)點間最短路徑計算方法為:
[0016] 設(shè)道路網(wǎng)中存在節(jié)點集合S= I^S1, S2, S3,…SJ,從起始節(jié)點O到終點Si (i Gn) 最短路徑計算方法如下:
[0017] 4. 1、找到起始節(jié)點〇的聯(lián)通的節(jié)點集合0 = Io1, 〇2, O3…〇j...om},其中,0[S;
[0018] 4. 2、判斷集合0是否為空,若是,則結(jié)束,從起始節(jié)點〇無法到達終點Si,若否,則 執(zhí)行步驟4. 3 ;
[0019] 4. 3、記錄起始節(jié)點〇到所有聯(lián)通的節(jié)點的路徑、時間、剩余聯(lián)通的節(jié)點和總剩余 節(jié)點,將結(jié)果記錄到集合N中并執(zhí)行步驟4. 4,集合N結(jié)果如下:
【權(quán)利要求】
1. 一種基于道路等級的最短路徑規(guī)劃算法,其特征在于,包括如下步驟: 步驟1,數(shù)據(jù)準(zhǔn)備與數(shù)據(jù)預(yù)處理, 所述數(shù)據(jù)準(zhǔn)備是通過GPS導(dǎo)航獲取道路網(wǎng)數(shù)據(jù),通過交通部門獲取道路單行線信息數(shù) 據(jù),以及通過網(wǎng)絡(luò)查詢獲取每個道路等級的最大通行速度數(shù)據(jù),其中, 所述道路網(wǎng)數(shù)據(jù)包括道路名稱、道路等級和道路節(jié)點坐標(biāo),將所述道路網(wǎng)數(shù)據(jù)以shape格式存儲;所述道路單行線信息數(shù)據(jù)包括道路名稱、道路起點、道路終點和道路單行方向, 所述道路等級的最大通行速度數(shù)據(jù)包括道路名稱、道路等級和最大通行車速,將所述道路 單行線信息數(shù)據(jù)和道路等級的最大通行速度數(shù)據(jù)以dbf格式存儲; 所述數(shù)據(jù)預(yù)處理包括道路數(shù)據(jù)通行方向處理和道路數(shù)據(jù)節(jié)點信息處理,其中, 所述道路數(shù)據(jù)通行方向處理是將道路單行方向分為正向和逆向兩種,在道路網(wǎng)shape屬性表中增加正向和逆向字段,用二值〇和1分別表示道路在該方向不通行或通行,用所述 〇和1對所述道路單行方向進行賦值,得到處理后的道路單行方向數(shù)據(jù); 所述道路數(shù)據(jù)節(jié)點信息處理的方法為:當(dāng)兩條道路相交且通車時,在相交處增加節(jié)點, 增加道路節(jié)點坐標(biāo),原來兩條道路變成四條道路,當(dāng)兩條道路相交但不通車時,道路節(jié)點坐 標(biāo)保持不變,通過所述道路數(shù)據(jù)節(jié)點信息處理得到處理后的道路節(jié)點坐標(biāo); 步驟2,對步驟1中獲取的道路網(wǎng)數(shù)據(jù)中的道路等級進行劃分,劃分后的道路等級分 為:公路、城市道路和鄉(xiāng)村道路,其中, 公路劃分為高速公路、一級公路、二級公路、三級公路和四級公路,城市道路劃分為快 速路、主干路、次干路和支路,鄉(xiāng)村道路劃分為農(nóng)村硬化道路、機耕路和鄉(xiāng)村路; 將所述劃分后的道路等級進行層次化表達,將道路視為由連接邊和節(jié)點組成的網(wǎng)狀圖 形,如果每個節(jié)點與其聯(lián)通的節(jié)點間的道路是通行的,那么記錄所述每個節(jié)點和其聯(lián)通的 節(jié)點,同時記錄所述每個節(jié)點與其聯(lián)通的節(jié)點間的連接邊,得到聯(lián)通的兩節(jié)點間的連接邊 數(shù)據(jù); 步驟3,基于步驟2中的節(jié)點及聯(lián)通的兩節(jié)點間的連接邊數(shù)據(jù),利用距離公式根據(jù)道路 節(jié)點坐標(biāo)計算每個道路段的距離,其中聯(lián)通的兩節(jié)點間通行的道路是一條以上的,計算不 同道路段的距離,利用獲得的所述距離、所述道路的最大通行車速求出兩聯(lián)通的節(jié)點間不 同道路的通行時間,比較所述不同道路的通行時間得出聯(lián)通的兩節(jié)點間的最短通行時間; 步驟4,基于步驟1-3處理后得到的道路單行方向數(shù)據(jù)、道路節(jié)點坐標(biāo)、聯(lián)通的兩節(jié)點 間的連接邊數(shù)據(jù)、聯(lián)通的兩節(jié)點間的最短通行時間,列出從起始節(jié)點到終點所有連接情況, 規(guī)定時間最短的方案視為最短路徑的方案,任意兩節(jié)點間最短路徑計算方法為: 設(shè)道路網(wǎng)中存在節(jié)點集合S= {〇,&,S2,S3,…SJ,從起始節(jié)點〇到終點Si(iGn)最 短路徑計算方法如下: 4. 1、找到起始節(jié)點〇的聯(lián)通的節(jié)點集合0 = {Oi, 〇2, 〇3…o/"om},其中,O^S; 4. 2、判斷集合0是否為空,若是,則結(jié)束,從起始節(jié)點〇無法到達終點Sp若否,則執(zhí)行 步驟4. 3 ; 4. 3、記錄起始節(jié)點〇到所有聯(lián)通的節(jié)點的路徑、時間、剩余聯(lián)通的節(jié)點和總剩余節(jié)點, 將結(jié)果記錄到集合N中并執(zhí)行步驟4. 4,集合N結(jié)果如下:
其中,j代表記錄ID號;〇-%代表通行路徑;%代表該條路徑的結(jié)束節(jié)點;tj代表該條路徑的最短通行時間,該條路徑為兩個以上節(jié)點組成的通行路徑;
?.表示起始節(jié)點〇的剩余聯(lián)通的節(jié)點:
表 示集合S中除起始節(jié)點〇和結(jié)束節(jié)點〇j外的剩余節(jié)點; 4. 4、判斷上述集合N中的結(jié)束節(jié)點%是否為終點Sp如果結(jié)束節(jié)點%為終點Si,則將 所述通行路徑和該路徑的通行時間記錄到路徑集合M中,并在集合N中刪除該條記錄,如果 結(jié)束節(jié)點%不為終點Sp則集合N保持不變,判斷結(jié)束后執(zhí)行步驟4. 5 ; 4. 5、判斷步驟4. 4中得到的集合N是否為空,若集合N不為空,則將記錄的結(jié)束節(jié)點oj 賦值給步驟1中的起始節(jié)點〇,剩余節(jié)點集合
賦值給集合S,找出與賦值后 的起始節(jié)點〇」聯(lián)通的節(jié)點集合〇',執(zhí)行步驟4. 6 ;若集合N為空,執(zhí)行步驟4. 7 ; 4. 6、判斷集合0'是否為空,若集合0'為空,則在集合N中刪除該條記錄,并執(zhí)行步驟 4. 5 ;若集合0'不為空,則執(zhí)行步驟4. 3 ; 4. 7、在路徑集合M中,選出消耗時間最短的記錄,則該條路徑為最短路徑。
2. 根據(jù)權(quán)利要求1所述的一種基于道路等級的最短路徑規(guī)劃算法,其特征在于,在步 驟1中,所述道路單行方向由道路走向決定,規(guī)定道路走向分為五種:東一西、南一北、北 東一南西、北西一南東和環(huán)狀,前四種道路偏移角度以±22. 5°為分界線,規(guī)定西向東、北 向南、南西向北東、北西向南東以及環(huán)狀順時針為正向,東向西、南向北、北東向南西、南東 向北西以及環(huán)狀逆時針為逆向。
3. 根據(jù)權(quán)利要求1所述的一種基于道路等級的最短路徑規(guī)劃算法,其特征在于,在步 驟2中,所述節(jié)點與其聯(lián)通的節(jié)點間的連接邊的記錄順序由劃分后的道路等級確定,對于 節(jié)點和聯(lián)通的節(jié)點間具有一條以上連接邊的情況,連接邊書寫依據(jù)從左往右連接邊對應(yīng)的 道路等級依次降低的順序。
4. 根據(jù)權(quán)利要求1所述的一種基于道路等級的最短路徑規(guī)劃算法,其特征在于,在步 驟3中,所述道路的最大通行車速根據(jù)道路等級劃分限定。
5. 根據(jù)權(quán)利要求1所述的一種基于道路等級的最短路徑規(guī)劃算法,其特征在于,在步 驟3中,所述的節(jié)點坐標(biāo)是從GPS導(dǎo)航數(shù)據(jù)轉(zhuǎn)換shape格式后的數(shù)據(jù)中獲取的。
【文檔編號】G01C21/20GK104406590SQ201410697096
【公開日】2015年3月11日 申請日期:2014年11月26日 優(yōu)先權(quán)日:2014年11月26日
【發(fā)明者】趙陽陽, 張福浩, 石麗紅, 仇阿根, 陶坤旺, 胡璐錦, 張章, 張衛(wèi)平 申請人:中國測繪科學(xué)研究院