国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種確定導(dǎo)航路徑的方法和裝置的制作方法

      文檔序號:6158134閱讀:157來源:國知局
      專利名稱:一種確定導(dǎo)航路徑的方法和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及導(dǎo)航技術(shù),特別涉及一種確定導(dǎo)航路徑的方法和裝置。
      背景技術(shù)
      隨著城市化進(jìn)程的快速發(fā)展,交通網(wǎng)絡(luò)逐漸變得錯綜復(fù)雜,高效的導(dǎo)航系統(tǒng)成為 現(xiàn)代社會交通方面的主要需求,用于幫助用戶在短時間內(nèi)獲取到達(dá)目的地的較優(yōu)路徑。高 效的交通運行方案不僅能夠節(jié)約行程花費的時間,而且能夠減少機(jī)動車尾氣的排放量從而 對環(huán)境的保護(hù)帶來益處。導(dǎo)航系統(tǒng)主要用于根據(jù)用戶指定的起點和終點搜索出最優(yōu)路徑,這里所指的最優(yōu) 路徑可以不僅僅指長度最短的路徑,還可以指包含路徑長度、車流量、道路性質(zhì)等因素在內(nèi) 的最優(yōu)權(quán)值路徑。通常搜索耗時和路徑的優(yōu)化程度是相互制約的,如果需要搜索出最優(yōu)的 路徑,則需要消耗較長的搜索時間;反之,如果需要消耗較短的搜索時間,則搜索出的路徑 的優(yōu)化程度則隨之較低?,F(xiàn)有的路徑搜索算法主要存在兩種深度優(yōu)先(d印th-first)搜 索和廣度優(yōu)先(breadth-first)搜索。其中,深度優(yōu)先搜索能夠在較短時間內(nèi)確定出路徑, 但是確定出的路徑與最優(yōu)路徑偏差較大;廣度優(yōu)先搜索能夠較為精確地確定出最優(yōu)路徑, 但耗時較長,特別是當(dāng)搜索區(qū)域較大涉及10000個節(jié)點以上時,其搜索耗時往往是導(dǎo)航用 戶所不能接受的。顯然這兩種方式都不能夠平衡搜索耗時與路徑優(yōu)化程度之間的矛盾。

      發(fā)明內(nèi)容
      有鑒于此,本發(fā)明提供了一種確定導(dǎo)航路徑的方法和裝置,以便于有效地平衡搜 索耗時與路徑優(yōu)化程度之間的矛盾。本發(fā)明提供的技術(shù)方案如下一種確定導(dǎo)航路徑的方法,該方法包括A、利用深度優(yōu)先算法確定指定起點與指定終點之間的路徑;B、將步驟A確定出的路徑分成N個分段,其中,N為大于1的自然數(shù);C、利用廣度優(yōu)先算法分別確定各分段的起點與終點之間的路徑;D、將步驟C確定出的各分段的路徑合并成指定起點與指定終點之間的導(dǎo)航路徑。其中,所述步驟A具體包括Al、將所述指定起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中除了指定起點之外的 其它節(jié)點加入未處理的節(jié)點集;其中,全局節(jié)點集為指定起點和指定終點所在地圖的節(jié)點 集;A2、判斷所述指定終點是否已經(jīng)在最優(yōu)路徑結(jié)果集中,如果是,最優(yōu)路徑結(jié)果集中 的節(jié)點構(gòu)成的路徑為步驟A確定出的路徑,結(jié)束步驟A ;否則,執(zhí)行步驟A3 ;A3、從未處理的節(jié)點集中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中的最后一個節(jié)點相鄰的節(jié) 點,將選擇出的節(jié)點從未處理的節(jié)點集中取出,并利用該選擇出的節(jié)點更新候選節(jié)點集;A4、從候選節(jié)點集中選擇距離所述指定終點的歐氏距離最小的節(jié)點,將選擇的該節(jié)點加入最優(yōu)路徑結(jié)果集,轉(zhuǎn)至步驟A2 ;其中,最優(yōu)路徑結(jié)果集中的節(jié)點按照加入最優(yōu)路徑結(jié)果集的先后順序排列。更優(yōu)地,在所述步驟A3之前,還包括判斷未處理的節(jié)點集中是否存在與最優(yōu)路 徑結(jié)果集的最后一個節(jié)點相鄰的節(jié)點,如果是,繼續(xù)執(zhí)行所述步驟A3 ;否則,將最優(yōu)路徑結(jié) 果集的后η個節(jié)點從最優(yōu)路徑結(jié)果集中刪除,將未處理的節(jié)點集置為全局節(jié)點集中除了刪 除的η個節(jié)點之外的節(jié)點,繼續(xù)執(zhí)行所述步驟A3 ;其中,η為正整數(shù)。所述步驟B具體包括按照使每個分段包含預(yù)設(shè)數(shù)目節(jié)點的方式,從所述指定起 點開始將步驟A確定出的路徑進(jìn)行分段,直至所述指定終點。步驟C中所述廣度優(yōu)先算法包括迪科斯徹(Dijkstra)算法或者啟發(fā)式算法。其中,所述步驟C中,針對各分段分別執(zhí)行以下步驟Cl、將當(dāng)前分段的起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中除了當(dāng)前分段的起 點之外的其它節(jié)點加入未處理的節(jié)點集;其中,全局節(jié)點集為指定起點和指定終點所在地 圖的節(jié)點集;C2、判斷當(dāng)前分段的終點是否已經(jīng)在最優(yōu)路徑結(jié)果集中,如果是,最優(yōu)路徑結(jié)果集 中的節(jié)點構(gòu)成的路徑為當(dāng)前分段的起點與終點之間的路徑,結(jié)束當(dāng)前分段的路徑計算流 程;否則,執(zhí)行步驟C3;C3、從未處理的節(jié)點集中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中最后一個節(jié)點相鄰的節(jié) 點,將選擇出的節(jié)點從未處理的節(jié)點集中取出,并將該選擇出的節(jié)點加入候選節(jié)點集;C4、從候選節(jié)點集中選擇代價函數(shù)值最小的節(jié)點,利用選擇的節(jié)點距離當(dāng)前分段 的起點歐氏距離最小的路徑上的各節(jié)點,更新最優(yōu)路徑結(jié)果集,轉(zhuǎn)至步驟C2;其中,距離當(dāng) 前分段的起點的歐氏距離最小的節(jié)點為代價函數(shù)值最小的節(jié)點,或者距離當(dāng)前分段的起點 的歐氏距離和距離當(dāng)前分段的終點的歐氏距離的加權(quán)和最小的節(jié)點為代價函數(shù)值最小的 節(jié)占.
      I— /、、、 其中,最優(yōu)路徑結(jié)果集中的節(jié)點按照加入最優(yōu)路徑結(jié)果集的先后順序排列。一種確定導(dǎo)航路徑的裝置,該裝置包括第一路徑確定單元,用于利用深度優(yōu)先算法確定指定起點與指定終點之間的路 徑;路徑分段單元,用于將第一路徑確定單元確定出的路徑分成N個分段,其中,N為 大于1的自然數(shù);第二路徑確定單元,用于利用廣度優(yōu)先算法分別確定各分段的起點與終點之間的 路徑;路徑合并單元,用于將第二路徑確定單元確定出的各分段的路徑合并成指定起點 與指定終點之間的導(dǎo)航路徑。其中,所述第一路徑確定單元包括第一初始子單元,用于將所述指定起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中除 了指定起點之外的其它節(jié)點加入未處理的節(jié)點集;其中,全局節(jié)點集為指定起點和指定終 點所在地圖的節(jié)點集;第一判斷子單元,用于在未處理的節(jié)點集有節(jié)點加入時,判斷所述指定終點是否 已經(jīng)在最優(yōu)路徑結(jié)果集中;
      第一確定子單元,用于在所述第一判斷子單元的判斷結(jié)果為是時,確定最優(yōu)路徑 結(jié)果集中的節(jié)點構(gòu)成的路徑;第一更新子單元,用于在所述第一判斷子單元的判斷結(jié)果為否時,從未處理的節(jié) 點集中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中的最后一個節(jié)點相鄰的節(jié)點,將選擇出的節(jié)點從未處 理的節(jié)點集中取出,并利用該選擇出的節(jié)點更新候選節(jié)點集;第一選擇子單元,用于從更新后的候選節(jié)點集中選擇距離所述指定終點的歐氏距 離最小的節(jié)點,將選擇的該節(jié)點加入最后路徑結(jié)果集;其中,最優(yōu)路徑結(jié)果集中的節(jié)點按照加入最優(yōu)路徑結(jié)果集的先后順序排列。更進(jìn)一步地,所述路徑分段單元具體按照使每個分段包含預(yù)設(shè)數(shù)目節(jié)點的方式, 從所述指定起點開始將第一路徑確定單元確定出的路徑進(jìn)行分段,直至所述指定終點。另外,所述第二路徑確定單元包括第二初始子單元,用于將當(dāng)前分段的起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中 除了當(dāng)前分段的起點之外的其它節(jié)點加入未處理的節(jié)點集;其中,全局節(jié)點集為指定起點 和指定終點所在地圖的節(jié)點集;第二判斷子單元,用于在未處理的節(jié)點集有節(jié)點加入時,判斷當(dāng)前分段的終點是 否已經(jīng)在最優(yōu)路徑結(jié)果集中;第二確定子單元,用于在所述第二判斷子單元的判斷結(jié)果為是時,確定最優(yōu)路徑 結(jié)果集中的節(jié)點構(gòu)成的路徑;第二更新子單元,用于在所述第二判斷子單元的判斷結(jié)果為否時,從未處理的節(jié) 點集中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中的最后一個節(jié)點相鄰的節(jié)點,將選擇出的節(jié)點從未處 理的節(jié)點集中取出,并將該選擇出的節(jié)點加入候選節(jié)點集;第二選擇子單元,用于從更新后的候選節(jié)點集中選擇代價函數(shù)值最小的節(jié)點,利 用選擇的該節(jié)點距離當(dāng)前分段的起點歐氏距離最小的路徑上的各節(jié)點更新最優(yōu)路徑結(jié)果 集;其中,距離當(dāng)前分段的起點的歐氏距離最小的節(jié)點為代價函數(shù)值最小的節(jié)點,或者距離 當(dāng)前分段的起點的歐氏距離和距離當(dāng)前分段的終點的歐氏距離的加權(quán)和最小的節(jié)點為代 價函數(shù)值最小的節(jié)點;其中,最優(yōu)路徑結(jié)果集中的節(jié)點按照加入最優(yōu)路徑結(jié)果集的先后順序排列。由以上技術(shù)方案可以看出,本發(fā)明提供的方法和裝置通過深度優(yōu)先算法快速得到 一個路徑結(jié)果,然后將該路徑結(jié)果分成若干分段,分別在每個分段中使用廣度優(yōu)先算法,得 到各分段中較為準(zhǔn)確的路徑。本發(fā)明能夠通過控制分段的數(shù)目或者各分段中的節(jié)點數(shù)來實 現(xiàn)搜索耗時與路徑優(yōu)化程度之間的折中和控制。


      圖1為本發(fā)明提供的方法流程圖。圖2為本發(fā)明實施例提供的深度優(yōu)先算法的實現(xiàn)流程圖。圖3為本發(fā)明實施例提供的Dijkstra算法的實現(xiàn)流程圖。圖4為本發(fā)明實施例提供的裝置結(jié)構(gòu)圖。
      具體實施例方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對 發(fā)明進(jìn)行詳細(xì)描述。本發(fā)明所提供主要方法可以如圖1所示,該方法主要包括以下步驟步驟101 利用深度優(yōu)先算法確定指定起點與指定終點之間的路徑。本步驟中的指定起點和指定終點通常為用戶指定在地圖上指定或輸入的起點和 終點,通過該流程確定指定起點和指定終點之間的導(dǎo)航路徑。步驟102 將步驟101確定出的路徑分成N個分段,其中,N為大于1的自然數(shù)。步驟103 在各分段中,利用廣度優(yōu)先算法確定分段的起點與該分段的終點之間 的路徑。步驟104 將步驟103確定出的各分段的路徑合并成指定起點和指定終點之間的 導(dǎo)航路徑。下面分別對圖1中的上述步驟逐一進(jìn)行詳細(xì)描述。步驟101中采用的深度優(yōu)先算法是現(xiàn)有技術(shù)中已有的搜索算法,為了方便對本發(fā) 明的理解,在此對深度優(yōu)先算法進(jìn)行簡單描述。首先,在進(jìn)行路徑搜索時,是在給定的全局 節(jié)點集中確定構(gòu)成指定起點和指定終點之間最優(yōu)路徑的節(jié)點,該全局節(jié)點集是導(dǎo)航系統(tǒng)中 提供的指定起點和指定終點所在地圖的節(jié)點集。通常在路徑搜索算法的實現(xiàn)過程中,除了供使用的全局節(jié)點集之外,還會涉及三 個節(jié)點集最優(yōu)路徑結(jié)果集、候選節(jié)點集和未處理的節(jié)點集。其中,最優(yōu)路徑結(jié)果集包含已 經(jīng)確定的屬于最優(yōu)路徑的節(jié)點,候選節(jié)點集包含最后一個加入最優(yōu)路徑結(jié)果集的節(jié)點的相 鄰節(jié)點,未處理的節(jié)點集包含在全局節(jié)點集中尚未被挑選進(jìn)入候選節(jié)點集的節(jié)點。深度優(yōu)先算法的主要實現(xiàn)過程可以如圖2所示,主要包括以下步驟步驟201 將指定起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中除了指定起點之外 的其它節(jié)點加入未處理的節(jié)點集。深度優(yōu)先算法中,最優(yōu)路徑結(jié)果集的初始狀態(tài)為空,可以確定的一點是,指定起點 一定是最優(yōu)路徑中的節(jié)點,因此,首先將指定起點加入最優(yōu)路徑結(jié)果集。步驟202 判斷指定終點是否已經(jīng)在最優(yōu)路徑結(jié)果集中,如果是,結(jié)束當(dāng)前深度優(yōu) 先算法的流程;否則,執(zhí)行步驟203。如果指定終點已經(jīng)在最優(yōu)路徑結(jié)果集中,說明已經(jīng)確定出最優(yōu)路徑,完成深度優(yōu) 先算法的流程。步驟203 從未處理的節(jié)點集中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中的最后一個節(jié)點相 鄰的節(jié)點,將選擇出的節(jié)點從未處理的節(jié)點集中取出,并利用該選擇出的節(jié)點更新候選節(jié)
      點^^ ο在本算法中設(shè)定最優(yōu)路徑結(jié)果集中各節(jié)點按照加入的先后順序進(jìn)行排列。步驟204 從候選節(jié)點集中選擇距離指定終點的歐氏距離最小的節(jié)點,將選擇的 節(jié)點加入最優(yōu)路徑結(jié)果集,轉(zhuǎn)至步驟202。通過上述過程,最終確定的最優(yōu)路徑結(jié)果集中的各節(jié)點構(gòu)成的路徑即為通過深度 優(yōu)先算法確定的路徑。但有可能會存在最終無法到達(dá)指定終點的情況,即當(dāng)在未處理的節(jié) 點集中,已經(jīng)沒有與最優(yōu)路徑結(jié)果集的最后一個節(jié)點相鄰的節(jié)點了,但此時并沒有確定出達(dá)到指定終點的路徑。為了避免這種情況,在步驟203之前,可以判斷未處理的節(jié)點集中是 否存在與最優(yōu)路徑結(jié)果集的最后一個節(jié)點相鄰的節(jié)點,如果是,繼續(xù)執(zhí)行步驟203 ;否則, 說明最優(yōu)路徑結(jié)果集中的某些節(jié)點并不屬于最優(yōu)路徑,才會導(dǎo)致無法到達(dá)指定終點,此時, 可以從最優(yōu)路徑結(jié)果集中的某個節(jié)點開始,重新選擇其它路徑。例如,可以按照加入最優(yōu)路 徑結(jié)果集的先后順序,將后η個加入最優(yōu)路徑結(jié)果集的節(jié)點從最優(yōu)路徑結(jié)果集中刪除,將 未處理的節(jié)點集置為全局節(jié)點集中除了從最優(yōu)路徑結(jié)果集中刪除的節(jié)點之外的節(jié)點,然后 轉(zhuǎn)至步驟203。其中,η值為正整數(shù),該值可以是一個固定的值,也可以首次確定無法到達(dá)指 定終點時取η為1,第二次確定無法到達(dá)指定終點時取η為2,第m次確定無法到達(dá)指定終 點時取η為m。從上述深度優(yōu)先算法的處理過程可以看出,在確定最優(yōu)路徑結(jié)果集中的節(jié)點時, 僅考慮下一個相鄰節(jié)點中距離指定終點最近的節(jié)點,從中選出距離指定終點最近的節(jié)點加 入最優(yōu)路徑結(jié)果集,并沒有考慮已經(jīng)確定出的路徑(即歷史路徑),這就會造成最終確定出 的路徑并不是指定起點到指定終點的最優(yōu)路徑,但能夠快速確定出一個大致的路徑。在圖1的步驟102中,在深度優(yōu)先算法確定出的路徑基礎(chǔ)上,將該路徑進(jìn)行分段。 在進(jìn)行分段時,可以按照使每個分段包含預(yù)設(shè)數(shù)目的節(jié)點進(jìn)行。其中,每個分段包含的節(jié)點 數(shù)目可以根據(jù)路徑優(yōu)化程度要求和搜索耗時要求進(jìn)行設(shè)定。假設(shè)設(shè)置每個分段中包含16 個節(jié)點,則在步驟101確定的路徑基礎(chǔ)上,從指定起點開始每16個節(jié)點分為一個分段,直至 指定終點。在圖1所示的步驟103中,可以同時對各分段,采用廣度優(yōu)先算法確定分段的起點 到分段的終點之間的路徑。同樣,廣度優(yōu)先算法也是現(xiàn)有技術(shù)中已有的搜索算法,在此僅進(jìn) 行簡單描述。與深度優(yōu)先算法相同,除了全局節(jié)點集之外,廣度優(yōu)先算法也涉及最優(yōu)路徑 結(jié)果集、候選節(jié)點集和未處理的節(jié)點集,含義與深度優(yōu)先算法中相同。現(xiàn)有的廣度優(yōu)先算 法包括迪科斯徹(Dijkstra)算法、啟發(fā)式算法等,在此以Dijkstra算法為例進(jìn)行介紹。 Dijkstra算法的實現(xiàn)過程如圖3所示,主要包括以下步驟步驟301 將起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中除了起點之外的其它節(jié) 點加入未處理的節(jié)點集。本流程中的起點和終點均指各分段的起點和終點。最優(yōu)路徑結(jié)果集的初始狀態(tài)同 樣為空,由于起點一定是最優(yōu)路徑中的節(jié)點,因此,首先將起點加入最優(yōu)路徑結(jié)果集。針對 各分段執(zhí)行的廣度優(yōu)先算法,該起點為各分段的起點。步驟302 判斷終點是否已經(jīng)在最優(yōu)路徑結(jié)果集中,如果是,結(jié)束當(dāng)前廣度優(yōu)先算 法的流程;否則,執(zhí)行步驟303。針對各分段執(zhí)行的廣度優(yōu)先算法,該終點為各分段的終點。步驟303 從未處理的節(jié)點集中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中最后一個節(jié)點相鄰 的節(jié)點,將選擇出的節(jié)點從未處理的節(jié)點集中取出,并將該選擇出的節(jié)點加入候選節(jié)點集。同樣,在本算法中設(shè)定最優(yōu)路徑結(jié)果集中各節(jié)點按照加入的先后順序進(jìn)行排列。步驟304 從候選節(jié)點集中選擇距離起點的歐氏距離最小的節(jié)點,利用該選擇的 節(jié)點距離起點歐氏距離最小的路徑上的各節(jié)點更新最優(yōu)路徑結(jié)果集,轉(zhuǎn)至步驟302。在確定出候選節(jié)點集中距離起點的歐氏距離最小的節(jié)點后,由于該節(jié)點距離起點 最近的路徑并不一定是候選節(jié)點集中各節(jié)點構(gòu)成的路徑,因此,需要將確定出的節(jié)點距離起點歐氏距離最小的路徑上的各節(jié)點更新最優(yōu)路徑結(jié)果集。通過上述過程,最終確定的最優(yōu)路徑結(jié)果集中的各節(jié)點構(gòu)成的路徑即為通過廣度 優(yōu)先算法確定的路徑。啟發(fā)式算法與上述的Dijkstra算法的流程大致相同,只是在步驟304中從候選節(jié) 點集中選擇節(jié)點時,不是選擇距離起點的歐氏距離最小的節(jié)點,而是對各節(jié)點加入啟發(fā)式 信息形成代價函數(shù),按照代價函數(shù)值的大小進(jìn)行選擇,以此控制搜索方向,減小搜索范圍。 節(jié)點η的代價函數(shù)h(n)可以表示為h(n) = aX f (η)+b X g (η),其中,f(n)為歷史已知信 息,g(n)為加入的啟發(fā)式信息,a為歷史已知信息的權(quán)重值,b為啟發(fā)式信息的權(quán)重值。在 選擇節(jié)點時,在候選節(jié)點集中選擇代價函數(shù)值最小的節(jié)點。在此舉一個計算各節(jié)點代價函數(shù)h(n)的具體例子,將節(jié)點到起點之間的歐 氏距離作為歷史已知信息f (η),將節(jié)點到終點之間的歐氏距離作為啟發(fā)式信息,則節(jié) 點η的代價函數(shù)h(n)實際上就是節(jié)點到起點的歐氏距離與節(jié)點到終點的歐氏距離的加 權(quán)和,當(dāng)權(quán)重值a和b分別為l-1/d印th、l/d印th時,代價函數(shù)h(n)為h(n) = (1-1/ depth) Xf (n)+g(n)/d印th,其中,depth為節(jié)點η在搜索空間樹中的層次。從上述廣度優(yōu)先算法的過程可以看出,在確定最優(yōu)路徑結(jié)果集中的節(jié)點時,會每 次都對到達(dá)起點的路徑進(jìn)行回溯,從而使得最終確定的起點到終點的路徑為最優(yōu)路徑,在 本發(fā)明中保證了各分段中分段的起點和終點之間的路徑為最優(yōu)路徑。下面舉一個簡單的實例對本發(fā)明提供的方法進(jìn)行說明。假設(shè)指定起點和指定終點 所在地圖的全局節(jié)點集中包含50個節(jié)點,指定起點為S,指定終點為Ε。首先利用深度優(yōu)先 算法確定的指定起點S到指定終點E之間的路徑Pl為S,a, b,c, d,e, f,g,h,I,j,k,E。由于該實例中節(jié)點較少,在此以每個分段中包含5個節(jié)點進(jìn)行分段,將路徑Pl分 成3段分段Segl包含的節(jié)點為:S, a, b,c, d。分段Seg2包含的節(jié)點為:d, e, f,g,h。分段Seg3包含的節(jié)點為:h, i,j,k,Ε。同時對三個分段采用廣度優(yōu)先算法確定各分段中起點到終點的路徑,分別為在分段Segl中,采用廣度優(yōu)先算法確定出的從節(jié)點S到節(jié)點d之間的路徑Pll為 S,al,bl,d0在分段Seg2中,采用廣度優(yōu)先算法確定出的節(jié)點d到節(jié)點h之間的路徑P12為 d,el, h0在分段Seg3中,采用廣度優(yōu)先算法確定出的節(jié)點h到節(jié)點E之間的路徑P13為 h, i2, E0最終,將各分段的路徑合并后,得到最終的路徑P2為:S, al, bl, d,el, h,i2,Ε。以上是對本發(fā)明所提供的方法進(jìn)行的詳細(xì)描述,下面對本發(fā)明所提供方法相對應(yīng) 的裝置進(jìn)行詳細(xì)描述。圖4為本發(fā)明所提供的裝置結(jié)構(gòu)圖,如圖4所示,該裝置可以包括 第一路徑確定單元400、路徑分段單元410、第二路徑確定單元420和路徑合并單元430。第一路徑確定單元400利用深度優(yōu)先算法確定指定起點與指定終點之間的路徑。路徑分段單元410將第一路徑確定單元400確定出的路徑分成N個分段,其中,N 為大于1的自然數(shù)。
      第二路徑確定單元420利用廣度優(yōu)先算法分別確定各分段的起點與終點之間的 路徑;路徑合并單元430將第二路徑確定單元420確定出的各分段的路徑合并成指定起 點與指定終點之間的導(dǎo)航路徑。其中,第一路徑確定單元400可以具體包括第一初始子單元401、第一判斷子單 元402、第一確定子單元403和第一更新子單元404和第一選擇子單元405。第一初始子單元401將指定起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中除了指定 起點之外的其它節(jié)點加入未處理的節(jié)點集;其中,全局節(jié)點集為指定起點和指定終點所在 地圖的節(jié)點集。第一判斷子單元402在未處理的節(jié)點集有節(jié)點加入時,判斷指定終點是否已經(jīng)在 最優(yōu)路徑結(jié)果集中。第一確定子單元403在第一判斷子單元402的判斷結(jié)果為是時,確定最優(yōu)路徑結(jié) 果集中的節(jié)點構(gòu)成的路徑。第一更新子單元404在第一判斷子單元402的判斷結(jié)果為否時,從未處理的節(jié)點 集中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中的最后一個節(jié)點相鄰的節(jié)點,將選擇出的節(jié)點從未處理 的節(jié)點集中取出,并利用該選擇出的節(jié)點更新候選節(jié)點集。第一選擇子單元405從更新后的候選節(jié)點集中選擇距離指定終點的歐氏距離最 小的節(jié)點,將選擇的該節(jié)點加入最后路徑結(jié)果集。其中,最優(yōu)路徑結(jié)果集中的節(jié)點按照加入最優(yōu)路徑結(jié)果集的先后順序排列。更進(jìn)一步地,為了避免利用深度優(yōu)先算法無法到達(dá)終點的情況,該第一路徑確定 單元400還可以包含錯誤處理子單元406。錯誤處理子單元406在第一判斷子單元402的判斷結(jié)果為否時,判斷未處理的節(jié) 點集中是否存在與最優(yōu)路徑結(jié)果集的最后一個節(jié)點相鄰的節(jié)點,如果否,將最優(yōu)路徑結(jié)果 集的后η個節(jié)點從最優(yōu)路徑結(jié)果集中刪除,將未處理的節(jié)點集置為全局節(jié)點集中除了刪除 的η個節(jié)點之外的節(jié)點;其中,η為正整數(shù)。該裝置中的路徑分段單元410可以具體按照使每個分段包含預(yù)設(shè)數(shù)目節(jié)點的方 式,從指定起點開始將第一路徑確定單元確定出的路徑進(jìn)行分段,直至指定終點。另外,上述第二路徑確定單元420可以具體包括第二初始子單元421、第二判斷 子單元422、第二確定子單元423、第二更新子單元424和第二選擇子單元425。第二初始子單元421將當(dāng)前分段的起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中除 了當(dāng)前分段的起點之外的其它節(jié)點加入未處理的節(jié)點集;其中,全局節(jié)點集為指定起點和 指定終點所在地圖的節(jié)點集。第二判斷子單元422在未處理的節(jié)點集有節(jié)點加入時,判斷當(dāng)前分段的終點是否 已經(jīng)在最優(yōu)路徑結(jié)果集中。第二確定子單元423在第二判斷子單元422的判斷結(jié)果為是時,確定最優(yōu)路徑結(jié) 果集中的節(jié)點構(gòu)成的路徑。第二更新子單元424在第二判斷子單元422的判斷結(jié)果為否時,從未處理的節(jié)點 集中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中的最后一個節(jié)點相鄰的節(jié)點,將選擇出的節(jié)點從未處理 的節(jié)點集中取出,并將該選擇出的節(jié)點加入候選節(jié)點集。
      第二選擇子單元425從候選節(jié)點集中選擇代價函數(shù)值最小的節(jié)點,利用選擇的該 節(jié)點距離當(dāng)前分段的起點歐氏距離最小的路徑上的各節(jié)點更新最優(yōu)路徑節(jié)點集;其中,距 離當(dāng)前分段的起點的歐氏距離最小的節(jié)點為代價函數(shù)值最小的節(jié)點,或者距離當(dāng)前分段的 起點的歐氏距離和距離當(dāng)前分段的終點的歐氏距離的加權(quán)和最小的節(jié)點為代價函數(shù)值最 小的節(jié)點。由以上描述可以看出,本發(fā)明提供的方法和裝置通過深度優(yōu)先算法快速得到一個 路徑結(jié)果,然后將該路徑結(jié)果分成若干分段,分別在每個分段中使用廣度優(yōu)先算法,得到各 分段中較為準(zhǔn)確的路徑。本發(fā)明能夠通過控制分段的數(shù)目或者各分段中的節(jié)點數(shù)來實現(xiàn)搜 索耗時與路徑優(yōu)化程度之間的這種和控制。在此以包含20128個節(jié)點的全局節(jié)點集為例,以相同的指定起點和指定終點,分 別以不同的各分段節(jié)點數(shù)對搜索耗時和路徑優(yōu)化程度進(jìn)行實現(xiàn)論證。最終的實驗論證結(jié)果 如表1所示。表權(quán)利要求
      1.一種確定導(dǎo)航路徑的方法,其特征在于,該方法包括A、利用深度優(yōu)先算法確定指定起點與指定終點之間的路徑;B、將步驟A確定出的路徑分成N個分段,其中,N為大于1的自然數(shù);C、利用廣度優(yōu)先算法分別確定各分段的起點與終點之間的路徑;D、將步驟C確定出的各分段的路徑合并成指定起點與指定終點之間的導(dǎo)航路徑。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A具體包括Al、將所述指定起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中除了指定起點之外的其它 節(jié)點加入未處理的節(jié)點集;其中,全局節(jié)點集為指定起點和指定終點所在地圖的節(jié)點集;A2、判斷所述指定終點是否已經(jīng)在最優(yōu)路徑結(jié)果集中,如果是,最優(yōu)路徑結(jié)果集中的節(jié) 點構(gòu)成的路徑為步驟A確定出的路徑,結(jié)束步驟A ;否則,執(zhí)行步驟A3 ;A3、從未處理的節(jié)點集中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中的最后一個節(jié)點相鄰的節(jié)點, 將選擇出的節(jié)點從未處理的節(jié)點集中取出,并利用該選擇出的節(jié)點更新候選節(jié)點集;A4、從候選節(jié)點集中選擇距離所述指定終點的歐氏距離最小的節(jié)點,將選擇的該節(jié)點 加入最優(yōu)路徑結(jié)果集,轉(zhuǎn)至步驟A2 ;其中,最優(yōu)路徑結(jié)果集中的節(jié)點按照加入最優(yōu)路徑結(jié)果集的先后順序排列。
      3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述步驟A3之前,還包括判斷未處理 的節(jié)點集中是否存在與最優(yōu)路徑結(jié)果集的最后一個節(jié)點相鄰的節(jié)點,如果是,繼續(xù)執(zhí)行所 述步驟A3 ;否則,將最優(yōu)路徑結(jié)果集的后η個節(jié)點從最優(yōu)路徑結(jié)果集中刪除,將未處理的節(jié) 點集置為全局節(jié)點集中除了刪除的η個節(jié)點之外的節(jié)點,繼續(xù)執(zhí)行所述步驟A3 ;其中,η為 正整數(shù)。
      4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B具體包括按照使每個分段包 含預(yù)設(shè)數(shù)目節(jié)點的方式,從所述指定起點開始將步驟A確定出的路徑進(jìn)行分段,直至所述 指定終點。
      5.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟C中所述廣度優(yōu)先算法包括迪科斯 徹(Dijkstra)算法或者啟發(fā)式算法。
      6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟C中,針對各分段分別執(zhí)行以下 步驟Cl、將當(dāng)前分段的起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中除了當(dāng)前分段的起點之 外的其它節(jié)點加入未處理的節(jié)點集;其中,全局節(jié)點集為指定起點和指定終點所在地圖的 節(jié)點集;C2、判斷當(dāng)前分段的終點是否已經(jīng)在最優(yōu)路徑結(jié)果集中,如果是,最優(yōu)路徑結(jié)果集中的 節(jié)點構(gòu)成的路徑為當(dāng)前分段的起點與終點之間的路徑,結(jié)束當(dāng)前分段的路徑計算流程;否 則,執(zhí)行步驟C3;C3、從未處理的節(jié)點集中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中最后一個節(jié)點相鄰的節(jié)點,將 選擇出的節(jié)點從未處理的節(jié)點集中取出,并將該選擇出的節(jié)點加入候選節(jié)點集;C4、從候選節(jié)點集中選擇代價函數(shù)值最小的節(jié)點,利用選擇的節(jié)點距離當(dāng)前分段的起 點歐氏距離最小的路徑上的各節(jié)點,更新最優(yōu)路徑結(jié)果集,轉(zhuǎn)至步驟C2;其中,距離當(dāng)前分 段的起點的歐氏距離最小的節(jié)點為代價函數(shù)值最小的節(jié)點,或者距離當(dāng)前分段的起點的 歐氏距離和距離當(dāng)前分段的終點的歐氏距離的加權(quán)和最小的節(jié)點為代價函數(shù)值最小的節(jié)點其中,最優(yōu)路徑結(jié)果集中的節(jié)點按照加入最優(yōu)路徑結(jié)果集的先后順序排列。
      7.一種確定導(dǎo)航路徑的裝置,其特征在于,該裝置包括第一路徑確定單元,用于利用深度優(yōu)先算法確定指定起點與指定終點之間的路徑; 路徑分段單元,用于將第一路徑確定單元確定出的路徑分成N個分段,其中,N為大于1 的自然數(shù);第二路徑確定單元,用于利用廣度優(yōu)先算法分別確定各分段的起點與終點之間的路徑;路徑合并單元,用于將第二路徑確定單元確定出的各分段的路徑合并成指定起點與指 定終點之間的導(dǎo)航路徑。
      8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一路徑確定單元包括第一初始子單元,用于將所述指定起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中除了指 定起點之外的其它節(jié)點加入未處理的節(jié)點集;其中,全局節(jié)點集為指定起點和指定終點所 在地圖的節(jié)點集;第一判斷子單元,用于在未處理的節(jié)點集有節(jié)點加入時,判斷所述指定終點是否已經(jīng) 在最優(yōu)路徑結(jié)果集中;第一確定子單元,用于在所述第一判斷子單元的判斷結(jié)果為是時,確定最優(yōu)路徑結(jié)果 集中的節(jié)點構(gòu)成的路徑;第一更新子單元,用于在所述第一判斷子單元的判斷結(jié)果為否時,從未處理的節(jié)點集 中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中的最后一個節(jié)點相鄰的節(jié)點,將選擇出的節(jié)點從未處理的 節(jié)點集中取出,并利用該選擇出的節(jié)點更新候選節(jié)點集;第一選擇子單元,用于從更新后的候選節(jié)點集中選擇距離所述指定終點的歐氏距離最 小的節(jié)點,將選擇的該節(jié)點加入最后路徑結(jié)果集;其中,最優(yōu)路徑結(jié)果集中的節(jié)點按照加入最優(yōu)路徑結(jié)果集的先后順序排列。
      9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述路徑分段單元具體按照使每個分段 包含預(yù)設(shè)數(shù)目節(jié)點的方式,從所述指定起點開始將第一路徑確定單元確定出的路徑進(jìn)行分 段,直至所述指定終點。
      10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第二路徑確定單元包括第二初始子單元,用于將當(dāng)前分段的起點加入最優(yōu)路徑結(jié)果集,將全局節(jié)點集中除了 當(dāng)前分段的起點之外的其它節(jié)點加入未處理的節(jié)點集;其中,全局節(jié)點集為指定起點和指 定終點所在地圖的節(jié)點集;第二判斷子單元,用于在未處理的節(jié)點集有節(jié)點加入時,判斷當(dāng)前分段的終點是否已 經(jīng)在最優(yōu)路徑結(jié)果集中;第二確定子單元,用于在所述第二判斷子單元的判斷結(jié)果為是時,確定最優(yōu)路徑結(jié)果 集中的節(jié)點構(gòu)成的路徑;第二更新子單元,用于在所述第二判斷子單元的判斷結(jié)果為否時,從未處理的節(jié)點集 中選擇與當(dāng)前最優(yōu)路徑結(jié)果集中的最后一個節(jié)點相鄰的節(jié)點,將選擇出的節(jié)點從未處理的 節(jié)點集中取出,并將該選擇出的節(jié)點加入候選節(jié)點集;第二選擇子單元,用于從更新后的候選節(jié)點集中選擇代價函數(shù)值最小的節(jié)點,利用選頁擇的該節(jié)點距離當(dāng)前分段的起點歐氏距離最小的路徑上的各節(jié)點更新最優(yōu)路徑結(jié)果集;其 中,距離當(dāng)前分段的起點的歐氏距離最小的節(jié)點為代價函數(shù)值最小的節(jié)點,或者距離當(dāng)前 分段的起點的歐氏距離和距離當(dāng)前分段的終點的歐氏距離的加權(quán)和最小的節(jié)點為代價函 數(shù)值最小的節(jié)點;其中,最優(yōu)路徑結(jié)果集中的節(jié)點按照加入最優(yōu)路徑結(jié)果集的先后順序排列。
      全文摘要
      本發(fā)明提供了一種確定導(dǎo)航路徑的方法和裝置,其中方法包括A、利用深度優(yōu)先算法確定指定起點與指定終點之間的路徑;B、將步驟A確定出的路徑分成N個分段,其中,N為大于1的自然數(shù);C、利用廣度優(yōu)先算法分別確定各分段的起點與終點之間的路徑;D、將步驟C確定出的各分段的路徑合并成指定起點與指定終點之間的導(dǎo)航路徑。本發(fā)明能夠通過控制分段的數(shù)目或者各分段中的節(jié)點數(shù)來實現(xiàn)搜索耗時與路徑優(yōu)化程度之間的折中和控制。
      文檔編號G01C21/34GK102116635SQ20091021570
      公開日2011年7月6日 申請日期2009年12月30日 優(yōu)先權(quán)日2009年12月30日
      發(fā)明者周衛(wèi), 張明, 楊晨 申請人:西門子公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1