亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

考慮交叉口轉(zhuǎn)向限制的最短路徑混合邊節(jié)點標(biāo)號方法

文檔序號:6250694閱讀:203來源:國知局
考慮交叉口轉(zhuǎn)向限制的最短路徑混合邊節(jié)點標(biāo)號方法
【專利摘要】本發(fā)明提供一種考慮交叉口轉(zhuǎn)向限制的最短路徑混合邊節(jié)點標(biāo)號方法,用于導(dǎo)航領(lǐng)域中的最短路徑生成,尤其用于在包含交叉口轉(zhuǎn)向限制的城市交通網(wǎng)絡(luò)中高效地查找最短路徑。本發(fā)明將節(jié)點分為兩類,一類為包含轉(zhuǎn)向限制的受限交叉口,另一類為無轉(zhuǎn)向限制的自由交叉口,在最短路徑查找過程中自適應(yīng)選擇基于節(jié)點或者邊標(biāo)號策略,對于受限交叉口采用基于邊的標(biāo)號策略,對于自由交叉口采用基于節(jié)點的標(biāo)號策略;采用初始化、路徑選擇、路徑擴(kuò)展三個步驟實現(xiàn)并進(jìn)行了具體子步驟設(shè)計。本發(fā)明能夠獲得與基于邊的標(biāo)號方法一致的最優(yōu)結(jié)果,同時通過有效地減少在自由交叉口的路徑生成、評估、存儲的系統(tǒng)消耗,達(dá)到或者接近基于節(jié)點的標(biāo)號方法的運算性能。
【專利說明】考慮交叉口轉(zhuǎn)向限制的最短路徑混合邊節(jié)點標(biāo)號方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及導(dǎo)航領(lǐng)域中的最短路徑計算【技術(shù)領(lǐng)域】,尤其是涉及一種考慮交叉口轉(zhuǎn) 向限制的最短路徑混合邊節(jié)點標(biāo)號方法。

【背景技術(shù)】
[0002] 最短路徑問題,即查找起點和終點間的最優(yōu)路徑,在交通工程學(xué)、地理信息科學(xué)和 通信等領(lǐng)域有著廣泛的應(yīng)用。繼Dijkstra(1959)和Hart(1968)的先驅(qū)工作之后,在文獻(xiàn) 中已有多種高效的算法和數(shù)據(jù)結(jié)構(gòu)用于求解最短路徑問題。
[0003] 近年來,導(dǎo)航和位置服務(wù)應(yīng)用的大量興起,研發(fā)滿足大眾出行服務(wù)實際需求的最 短路徑計算方法變得愈發(fā)重要。在真實城市網(wǎng)絡(luò)中,左轉(zhuǎn)向和掉頭經(jīng)常被禁止,用于減少交 叉口信號燈周期,提高交叉口的通行能力。然而,傳統(tǒng)最短路徑算法為基于節(jié)點的標(biāo)號算法 (Di jkstra算法),將交通網(wǎng)絡(luò)抽象為簡單的有向圖,缺乏對交叉口轉(zhuǎn)向限制的有效建模, 導(dǎo)致查找的最短路徑包含不合理的交叉口轉(zhuǎn)向,不能在實際導(dǎo)航應(yīng)用中使用。
[0004] 針對以上問題,國內(nèi)外學(xué)者已提出多種方法對交叉口轉(zhuǎn)向限制進(jìn)行建模。第一種 為網(wǎng)絡(luò)修正法,該方法用由虛擬的點和邊所組成的子網(wǎng)絡(luò)所代替交通網(wǎng)絡(luò)中每個交叉路 口。經(jīng)過網(wǎng)絡(luò)修正后,傳統(tǒng)最短路徑算法能夠被直接應(yīng)用。然而,網(wǎng)絡(luò)修正需要大量的編輯 工作,非常耗時耗力,無法適應(yīng)大范圍城市網(wǎng)絡(luò)導(dǎo)航的需求。此外,由于網(wǎng)絡(luò)修正帶了明顯 的網(wǎng)絡(luò)規(guī)模擴(kuò)張,該方法往往使網(wǎng)絡(luò)變得太大而無法加載到內(nèi)存中。作為一種替代方法, Gutierrez和Medaglia(2008)提出一種基于邊的最短路徑標(biāo)號方法,米用基于邊的標(biāo)號策 略,能夠直接在原始路網(wǎng)中使用,無須對網(wǎng)絡(luò)進(jìn)行修正,使其廣泛使用于眾多導(dǎo)航應(yīng)用中。 然而,由于交通網(wǎng)絡(luò)中邊的數(shù)量遠(yuǎn)大于節(jié)點數(shù)量,基于邊的標(biāo)號方法與傳統(tǒng)基于節(jié)點的標(biāo) 號方法相比具有明顯的效率低下問題。
[0005] 參考文獻(xiàn):Gutierrez, E. and Medaglia,A. L.,2008, Labeling algorithm for the shortest path problem with turn prohibitions with application to large-scale road networks. Annals of Operations Research, 157, pp. 169-182.


