專利名稱:導(dǎo)航設(shè)備中實(shí)現(xiàn)路徑規(guī)劃的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及交通領(lǐng)域中的路徑規(guī)劃,特別是路徑規(guī)劃的算法。
背景技術(shù):
迪杰斯特拉算法(Dijkstra)是由荷蘭計(jì)算機(jī)科學(xué)家艾茲赫爾·迪杰斯特拉 (Edsger Wybe Dijkstra)發(fā)明的。算法解決的是有向圖中單個(gè)源點(diǎn)到其他頂點(diǎn)的最短路徑問題。如果圖中的頂點(diǎn)表示城市,而邊上的權(quán)重表示城市間的距離,該算法可以用來找到兩個(gè)城市之間的最短路徑。該算法的輸入包含了一個(gè)有權(quán)重的有向圖G,我們以V表示G中所有頂點(diǎn)的集合。 圖中的邊,是兩個(gè)頂點(diǎn)所形成的有序元素對(duì)(Vi,Vj),表示從頂點(diǎn)Vi到Vj有路徑相連。我們以E表示所有邊的集合,而邊的權(quán)重則由權(quán)重函數(shù)W: E-
定義,權(quán)重可以表示距離。因此,w(Vi,Vj)就是從頂點(diǎn)Vi到頂點(diǎn)Vj的距離。圖中任兩點(diǎn)間路徑的距離,就是該路徑上所有邊的距離總和。已知圖中V有頂點(diǎn)VO,迪杰斯特拉算法可以找到VO到所有其他頂點(diǎn)的最短路徑。在計(jì)算VO到其他頂點(diǎn)的最短路徑時(shí),按下述步驟執(zhí)行
1.首先,設(shè)置兩個(gè)頂點(diǎn)集合S和T,S={V0},T= {其余頂點(diǎn)},T中頂點(diǎn)對(duì)應(yīng)的距離值為 d (VO1Vi),如果VO與Vi之間有邊連接,則d(V0,Vi) =W (V0,Vj),否則,d (V0,Vi)為①,
2.從T中選取頂點(diǎn)W,條件是W與VO的距離值最小,將W從集合T中移入集合S,
3.對(duì)T中頂點(diǎn)的距離值進(jìn)行修改若加進(jìn)W作中間頂點(diǎn),從VO到Vi的距離值比不加 W的路徑要短,則修改此距離值。重復(fù)上述步驟2、3,直到S中包含所有頂點(diǎn),即S=T為止。該算法因其算法的效率而在導(dǎo)航軟件中被大量采用。導(dǎo)航軟件中用于路徑規(guī)劃的地圖來自于現(xiàn)實(shí)中的道路交通網(wǎng)絡(luò),因此該圖為典型的有向圖,而且根據(jù)該圖使用迪杰斯特拉算法做路徑規(guī)劃的過程中,還必須考慮到圖中各個(gè)頂點(diǎn)(實(shí)際中為路口)上包含的交通規(guī)則。公知的導(dǎo)航軟件路徑規(guī)劃,一般采用從路徑規(guī)劃的起點(diǎn)向終點(diǎn)進(jìn)行發(fā)散的規(guī)劃原則。同時(shí)為了縮短路徑規(guī)劃的時(shí)間,提高路徑規(guī)劃的效率,往往采用從起點(diǎn)發(fā)散到終點(diǎn)即告結(jié)束的原則,而事實(shí)上,這樣的規(guī)劃原則往往是以犧牲路徑規(guī)劃的合理性來縮短路徑規(guī)劃的時(shí)間提高路徑規(guī)劃的效率。由于道路網(wǎng)絡(luò)為有向圖,同時(shí)在道路網(wǎng)絡(luò)上的路口常常存在交通規(guī)則,考慮到迪杰斯特拉路徑規(guī)劃算法的特性已確定最短路徑的頂點(diǎn)不能被再次翻開,這樣常常會(huì)導(dǎo)致從起點(diǎn)到終點(diǎn)的路徑規(guī)劃失敗,其原因是如果兩個(gè)位置點(diǎn)都連通到一個(gè)公共點(diǎn),則從公共點(diǎn)過來的路徑規(guī)劃過程中,該兩點(diǎn)之間的道路不會(huì)被算法找到。如
圖1中,位置點(diǎn)B和C通過S4和S5連通到公共點(diǎn)D,則從D向B、C方向的路徑規(guī)劃過程中,B和C之間的道路S3不會(huì)被找到。如圖1所示,Start為起點(diǎn),End為終點(diǎn),交通規(guī)則規(guī)定從道路S4經(jīng)B點(diǎn)不能到達(dá)道路S2,我們根據(jù)迪杰斯特拉路徑規(guī)劃原理,從Mart點(diǎn)出發(fā),當(dāng)G點(diǎn)、D點(diǎn)被依次翻開時(shí),Start, G和D點(diǎn)為有最短路徑的頂點(diǎn)的集合, S={Start, G, D},
而End、A、B、C為尚未確定最短路徑的頂點(diǎn)集合, T= {End、A、B、C}。根據(jù)D點(diǎn)的拓?fù)潢P(guān)系,從D點(diǎn)再次向外發(fā)散可以翻開C點(diǎn)和B點(diǎn),當(dāng)C點(diǎn)和B點(diǎn)被翻開時(shí),
權(quán)利要求
1.導(dǎo)航設(shè)備中實(shí)現(xiàn)路徑規(guī)劃的方法,依賴于導(dǎo)航設(shè)備中的處理器實(shí)現(xiàn),與處理器配套的存儲(chǔ)介質(zhì)中存儲(chǔ)有地圖以及圖中各路口的交通規(guī)則,其特征在于當(dāng)確定起點(diǎn)和終點(diǎn)后, 路徑規(guī)劃包含以下步驟A、設(shè)置存儲(chǔ)區(qū)域SA,按照迪杰斯特拉原理,根據(jù)地圖及交通規(guī)則計(jì)算從起點(diǎn)到終點(diǎn)的路徑,并將結(jié)果轉(zhuǎn)存到SA中,B、設(shè)置存儲(chǔ)區(qū)域SB,按照迪杰斯特拉原理,根據(jù)地圖及交通規(guī)則,以設(shè)定的終點(diǎn)作為開始,設(shè)定的起點(diǎn)作為結(jié)束,計(jì)算路徑,并將結(jié)果轉(zhuǎn)存到SB中,C、比較SA和SB中的結(jié)果,如果都有從起點(diǎn)到終點(diǎn)的路徑,取其中距離短的路徑作為本次路徑規(guī)劃的結(jié)果;如果只有一個(gè)從起點(diǎn)到終點(diǎn)的路徑,將成功者作為本次路徑規(guī)劃的結(jié)果;當(dāng)都沒有從起點(diǎn)到終點(diǎn)的路徑時(shí),路徑規(guī)劃失敗。
2.根據(jù)權(quán)利要求1所述的導(dǎo)航設(shè)備中實(shí)現(xiàn)路徑規(guī)劃的方法,其特征在于在步驟B中, 采用從起點(diǎn)到終點(diǎn)方向的交通規(guī)則。
全文摘要
導(dǎo)航設(shè)備中實(shí)現(xiàn)路徑規(guī)劃的方法,涉及交通領(lǐng)域中的路徑規(guī)劃,特別是路徑規(guī)劃的算法。該方法依賴于導(dǎo)航設(shè)備中的處理器實(shí)現(xiàn),在與處理器配套的內(nèi)存中存儲(chǔ)有路徑規(guī)劃圖以及圖中各路口的交通規(guī)則,其特征在于當(dāng)確定起點(diǎn)和終點(diǎn)后,路徑規(guī)劃包含以下步驟根據(jù)迪杰斯特拉路徑規(guī)劃原理、路徑規(guī)劃圖以及圖中各路口的交通規(guī)則,規(guī)劃從起點(diǎn)到終點(diǎn)的路徑,再規(guī)劃從終點(diǎn)到起點(diǎn)的路徑,然后選取上述兩個(gè)步驟中成功的作為規(guī)劃結(jié)果。采用此方法,可降低導(dǎo)航數(shù)據(jù)生產(chǎn)的技術(shù)度,提高導(dǎo)航性能。
文檔編號(hào)G01C21/34GK102506886SQ201110360440
公開日2012年6月20日 申請(qǐng)日期2011年11月15日 優(yōu)先權(quán)日2011年11月15日
發(fā)明者張維軍 申請(qǐng)人:深圳市路暢科技有限公司