【發(fā)明內(nèi)容】

[0006] 本發(fā)明提出一種混合邊-節(jié)點標(biāo)號方法(Hybrid link-node Di jkstra algorithm, HLND),用于在包含交叉口轉(zhuǎn)向限制的城市道路網(wǎng)絡(luò)中查找最短路徑。
[0007] 本發(fā)明提供一種考慮交叉口轉(zhuǎn)向限制的最短路徑混合邊節(jié)點標(biāo)號方法,包括以下 步驟:
[0008] 步驟1,初始化,包括以下子步驟,
[0009] S101,首先判斷遍歷網(wǎng)絡(luò)中是否還有未遍歷的邊CIjk,是則進(jìn)入S102,否則進(jìn)入 S103 ;
[0010] S102,判斷邊α Λ的尾節(jié)點k是否為受限節(jié)點,
[0011] 是則初始化邊a jk的標(biāo)號戶:^_ 阻抗否則初始化節(jié)點k的標(biāo)號 pi 阻抗 C
[0012] 然后返回SlOl ;
[0013] S103,創(chuàng)建從起點r到自身的標(biāo)號<',令其阻抗為G := 〇 ;
[0014] S104,判斷起點r是否還有未遍歷的下游邊α A,是則進(jìn)入S105,否則進(jìn)入步驟2 ;
[0015] S105,新建路徑JCrt = /C十,且令阻抗:=Q,trk為邊α A的阻抗;
[0016] S106,判斷邊α A的尾節(jié)點k是否為受限節(jié)點;
[0017] 是則初始化邊α A的標(biāo)號f := A?",阻抗;
[0018] 否則初始化節(jié)點k的標(biāo)號:= A"",阻抗? := Cvt;
[0019] S107,將<?插入到優(yōu)先隊列SE中,使見:=見U [式1,
[0020] 然后返回S104 ;
[0021] 步驟2,路徑選擇,包括以下子步驟,
[0022] S201,判斷是否優(yōu)先隊列SE為空,是則停止流程返回為空,否則進(jìn)入S202 ;
[0023] S202,從優(yōu)先隊列SE中選取并移除阻抗最小的路徑尸路徑的最后一條邊a u稱 為選取邊;
[0024] S203,判斷是否路徑p;?的尾節(jié)點j為終點s,是則停止流程返回最短路徑只%, 否則進(jìn)入步驟3 ;
[0025] 步驟3,路徑擴(kuò)展,包括以下子步驟,
[0026] S301,判斷選取邊a u是否有為遍歷的可行轉(zhuǎn)向Vijk,是則進(jìn)入S302,否則返回步 驟2 ;
[0027] S302,新建路徑= 十%,令相應(yīng)阻抗:=P + & ;
[0028] S303,判斷轉(zhuǎn)向的尾節(jié)點k是否為受限節(jié)點,是則進(jìn)入S304,否則進(jìn)入S307 ;
[0029] S304,判斷新建路徑阻抗Cv是否小于現(xiàn)有的邊標(biāo)號的阻抗,是則進(jìn)入 S305,否則返回S301 ;
[0030] S305,判斷現(xiàn)有邊標(biāo)號是否屬于優(yōu)先隊列SE,是則將/Cv移出優(yōu)先隊列SE, 然后進(jìn)入S306,否則直接進(jìn)入S306 ;
[0031] S306,用新建路徑替換現(xiàn)有邊標(biāo)號:= ,將新建路徑加入優(yōu)先隊列,使 ,然后返回 S3Ol ;
[0032] S307,判斷新建路徑阻抗是否小于現(xiàn)有的節(jié)點標(biāo)號的阻抗if,是則進(jìn)入 S308,否則返回S301 ;
[0033] S308,判斷現(xiàn)有節(jié)點標(biāo)號;?:"是否屬于優(yōu)先隊列SE,則將凡Λ移出優(yōu)先隊列SE,然 后進(jìn)入S309,否則直接進(jìn)入S309 ;
[0034] S309,用新建路徑替換現(xiàn)有節(jié)點標(biāo)號:= A?01 ,將新建路徑加入優(yōu)先隊列,使 := SE U 卜然后返回S301。
[0035] 本方法無需網(wǎng)絡(luò)修正,將節(jié)點分為兩類:一類為包含轉(zhuǎn)向限制的受限交叉口,另一 類為無轉(zhuǎn)向限制的自由交叉口,在最短路徑查找過程中自適應(yīng)選擇基于節(jié)點或者邊標(biāo)號策 略,對于受限交叉口采用基于邊的標(biāo)號策略,對于自由交叉口采用基于節(jié)點的標(biāo)號策略。本 方法能夠獲得與基于邊的標(biāo)號方法一致的最優(yōu)解,同時通過有效地減少在自由交叉口的路 徑生成、評估、存儲的系統(tǒng)消耗,達(dá)到或者接近基于節(jié)點的標(biāo)號方法的運算性能。

【專利附圖】

【附圖說明】
[0036] 圖1為本發(fā)明實施例的流程圖。

【具體實施方式】
[0037] 本發(fā)明的技術(shù)方案為一種混合邊-節(jié)點標(biāo)號方法,其原理在于,在最短路徑查找 過程中自適應(yīng)選擇基于節(jié)點或者邊標(biāo)號策略,對于受限交叉口采用基于邊的標(biāo)號策略,對 于自由交叉口采用基于節(jié)點的標(biāo)號策略。具體實施時,可采用計算機(jī)軟件技術(shù)實現(xiàn)自動運 行流程。參見圖1,實施例包括以下步驟,
[0038] 步驟1 :初始化
[0039] 實施例的具體初始化實現(xiàn)設(shè)計如下:
[0040] 遍歷網(wǎng)絡(luò)中的每條邊aJk
[0041] 若邊a jk的尾節(jié)點k是受限交叉口,則令邊Cijk的標(biāo)號為空,阻抗為無 窮大
[0042] 若邊Cijk的尾節(jié)點k是自由交叉口,則令k節(jié)點的標(biāo)號義為空,阻抗為無窮 大
[0043] 結(jié)束遍歷
[0044] 創(chuàng)建從起點r到自身的標(biāo)號,令其阻抗為f := 〇
[0045] 遍歷起點r的每條下游邊a rk
[0046] 新建路徑/C" = Φ% (即在路徑末端添加邊a J,且令其阻抗為邊 ^的阻抗'
[0047] 若邊a Α的尾節(jié)點k是受限交叉口,則令邊標(biāo)號/C" := ,且阻抗:= Γ"
[0048] 若邊a A的尾節(jié)點k是自由交叉口,則令節(jié)點標(biāo)號:= iC*,且阻抗
[0049] 將插入到優(yōu)先隊列SE中,}
[0050] 結(jié)束遍歷
[0051] 本文中根據(jù)習(xí)慣,用:=表示等于。
[0052] 相應(yīng)流程可設(shè)計如下:
[0053] S101,首先判斷遍歷網(wǎng)絡(luò)中是否還有未遍歷的邊Cijk,是則進(jìn)入S102,否則進(jìn)入 S103 ;
[0054] S102,判斷邊α Λ的尾節(jié)點k是否為受限節(jié)點(即受限交叉口),
[0055] 是則初始化邊a jk的標(biāo)號/Cv :='阻抗否則初始化節(jié)點k的標(biāo)號 阻抗
[0056] S103,創(chuàng)建從起點r到自身的標(biāo)號尸Γ,令其阻抗為G := 〇 ;
[0057] S104,判斷起點r是否還有未遍歷的下游邊α A,是則進(jìn)入S105,否則進(jìn)入步驟2 ;
[0058] S105,新建路徑iC* = /C十&,且令阻抗:=U , 為邊α A的阻抗;
[0059] S106,判斷邊α A的尾節(jié)點k是否為受限節(jié)點(即受限交叉口);
[0060] 是則初始化邊α A的標(biāo)號:= ,阻抗;
[0061] 否則初始化節(jié)點k的標(biāo)號:=,阻抗if := ;
[0062] S107,將;;,插入到優(yōu)先隊列 SE 中,:= U {/7=1,
[0063] 然后返回S104。
[0064] 步驟2 :路徑選擇
[0065] 實施例的具體初始化實現(xiàn)設(shè)計如下:
[0066] 如果優(yōu)先隊列為空(即S£ = 0 ),則停止,否則繼續(xù)
[0067] 從SE中選取并移除阻抗最小的路徑/Cv (路徑的最后一條邊a u稱為選取邊)
[0068] 如果選取路徑的尾節(jié)點j為終點s,則停止流程返回最短路徑/Cv,否則繼續(xù) [0069] 相應(yīng)流程可設(shè)計如下:
[0070] S201,判斷是否優(yōu)先隊列為空,是則停止流程返回為空,否則進(jìn)入S202 ;
[0071] S202,從SE中選取并移除阻抗最小的路徑;,路徑的最后一條邊〇 ij稱為選取 邊;
[0072] S203,判斷是否路徑/7^的尾節(jié)點j為終點s,是則停止流程返回最短路徑戶廣, 否則進(jìn)入步驟3。
[0073] 步驟3 :路徑擴(kuò)展
[0074] 實施例的具體初始化實現(xiàn)設(shè)計如下:
[0075] 遍歷選取邊a ^的每個可行轉(zhuǎn)向Iirijk (Iirijk為邊a ^到邊a jk的轉(zhuǎn)向,tjk為邊 aJk的阻抗)
[0076] 新建路徑= ? ?# (即在選取路徑P,?末端添加邊〇 jk),令阻抗 <?-
[0077] 如果可行轉(zhuǎn)向Vijk的尾節(jié)點k為受限交叉口
[0078] 如果新建路徑阻抗<~小于現(xiàn)有的邊標(biāo)號乂廣的阻抗Ot
[0079] 如果現(xiàn)有邊標(biāo)號e從,則將移出優(yōu)先隊列M _= I - ( αΓΙ
[0080] 替換現(xiàn)有邊標(biāo)號 將新建路徑加入優(yōu)先隊列,即!
[0081] 結(jié)束如果
[0082] 結(jié)束如果
[0083] 如果可行轉(zhuǎn)向尾節(jié)點k是自由交叉口
[0084] 如果新建路徑阻抗<~小于現(xiàn)有的節(jié)點標(biāo)號的阻抗f
[0085] 如果現(xiàn)有節(jié)點標(biāo)號< e見,則將< 移出優(yōu)先隊列跖:=浞-[,}
[0086] 替換現(xiàn)有節(jié)點標(biāo)號^^ := ,將新建路徑加入優(yōu)先隊列,即M := MU }
[0087] 結(jié)束如果
[0088] 結(jié)束如果
[0089] 結(jié)束遍歷
[0090] 返回步驟2
[0091] 相應(yīng)流程可設(shè)計如下:
[0092] S301,判斷選取邊a u是否有為遍歷的可行轉(zhuǎn)向Vijk,是則進(jìn)入S302,否則返回步 驟2 ;
[0093] S302,新建路徑 = /C"十《//;-,令其阻抗 := O + b ;
[0094] S303,判斷轉(zhuǎn)向的尾節(jié)點k是否為受限節(jié)點(即受限交叉口),是則進(jìn)入S304,否 則進(jìn)入S307 ;
[0095] S304,判斷新建路徑阻抗是否小于現(xiàn)有的邊標(biāo)號尸的阻抗,是則進(jìn)入 S305,否則返回S301 ;
[0096] S305,判斷現(xiàn)有邊標(biāo)號是否屬于優(yōu)先隊列SE,是則將尸移出優(yōu)先隊列SE, 然后進(jìn)入S306,否則直接進(jìn)入S306 ;
[0097] S306,用新建路徑替換現(xiàn)有邊標(biāo)號ΑΓ,將新建路徑加入優(yōu)先隊列,即 := U [只-- ,然后返回S301 ;
[0098] S307,判斷新建路徑阻抗<~是否小于現(xiàn)有的節(jié)點標(biāo)號的阻抗if,是則進(jìn)入 S308,否則返回S301 ;
[0099] S308,判斷現(xiàn)有節(jié)點標(biāo)號;^是否屬于優(yōu)先隊列SE,則將移出優(yōu)先隊列SE,然 后進(jìn)入S309,否則直接進(jìn)入S309 ;
[0100] S309,用新建路徑替換現(xiàn)有節(jié)點標(biāo)號:=凡?^,將新建路徑加入優(yōu)先隊列,即 := U j,然后返回 S301。
[0101] 本文中所描述的具體實施例僅僅是對本發(fā)明精神作舉例說明。本發(fā)明所屬技術(shù)領(lǐng) 域的技術(shù)人員可以對所描述的具體實施例做各種各樣的修改或補(bǔ)充或采用類似的方式替 代,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。
【權(quán)利要求】
1. 一種考慮交叉口轉(zhuǎn)向限制的最短路徑混合邊節(jié)點標(biāo)號方法,其特征在于,包括以下 步驟: 步驟1,初始化,包括以下子步驟, S101,首先判斷遍歷網(wǎng)絡(luò)中是否還有未遍歷的邊ajk,是則進(jìn)入S102,否則進(jìn)入S103; 5102, 判斷邊的尾節(jié)點k是否為受限節(jié)點, 是則初始化邊的標(biāo)號:=#,阻抗 ?否則初始化節(jié)點k的標(biāo)號 尸;f 阻抗< 然后返回SlOl ; 5103, 創(chuàng)建從起點r到自身的標(biāo)號凡",令其阻抗為f := 〇; 5104, 判斷起點r是否還有未遍歷的下游邊a A,是則進(jìn)入S105,否則進(jìn)入步驟2 ; 5105, 新建路徑/C'* = /C Φ ,且令阻抗:=Q,tA為邊a A的阻抗; 5106, 判斷邊a A的尾節(jié)點k是否為受限節(jié)點; 是則初始化邊a A的標(biāo)號尸,:=/C",阻抗^" := ; 否則初始化節(jié)點k的標(biāo)號;:= ,阻抗if ; 5107, 將<?插入到優(yōu)先隊列SE中,使[式1, 然后返回S104 ; 步驟2,路徑選擇,包括以下子步驟, S201,判斷是否優(yōu)先隊列SE為空,是則停止流程返回為空,否則進(jìn)入S202 ; 5202, 從優(yōu)先隊列SE中選取并移除阻抗最小的路徑乂?路徑的最后一條邊Ciij稱為 選取邊; 5203, 判斷是否路徑尸,%的尾節(jié)點j為終點s,是則停止流程返回最短路徑;Cv,否則 進(jìn)入步驟3 ; 步驟3,路徑擴(kuò)展,包括以下子步驟, S301,判斷選取邊Ciij是否有為遍歷的可行轉(zhuǎn)向Vijk,是則進(jìn)入S302,否則返回步驟 2 ; 5302, 新建路徑十《μ.,令相應(yīng)阻抗+G; 5303, 判斷轉(zhuǎn)向的尾節(jié)點k是否為受限節(jié)點,是則進(jìn)入S304,否則進(jìn)入S307 ; 5304, 判斷新建路徑阻抗是否小于現(xiàn)有的邊標(biāo)號只的阻抗是則進(jìn)入S305, 否則返回S301 ; 5305, 判斷現(xiàn)有邊標(biāo)號尸是否屬于優(yōu)先隊列SE,是則將凡?^移出優(yōu)先隊列SE,然后 進(jìn)入S306,否則直接進(jìn)入S306 ; 5306, 用新建路徑替換現(xiàn)有邊標(biāo)號只7^ 將新建路徑加入優(yōu)先隊列,使 從:=j ,然后返回 S301 ; 5307, 判斷新建路徑阻抗<:$是否小于現(xiàn)有的節(jié)點標(biāo)號凡f的阻抗if,是則進(jìn)入S308, 否則返回S301 ; 5308, 判斷現(xiàn)有節(jié)點標(biāo)號;^是否屬于優(yōu)先隊列SE,則將;移出優(yōu)先隊列SE,然后進(jìn) 入S309,否則直接進(jìn)入S309 ; 5309, 用新建路徑替換現(xiàn)有節(jié)點標(biāo)號'將新建路徑加入優(yōu)先隊列,使 丨,然后返回S3Ol。
【文檔編號】G01C21/34GK104390651SQ201410706334
【公開日】2015年3月4日 申請日期:2014年11月27日 優(yōu)先權(quán)日:2014年11月27日
【發(fā)明者】陳碧宇, 李清泉 申請人:武漢大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1