專利名稱:可導(dǎo)航地圖數(shù)據(jù)庫的迭代邏輯更新的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及導(dǎo)航系統(tǒng),更具體來講,涉及一種利用迭代邏輯圖形修補(bǔ)來進(jìn)行導(dǎo)航地圖數(shù)據(jù)庫更新的方法。
背景技術(shù):
導(dǎo)航系統(tǒng)使用導(dǎo)航地圖數(shù)據(jù)庫來向用戶提供路由計(jì)算、引導(dǎo)、興趣點(diǎn)搜索及其他導(dǎo)航功能。導(dǎo)航地圖數(shù)據(jù)庫通常包括顯示道路網(wǎng)絡(luò)的數(shù)據(jù)和屬性,這些數(shù)據(jù)和屬性諸如依照由KIWI-W協(xié)會(huì)于2000年5月公布的1.22版本的KIWI格式來描述,將此內(nèi)容引用于此,以供參考。導(dǎo)航系統(tǒng)的性能取決于有效數(shù)據(jù),因此,當(dāng)?shù)缆肪W(wǎng)絡(luò)或者它們的元素例如因道路結(jié)構(gòu)而發(fā)生較大改變時(shí),更新或者重建導(dǎo)航地圖數(shù)據(jù)庫是十分重要的。可通過以下方式實(shí)現(xiàn)導(dǎo)航地圖數(shù)據(jù)庫的更新(i)替換數(shù)據(jù)庫,(ii)修改數(shù)據(jù)庫或者(iii)修補(bǔ)(patch)數(shù)據(jù)庫。大規(guī)模的廣域?qū)Ш降貓D數(shù)據(jù)庫為數(shù)據(jù)庫的修改或修補(bǔ)部分提供了優(yōu)選的方法以通過無線通信進(jìn)行更新。將一些導(dǎo)航地圖數(shù)據(jù)庫存儲(chǔ)在諸如CD-ROM或者DVD-ROM的只讀介質(zhì)上。這樣做增加了額外的限制,即原始地圖數(shù)據(jù)庫不可以被修改,并且給修補(bǔ)帶來了異常的困難。雖然不管介質(zhì)類型如何、將更新信息與原始數(shù)據(jù)庫關(guān)聯(lián)是普遍的難題,但是在多次更新之后修補(bǔ)數(shù)據(jù)的組成可能進(jìn)一步使更新復(fù)雜化。此外,由于修補(bǔ)可以根據(jù)原始數(shù)據(jù)獨(dú)立地被維護(hù),所以還要求能高效更新、無縫的并且可以由應(yīng)用程序穩(wěn)定訪問的方法。
導(dǎo)航地圖數(shù)據(jù)庫的不同版本以及導(dǎo)航地圖數(shù)據(jù)庫數(shù)據(jù)的不同源有助于在導(dǎo)航系統(tǒng)數(shù)據(jù)庫當(dāng)中數(shù)據(jù)內(nèi)容的細(xì)節(jié)上的較大變化,并且提供對因它們的版本依賴性而已經(jīng)變得可疑的道路網(wǎng)絡(luò)部分的識(shí)別。另外,一些用戶可能錯(cuò)過或者跳過更新,或者依照感興趣區(qū)域來部分地更新他們的數(shù)據(jù)庫,因此,進(jìn)一步有助于使用中的不同數(shù)據(jù)庫版本的數(shù)目。例如,在數(shù)據(jù)庫之間,地理位置和道路結(jié)構(gòu)的屬性可以有較大的不同,分配給道路結(jié)構(gòu)的標(biāo)識(shí)符可能不同,乃至有些隨機(jī),并且用于顯示道路網(wǎng)絡(luò)區(qū)段的道路網(wǎng)絡(luò)結(jié)構(gòu)可能不同。例如,對于道路來說,沒有名稱不是什么罕見的事情。然而,跟蹤所有版本并且向特定導(dǎo)航系統(tǒng)發(fā)送加工的更新內(nèi)容缺少穩(wěn)固性,并且在存儲(chǔ)量和通信帶寬的使用方面不靈活且效率低。因此,需要一種方法來識(shí)別待更新的道路網(wǎng)絡(luò)元素,其要足夠靈活以便可以利用多個(gè)數(shù)據(jù)庫版本進(jìn)行工作,并且可以基于預(yù)先已經(jīng)完全或者部分修改的數(shù)據(jù)庫版本來工作。
本發(fā)明致力于通過這樣一種更新操作來解決上述問題,所述更新操作獨(dú)立于數(shù)據(jù)庫版本專用信息來識(shí)別修改的道路網(wǎng)絡(luò)元素,并且不必要求修改原始數(shù)據(jù)庫。
發(fā)明內(nèi)容
依照本發(fā)明,為識(shí)別導(dǎo)航數(shù)據(jù)庫中的道路元素提供了一種改進(jìn)的方法。所述方法包括接收用于識(shí)別至少一個(gè)道路交叉點(diǎn)的數(shù)據(jù)庫更新;圍繞至少一個(gè)道路交叉點(diǎn)構(gòu)造道路拓?fù)涞囊贿壿嫳硎?;并且通過比較所述邏輯表示和導(dǎo)航數(shù)據(jù)庫的邏輯表示來識(shí)別導(dǎo)航數(shù)據(jù)庫中的至少一個(gè)道路交叉點(diǎn)。
依照本發(fā)明的另一個(gè)方面,為更新導(dǎo)航數(shù)據(jù)庫提供了一種改進(jìn)的方法。所述方法包括接收用于指定兩個(gè)節(jié)點(diǎn)和一鏈路的更新指令,其中所述節(jié)點(diǎn)表示道路交叉點(diǎn)而所述鏈路表示與兩個(gè)節(jié)點(diǎn)互聯(lián)的道路區(qū)段;利用邏輯圖匹配操作來識(shí)別導(dǎo)航數(shù)據(jù)庫中對應(yīng)于至少一個(gè)指定節(jié)點(diǎn)的現(xiàn)存節(jié)點(diǎn);基于其與導(dǎo)航數(shù)據(jù)庫中至少一個(gè)現(xiàn)存節(jié)點(diǎn)或者現(xiàn)存鏈路的關(guān)系來對每個(gè)指定節(jié)點(diǎn)分類;并且依照有序的操作規(guī)則集來施加更新指令。
通過以下提供的詳細(xì)說明,將使本發(fā)明的適用性的其他范圍變得更加顯而易見。應(yīng)該理解的是,雖然詳細(xì)的說明和具體示例表明本發(fā)明的優(yōu)選實(shí)施例,但是其目的僅在于舉例說明,而不意味著限制本發(fā)明的范圍。
圖1描述了依照本發(fā)明的擴(kuò)充的導(dǎo)航數(shù)據(jù)庫體系結(jié)構(gòu);圖2說明了依照本發(fā)明的道路拓?fù)涞氖纠赃壿嫳硎?;圖3A說明了依照本發(fā)明的對于頂點(diǎn)c的示例性最小生成樹(MST),其中頂點(diǎn)c駐留在導(dǎo)航系統(tǒng)地圖數(shù)據(jù)庫中;圖3B說明了依照本發(fā)明為更新指令構(gòu)造的邏輯表示;圖4說明了依照本發(fā)明的用于頂點(diǎn)c的示例性全部生成樹結(jié)構(gòu);圖5描述了對不同道路網(wǎng)絡(luò)對稱方案(scenario)的假圖案匹配概率;圖6描述了用于示出如何確定需要實(shí)現(xiàn)期望的匹配概率所要求的樹的深度的流程圖;圖7A-7C分別舉例說明了原始本地圖形圖案、修補(bǔ)圖形圖案、修補(bǔ)后本地圖形圖案;圖8描述了依照本發(fā)明修補(bǔ)順序規(guī)則的修補(bǔ)更新多級部分;圖9舉例說明了導(dǎo)航地圖數(shù)據(jù)庫更新的示例性內(nèi)容;圖10描述了示出了依照本發(fā)明對導(dǎo)航數(shù)據(jù)庫施加更新的示例性過程的流程圖;以及圖11描述了圖案匹配和分類的示例性過程。
具體實(shí)施例方式
地圖數(shù)據(jù)庫可以表示為有向圖,其中一個(gè)或多個(gè)有向邊(鏈路)表示每個(gè)道路區(qū)段,并且相鄰邊在表示交叉點(diǎn)或者道路區(qū)段連接的頂點(diǎn)(節(jié)點(diǎn))連接。諸如KIWI的一般導(dǎo)航地圖數(shù)據(jù)庫格式包括具有屬性的鏈路列表,如在本領(lǐng)域中眾所周知的那樣。地圖數(shù)據(jù)庫更新可以由對具有關(guān)聯(lián)屬性的鏈路的操作有序集組成。下面將證實(shí)有序的重要性。每條鏈路表示為有向邊和兩個(gè)頂點(diǎn)。頂點(diǎn)被更新作為對與它們相連的邊的部分操作。本發(fā)明包括通過基于鏈路操作的逐步更新,其可以通過識(shí)別一鏈路而被施加以通過匹配更新數(shù)據(jù)和原始數(shù)據(jù)、并且隨后修改或者修補(bǔ)原始數(shù)據(jù)來更新。
依照在此提供的方法,描述了兩個(gè)不同但是相關(guān)的功能(1)修補(bǔ)的應(yīng)用或者對原始或預(yù)先擴(kuò)充的數(shù)據(jù)庫的修改;(2)為應(yīng)用程序提供了到擴(kuò)充的數(shù)據(jù)庫的集成抽象(abstract)接口。從一應(yīng)用程序的觀點(diǎn)看,其希望具有用于訪問數(shù)據(jù)庫的單個(gè)接口,好象它是結(jié)合所有在前修補(bǔ)或者修改的一個(gè)集成數(shù)據(jù)庫。更新可以被提供作為對數(shù)據(jù)庫的修改或者作為修補(bǔ)。修補(bǔ)維護(hù)操作將所有接收的修補(bǔ)應(yīng)用于一修補(bǔ)數(shù)據(jù)庫,而不修改原始數(shù)據(jù)庫。然而,應(yīng)用程序無須知道這些或者進(jìn)行不同的動(dòng)作。
修補(bǔ)應(yīng)用程序的問題可以被重復(fù)處理,即通過一次或者分幾部添加一條鏈路來處理。在優(yōu)選實(shí)施例中,完整的更新被逐條鏈路地施加。關(guān)于這一點(diǎn),鏈路固有地包括兩個(gè)頂點(diǎn)(即,相對于有向邊的起始和末尾)。圖形可以獨(dú)立于應(yīng)用程序進(jìn)行修補(bǔ)以結(jié)合通過檢測查詢、并且基于修補(bǔ)提供修改的反饋進(jìn)行的單條鏈路更新,其中所述查詢利用位置、標(biāo)識(shí)符或者相反來涉及該鏈路。在另一個(gè)實(shí)施例中,以一標(biāo)識(shí)符序列來進(jìn)行完整的更新,并且變換至子網(wǎng)絡(luò)(即,涉及鏈路與節(jié)點(diǎn)的集合)。
對圖形進(jìn)行查詢的答復(fù),諸如檢索路由計(jì)算、引導(dǎo)或者興趣點(diǎn)搜索所需的數(shù)據(jù),可以利用修補(bǔ)存儲(chǔ)器獨(dú)立于未修改的原始圖形而得以控制,以便和基于已更新圖形的答復(fù)一致。對未修改的原始圖形的查詢的答復(fù)可以被修改,以便與更新的圖形一致,即便所述圖形未被改變。這些可以利用分離的修補(bǔ)存儲(chǔ)器來完成。因此,諸如路由計(jì)算的應(yīng)用程序訪問單個(gè)數(shù)據(jù)庫接口,而無法直接訪問修補(bǔ)存儲(chǔ)器、也不能直接訪問原始數(shù)據(jù)庫。相反,所述接口提供抽象訪問并且隱藏執(zhí)行細(xì)節(jié)。應(yīng)用程序可以請求最靠近確定位置的節(jié)點(diǎn),而不用知道結(jié)果是來自于原始數(shù)據(jù)庫還是被修補(bǔ)的,乃至數(shù)據(jù)庫是否完全被修補(bǔ)。圖1中示出了示例性體系結(jié)構(gòu)。
在一個(gè)實(shí)施例中,利用最新修補(bǔ)的圖形來添加每條新鏈路。因此,如果在第一條新鏈路之后添加第二條新鏈路,并且將它們兩者連接在新的節(jié)點(diǎn)時(shí),第二條新鏈路就好像是第一次添加到原始圖形上一樣被添加(除了它是具有所有先前修補(bǔ)的原始圖形)。實(shí)現(xiàn)此操作的一個(gè)方法是允許嵌套的修補(bǔ),即,對修補(bǔ)的修補(bǔ)。實(shí)質(zhì)上,修補(bǔ)管理或者維護(hù)軟件利用與應(yīng)用程序相同的摘要瀏覽來瀏覽數(shù)據(jù)庫。在優(yōu)選實(shí)施例中,在這樣的集合中執(zhí)行操作,在所述集合中,要么所有元素的標(biāo)識(shí)符先于集合所描述的改變,要么在集合中發(fā)生任何改變之前元素的標(biāo)識(shí)符使用原始數(shù)據(jù)庫版本。
以逐條鏈路為基礎(chǔ)存在三種可能的圖形更新(1)刪除鏈路;(2)添加新的鏈路;以及(3)修改現(xiàn)存鏈路。刪除鏈路可以通過拒絕包括特定鏈路的響應(yīng)元素來實(shí)現(xiàn)。換言之,修補(bǔ)屏蔽將鏈路或節(jié)點(diǎn)高亮顯示為“已修補(bǔ)”,并且尋找新的條目,可以簡單地把所述條目標(biāo)記或者標(biāo)明為不再存在(已刪除)。
修改現(xiàn)存鏈路可以被簡化為更加普通的操作,其刪除舊的鏈路并且利用新添加的鏈路來替換所述鏈路。對于鏈路添加來說,根據(jù)新鏈路的頂點(diǎn)與現(xiàn)存頂點(diǎn)的相關(guān)性可以存在多種可能的情況。要么頂點(diǎn)早已存在,即對應(yīng)于現(xiàn)存邊上的點(diǎn),要么是嶄新的。
考慮第一種情況,其中數(shù)據(jù)庫中早已存在鏈路的兩個(gè)頂點(diǎn)。如果與新的邊相連的兩個(gè)頂點(diǎn)與兩個(gè)現(xiàn)存頂點(diǎn)(在此簡稱為1類頂點(diǎn))相關(guān)聯(lián),那么兩個(gè)現(xiàn)存頂點(diǎn)能以相應(yīng)的新的頂點(diǎn)代替,并且可以添加新的連接的邊。在該情況下,兩個(gè)舊的頂點(diǎn)用兩個(gè)新的頂點(diǎn)代替,兩個(gè)新的頂點(diǎn)又與被添加的新邊連接。將所有新的信息存儲(chǔ)在修補(bǔ)數(shù)據(jù)庫中。將它們存儲(chǔ)在修補(bǔ)中的事實(shí)意味著將原始數(shù)據(jù)庫條目忽略不計(jì)。換言之,修補(bǔ)存儲(chǔ)器中的兩個(gè)已修改頂點(diǎn)替換原始數(shù)據(jù)庫中的兩個(gè)頂點(diǎn)。不刪除或者修改原始數(shù)據(jù)庫頂點(diǎn),而是相反,由于在修補(bǔ)存儲(chǔ)器中存在替換而修補(bǔ)接口忽略它們。
修補(bǔ)數(shù)據(jù)庫條目可用來識(shí)別刪除或添加。修補(bǔ)數(shù)據(jù)庫可以利用已刪除頂點(diǎn)和/或邊的列表來識(shí)別刪除,其中所述已刪除頂點(diǎn)和/或邊不會(huì)被發(fā)送到應(yīng)用程序。將添加列表與原始數(shù)據(jù)庫相關(guān)聯(lián),并且當(dāng)適當(dāng)?shù)恼埱髸r(shí)被發(fā)送到應(yīng)用程序。然而,如果頂點(diǎn)不對應(yīng)于原始數(shù)據(jù)庫中的頂點(diǎn)(稱為2類頂點(diǎn)),那么使用頂點(diǎn)相關(guān)的迭代法。
2類頂點(diǎn)的示例是對應(yīng)于現(xiàn)存邊上點(diǎn)的新頂點(diǎn)。如果新頂點(diǎn)對應(yīng)于現(xiàn)存邊上的位置(稱為2a類頂點(diǎn)),那么可以由與新頂點(diǎn)相連的兩條新的鄰接邊來替代該邊。實(shí)際上,在該情況下,適當(dāng)?shù)牟僮魇莿h除舊邊,并且添加兩條新邊,同時(shí)新的頂點(diǎn)連接它們。原始數(shù)據(jù)庫中的頂點(diǎn)未被改變,而是因?yàn)樵谛扪a(bǔ)存儲(chǔ)器中現(xiàn)在存在兩個(gè)替換頂點(diǎn)而使得修補(bǔ)接口將其忽略不計(jì)。由于已經(jīng)在修補(bǔ)中將舊邊列為已刪除的,所以將其忽略不計(jì)。修補(bǔ)的頂點(diǎn)不再直接連接在一起,而是經(jīng)由先前對應(yīng)于舊邊上一點(diǎn)的第三個(gè)新節(jié)點(diǎn)來連接。
對于單個(gè)頂點(diǎn)來說的第三種情況是這樣一種情形,其中新頂點(diǎn)不對應(yīng)于現(xiàn)存邊上的點(diǎn)(在此簡稱為2b類頂點(diǎn))。如果新的鏈路由兩個(gè)2b類頂點(diǎn)組成,那么由此更新的圖形不被完全連接。在該情況下,更新僅僅是對數(shù)據(jù)庫的補(bǔ)充。如果新的鏈路僅由一個(gè)2b類頂點(diǎn)組成,那么更新的圖形將被連接。由此,將有新的頂點(diǎn)和邊。
在本發(fā)明的一個(gè)實(shí)施例中,不將具有兩個(gè)新頂點(diǎn)的鏈路添加到修補(bǔ)數(shù)據(jù)庫,直到至少一個(gè)頂點(diǎn)對應(yīng)于現(xiàn)存頂點(diǎn)或者現(xiàn)存邊上的點(diǎn)(即,通過另一改變)。不添加與現(xiàn)存圖形完全不連通的鏈路??梢酝ㄟ^在適當(dāng)?shù)母逻^程中給鏈路排序來避免上述問題,或者將其高速緩存、直到其可以被連接為止(即,至少一個(gè)頂點(diǎn)屬于1類或者2a類)。一旦它可以連接,1類或者2a類頂點(diǎn)就將邊及其他頂點(diǎn)連接到圖形。不直接將未連接的鏈路與原始數(shù)據(jù)庫相關(guān)聯(lián)。然而,由于在搜索擴(kuò)充的數(shù)據(jù)庫中、修補(bǔ)接口可以包括高速緩存的斷開鏈路,所以應(yīng)用程序也要考慮它。此措施克服了高速緩存和擴(kuò)充的數(shù)據(jù)庫之間的不連接。單獨(dú)的邊、即不與主圖形相連的邊通常僅對很一般的短路由計(jì)算有用,由此如果有的話,對加強(qiáng)此修補(bǔ)有序規(guī)則存在一些負(fù)面結(jié)果。此規(guī)則將被稱為第一修補(bǔ)有序規(guī)則。
由于頂點(diǎn)可以是三種不同分類(1,2a或者2b)之一,并且鏈路具有兩個(gè)頂點(diǎn),所以對鏈路來說存在六種類的組合(i)兩個(gè)都是1類,(ii)兩個(gè)都是2a類,(iii)兩個(gè)都是2b類,(iv)一個(gè)是1類而另一個(gè)是2a類,(v)一個(gè)是1類而另一個(gè)是2b類,(vi)一個(gè)是2a類而一個(gè)是2b類。已經(jīng)對每種情況建立了修補(bǔ)操作之后,可以將修補(bǔ)重復(fù)操作作為一整體來考慮。由于已經(jīng)列舉了所有的情況,并且每種情況都由修補(bǔ)操作解決,所以一完整的修補(bǔ)迭代程序被規(guī)定為其允許修補(bǔ)管理或維護(hù)軟件以施加遵守排序規(guī)則的任意接收的修補(bǔ)。然而,應(yīng)注意的是,頂點(diǎn)的分類也許不是預(yù)先已知的。由此,在對鏈路進(jìn)行修補(bǔ)重復(fù)過程中的第一步是識(shí)別兩個(gè)頂點(diǎn)并且確定兩個(gè)頂點(diǎn)的每一個(gè)的分類。一種方法是獨(dú)立地考慮每個(gè)頂點(diǎn)并且試圖對其進(jìn)行分類。另一個(gè)方法是試圖同時(shí)識(shí)別兩個(gè)頂點(diǎn)。由于識(shí)別出的每個(gè)頂點(diǎn)可用來限制另一個(gè)的可能性或者確認(rèn)識(shí)別,所以單獨(dú)的頂點(diǎn)識(shí)別是一優(yōu)選實(shí)施例。每個(gè)頂點(diǎn)可以通過在頂點(diǎn)的指定位置的特定范圍內(nèi)進(jìn)行對候選頂點(diǎn)的第一次搜索、然后試圖將所述頂點(diǎn)按順序與每個(gè)候選頂點(diǎn)匹配來進(jìn)行分類。
存在各種備選方案來將一給定頂點(diǎn)與駐留在地圖數(shù)據(jù)庫中的另一個(gè)頂點(diǎn)相關(guān)聯(lián)??赡艿膫溥x方案包括精確位置匹配、標(biāo)識(shí)符匹配以及地理圖案匹配。本發(fā)明提出了改進(jìn)的邏輯圖案匹配技術(shù),其克服了上述方案的限制。
邏輯圖案匹配操作包含匹配局部區(qū)域的鏈路之間的邏輯關(guān)系。在對單個(gè)鏈路或者頂點(diǎn)更新過程中,提供一邏輯圖案,并且可以包含在預(yù)定距離內(nèi)(或者頂點(diǎn)之上的“跳躍(hops)”)與其他鏈路(或者頂點(diǎn)和邊)的一組關(guān)系。因?yàn)閮H有限信息被傳送,帶寬要求被降低且因?yàn)槠ヅ涫腔谶壿媹D形關(guān)系的,圖形匹配就更加有效。該邏輯圖形關(guān)系可以與簡單的邏輯和基本比較性算術(shù)運(yùn)算相比較(例如“頂點(diǎn)C的級度等于頂點(diǎn)X的級度?”)此外,邏輯圖形關(guān)系可以是比標(biāo)識(shí)符、位置、道路形狀信息及其他地理學(xué)上的數(shù)據(jù)更多的不變量。例如,即便在道路或者交叉點(diǎn)中發(fā)生顯著的幾何或者物理變化,邏輯圖案未必改變。當(dāng)交叉點(diǎn)或者道路位置、屬性及其他參數(shù)發(fā)生改變時(shí),表示道路網(wǎng)絡(luò)的邏輯圖案可以是不變量。例如,如果兩個(gè)數(shù)據(jù)庫或者數(shù)據(jù)庫的兩個(gè)版本僅僅在道路和交叉點(diǎn)的物理位置方面有所不同,那么單個(gè)邏輯圖案可以正確地表示它們兩者。
在一個(gè)實(shí)施例中,圖案區(qū)域的屬性可以包括用于匹配的邏輯圖案。諸如道路分類、道路名稱、光線信息、車道信息、道路寬度和各種其他道路屬性的道路屬性可用于擴(kuò)充所述圖案。對邊緣或者新的區(qū)域的修補(bǔ)、或者對低對稱性的道路、諸如高速公路的出口、入口或農(nóng)村道路的改變,那么不需要這樣有屬性的擴(kuò)充。
邏輯圖案匹配利用邏輯圖案結(jié)構(gòu)來進(jìn)行頂點(diǎn)或者邊的邏輯圖案比較以識(shí)別匹配。邊鄰接圖形是這種邏輯圖案的示例。圖2描述了具有新邊‘ch’(即,連接頂點(diǎn)h和c的邊)的新鏈路的本地(即,1跳躍)邏輯關(guān)系的示例10。粗體頂點(diǎn)在與新邊鄰接的頂點(diǎn)的一個(gè)“跳躍”范圍之內(nèi)。然而,可以想象的到的是,其他類型的邏輯圖案結(jié)構(gòu)也在本發(fā)明的范圍內(nèi)。以下是說明此類圖案結(jié)構(gòu)的一些變量的關(guān)系的示例頂點(diǎn)的度數(shù)(即,與頂點(diǎn)相連的唯一邊的數(shù)目);頂點(diǎn)的方向唯一度數(shù)(即,沿給定取向引導(dǎo)連接的唯一有向邊的數(shù)目);到達(dá)特定深度的相鄰邊的樹形圖案(交叉點(diǎn)之間的距離或者跳躍);以及相鄰邊樹形圖案和葉子頂點(diǎn)的組合。
在優(yōu)選實(shí)施例中,樹形結(jié)構(gòu)用于執(zhí)行邏輯圖案匹配運(yùn)算。圖3A說明了頂點(diǎn)c的最小生成(spanning)樹(MST)結(jié)構(gòu)的示例11。此樹形圖可以通過本地設(shè)備上的修補(bǔ)管理軟件、自底層的地圖數(shù)據(jù)庫和修補(bǔ)數(shù)據(jù)來生成。為了添加鏈路‘ch’,圖3B中所示的最小生成樹被構(gòu)造,并且當(dāng)做作為一組更新指令的一部分的鏈路x的邏輯標(biāo)識(shí)符被發(fā)送。對于相同頂點(diǎn)來說,所述圖形(邏輯圖案)與自導(dǎo)航系統(tǒng)的數(shù)據(jù)庫而構(gòu)造的圖形的比較,將示出它們雖然不同于其他附近頂點(diǎn)的圖形,但是邏輯上相同。由此,明顯地并且唯一地將頂點(diǎn)x識(shí)別為頂點(diǎn)c。雖然最小生成樹使從葉子到源的總計(jì)權(quán)重最小化,但是任何唯一的圖形樹都可以使用,無論其冗余與否、最小與否。在優(yōu)選實(shí)施例中,葉子的順序不重要。在另一個(gè)實(shí)施例中,例如當(dāng)從上面觀看時(shí),葉子的順序反映出道路(邊)的順時(shí)針順序。
將類似的方法用于頂點(diǎn)h。一旦已經(jīng)唯一地確定了兩個(gè)頂點(diǎn),那么可以更新修補(bǔ)數(shù)據(jù)庫(或者,如果可以修改的話,更新原始數(shù)據(jù)庫)以便并入添加的邊‘ch’。應(yīng)注意的是,樹的深度可以改變并且可以在頂點(diǎn)或者修補(bǔ)迭代之間不同。當(dāng)更簡單的關(guān)系足以滿足單一性,并且可以根據(jù)需要為單一性選擇樹的深度時(shí),較小深度的樹可以用于比較。
在可替代的實(shí)施例中,頂點(diǎn)c的最小生成樹可以以表或者嵌套列表的格式表示,并且包括如下邏輯圖案匹配的頂點(diǎn)的度數(shù)頂點(diǎn)c的邏輯圖案E(度數(shù)3)G(度數(shù)3)F(度數(shù)4)H(度數(shù)6)I(度數(shù)3)K(度數(shù)4)
L(度數(shù)1)D(度數(shù)2)B(度數(shù)3)J(度數(shù)3)應(yīng)注意的是,在優(yōu)選的實(shí)施例中,圖案中不包括節(jié)點(diǎn)的標(biāo)識(shí)符、即上面的標(biāo)識(shí)符E、F、G等等(上面包括它們是為了說明的目的)。這種樹可以從頂點(diǎn)開始、從跳躍1到跳躍n以快速并且容易的邏輯操作處理進(jìn)行比較,直到達(dá)到所要求的可靠程度。
在一個(gè)實(shí)施例中,樹形圖案可以包含通配符(wildcard),用于匹配任意頂點(diǎn)的度數(shù)或者一范圍內(nèi)的度數(shù)。例如,通配符可以匹配任何雙向、三向或者四向的交叉點(diǎn)。作為選擇,最佳匹配比較算法可用于匹配樹形圖案與數(shù)據(jù)庫中最接近匹配的圖案。例如,可以將最接近匹配的圖案定義為具有最小數(shù)目的不同頂點(diǎn)度數(shù)或者具有頂點(diǎn)度數(shù)之間的最小差值?!白罱咏摹焙芏嗫商娲亩x都是可能的。這種最佳匹配或者最接近匹配方法允許靈活地匹配道路結(jié)構(gòu),這些道路結(jié)構(gòu)在數(shù)據(jù)庫版本之間可以是不同的。
雖然可以實(shí)現(xiàn)唯一的最小生成樹,但是這種樹的生成不是必需的。一全部生成樹(AST)結(jié)構(gòu)是另一個(gè)可行的替代方式的示例。全部生成樹結(jié)構(gòu)是具有冗余頂點(diǎn)的樹,以使得對于任何給定邊來說包括全部葉子或者不包括葉子。圖4舉例說明了示例性的全部生成樹結(jié)構(gòu)12。應(yīng)該理解的是全部生成樹在大小上比最小生成樹生長的快,而且非常容易生成。另外,每個(gè)頂點(diǎn)需要的存儲(chǔ)量保持與最小生成樹相同,以便總體存儲(chǔ)量保持非常小。每個(gè)樹節(jié)點(diǎn)可以僅由葉節(jié)點(diǎn)的數(shù)目(度數(shù))的列表來表示。頂點(diǎn)c的深度為3的全部生成樹結(jié)構(gòu)(圖4中所示)的緊湊表示的示例是整數(shù)序列4(3(3,4,3),4(4,6,3,3),2(4,3),6(3,4,4,3,4,2)),或者簡單地表示為4,3,3,4,3,4,4,6,3,3,2,4,3,6,3,4,4,3,4,2。應(yīng)注意的是,此緊湊形式僅僅利用葉子度數(shù)來定義樹。第一個(gè)數(shù)字是根節(jié)點(diǎn)c的度數(shù)。第二個(gè)數(shù)字(3)是c的第一個(gè)葉子e的度數(shù),繼之以e的3個(gè)葉子的每個(gè)的度數(shù)(3,4,3)。下一組是c的第二個(gè)葉子f的度數(shù),繼之以f的4個(gè)葉子的每個(gè)的度數(shù)等等。在優(yōu)選的實(shí)施例中,葉子的順序不重要。
對于實(shí)際實(shí)現(xiàn),通過利用節(jié)點(diǎn)大致位置附近的誤差半徑、預(yù)先縮窄潛在匹配的列表是合理的。例如,如果對添加鏈路‘xy’(即,‘ch’)的請求伴隨有對x和y的邏輯表示以及x和y的大致位置,那么x和y的候選匹配可以縮窄到處于圍繞所提供的位置的大致區(qū)域內(nèi)的現(xiàn)存頂點(diǎn)。所述范圍可以預(yù)先確定,或者實(shí)現(xiàn)過程可以選擇最接近的N個(gè)頂點(diǎn)到修補(bǔ)請求中提供的大致位置。一旦識(shí)別出多個(gè)候選現(xiàn)存頂點(diǎn),那么生成邏輯圖案(例如,樹)并且將其與修補(bǔ)請求中提供的邏輯圖案進(jìn)行邏輯比較。
如上所述,樹形結(jié)構(gòu)對于邏輯圖案匹配來說是十分有效的。樹的固有結(jié)構(gòu)描述了根頂點(diǎn)周圍的道路網(wǎng)絡(luò)圖形。樹形結(jié)構(gòu)固有地包括樹中每個(gè)頂點(diǎn)的度數(shù),并且可以由此唯一地識(shí)別匹配樹的根頂點(diǎn)的頂點(diǎn)(并且其次,識(shí)別樹中其他節(jié)點(diǎn))。高度對稱的道路網(wǎng)絡(luò)可能顯現(xiàn)出圖案匹配的難題,并且需要更深的樹來唯一地匹配頂點(diǎn)。當(dāng)樹不唯一地識(shí)別頂點(diǎn)時(shí)(即,兩個(gè)或更多頂點(diǎn)與圖案相匹配),結(jié)果可能形成錯(cuò)誤的頂點(diǎn)匹配。一般指定一樹以匹配所要求的頂點(diǎn),但是如果不考慮錯(cuò)誤匹配,就可以巧合地匹配一個(gè)或多個(gè)添加的頂點(diǎn)。如果樹的生成不考慮錯(cuò)誤匹配,那么可以使用諸如統(tǒng)計(jì)分析的對策。
測量錯(cuò)誤匹配機(jī)會(huì)的一種方式是從地圖數(shù)據(jù)庫收集對樹形圖案的統(tǒng)計(jì)量。有多少樹就存在多少頂點(diǎn)以便計(jì)算,不過樹的深度確定存在多少圖案組合。對很深或者對許多深度變化的收集統(tǒng)計(jì)量可能是費(fèi)時(shí)的,并且如果地圖因基本上影響圖形網(wǎng)絡(luò)連接性的一個(gè)頂點(diǎn)而改變,那么收集統(tǒng)計(jì)量是有限值。作為選擇,期待的圖案概率可以根據(jù)頂點(diǎn)度數(shù)統(tǒng)計(jì)量來計(jì)算。
考慮到道路網(wǎng)絡(luò)的概率瀏覽,其中每個(gè)頂點(diǎn)具有含有確定出口度數(shù)(即,可以跟蹤剩余當(dāng)前頂點(diǎn)的邊,包括U形轉(zhuǎn)彎或者環(huán)線)的關(guān)聯(lián)概率。出口度數(shù)d的概率分布(表示為P(d))可以根據(jù)位置變化。鬧市區(qū)可以具有大部分的單行道,并且對于處于每個(gè)交叉點(diǎn)的汽車司機(jī)來說具有少數(shù)出口邊選擇。鬧市區(qū)的概率密度函數(shù)(pdf)可能因此比對應(yīng)于農(nóng)村或者市區(qū)的概率密度函數(shù)具有朝向更低d值的更大權(quán)重。
一個(gè)節(jié)點(diǎn)具有與另一個(gè)節(jié)點(diǎn)相同出口度數(shù)的概率(表示為p0)可以記錄為它們均具有相同度數(shù)的概率和p0=Σd=0∞P(d)2---(1)]]>p0的值是深度為0的樹將匹配一頂點(diǎn)的概率,并且僅僅依賴于概率分布P0深度1的樹具有匹配頂點(diǎn)的概率p1,其可以通過考慮依據(jù)其度數(shù)的匹配概率來確定。讓p1(d)作為概率,對于具有度數(shù)d的根頂點(diǎn)來說深度1的樹被匹配。為了相關(guān)葉子,不失一般性地認(rèn)為葉子按照它們的度數(shù)來排序,并且由此如果存在一匹配,那么全部匹配相應(yīng)的葉子。因此,d個(gè)葉子必須已經(jīng)匹配深度0的樹;p1(d)=P(d)p0d(2)由于深度1的樹具有度數(shù)d的機(jī)會(huì)是P(d),所以總體慨率p1可以表示為p1=Σd=0∞P(d)2[p0d]---(3)]]>并且深度n的樹具有如下匹配一頂點(diǎn)的概率pnpn=Σd=0∞P(d)2[pn-1d]---(4)]]>
兩個(gè)摘要樹匹配的概率是在度數(shù)方面根匹配并且每個(gè)葉子也匹配的概率。此遞歸表示便于計(jì)算增加從n-1到n的樹的深度的益處。
雖然不同的地圖以及地圖的不同區(qū)段可能具有很大變化的度數(shù)統(tǒng)計(jì)量,但是可以為特定地圖收集頂點(diǎn)度數(shù)統(tǒng)計(jì)量P(d)。表1列出了P(d)(d=1到4)的5個(gè)示例性方案。在這些方案中,P(0)和P(d>4)是零。
表1交叉點(diǎn)出口度數(shù)方案
方案1是大致表示一條城市商業(yè)區(qū)的街道網(wǎng)絡(luò)構(gòu)造,其中單行道和轉(zhuǎn)彎限制是通用的。因此,雙向出口度數(shù)被強(qiáng)烈地加重了。方案2表示農(nóng)村構(gòu)造,其中3和4向(允許U形轉(zhuǎn)彎)交叉點(diǎn)是通用的。由于僅有兩個(gè)pdf值是非零的,因此方案3至5被簡化了,并且便于表現(xiàn)pdf權(quán)重范圍內(nèi)的總體錯(cuò)誤匹配概率分析。由于方案3和4具有相同的概率集,即便它們與不同的度數(shù)相關(guān)聯(lián),兩個(gè)方案具有相同的錯(cuò)誤匹配概率??偟膩碚f,在計(jì)算匹配機(jī)會(huì)的過程中只有pdf中的概率是重要的。
圖5是對于方案3到方案5的方案范圍內(nèi)、一機(jī)會(huì)匹配的概率對照樹的深度的圖表,并且還包括方案1和2以便對比。根據(jù)此圖可以清楚的得知,更加平衡的P(d)pdf導(dǎo)致最佳(更低的)錯(cuò)誤匹配概率。在接近十億頂點(diǎn)中的錯(cuò)誤匹配概率(在百萬頂點(diǎn)中小于1)可以被預(yù)期為深度為4并且50∶50pdf(對于圖5中的方案3,4,A來說)。此外還要注意,諸如方案1和2說明的pdf的展開導(dǎo)致更好的(更低的)錯(cuò)誤匹配概率。
圖5還示出了多少失衡的pdf(一個(gè)值中較高加權(quán)的)對機(jī)會(huì)匹配概率產(chǎn)生很大的影響。如果可見的話,可以清楚的看出,由于所有相鄰的曲線在pdf值方面具有相同的差值1%(即,最右側(cè)的曲線是
,而其次最右側(cè)的曲線是
),因此右側(cè)上的曲線中的寬間隙與左側(cè)上的曲線中的緊密間隙形成對照。
甚至在很高的對稱性情況中,其中與最通用的頂點(diǎn)類型(如方案5所說明的那樣)相比,僅僅1%的頂點(diǎn)是不同的(就度數(shù)而言),如果使用相對簡單的樹,那么預(yù)期有極低的匹配概率。例如,樹的深度為9,在一機(jī)會(huì)(意外的)匹配的百萬概率中近似1。此外,如果最通用的度數(shù)是d,那么最大樹的大小預(yù)計(jì)大約為N=Σi=0Ddi---(5)]]>其中對于其中最大頂點(diǎn)度數(shù)是d的地圖來說,D是樹的深度,而N是一樹中可能節(jié)點(diǎn)的最大數(shù)目。作為選擇,將N定義為其中最大通用頂點(diǎn)度數(shù)最多為d的地圖中的可能節(jié)點(diǎn)的估計(jì)數(shù)目。
例如,利用深度為4的樹,產(chǎn)生大約120個(gè)頂點(diǎn)的最大樹的大小,這將需要30字節(jié)來唯一地表示(由于樹可以由頂點(diǎn)度數(shù)的簡單平面列表表示法來唯一地表示,所以對于0到3的度數(shù)值來說,這將需要N個(gè)頂點(diǎn)度數(shù)值,每個(gè)均具有2字節(jié))。根據(jù)圖4可以清楚的看出,對于所有但除了最對稱的方案來說,深度為4的樹給出極低的機(jī)會(huì)匹配期望。甚至對于
方案來說,機(jī)會(huì)匹配概率大約為千分之一。然而,全部除了最對稱的情況下通常預(yù)期是大約千萬分之一甚至更低。
在全部除了最對稱的情況下,如上所指出的,深度為3到5的樹通常將足以獲得小于百萬分之一或者千萬分之一的機(jī)會(huì)匹配。通過此分析還可以清楚的看出,具有大于一定量的深度的樹提供遞減的增益。這推動(dòng)了擴(kuò)空具有頂點(diǎn)或者邊屬性的樹形圖案。
將多種的屬性用于不同的應(yīng)用程序,諸如路由計(jì)算、引導(dǎo)、地圖匹配以及地球編碼或者反向地球編碼。對于圖案匹配目的來說,這些屬性可能具有不同程度的唯一性或者實(shí)用性。表2是根據(jù)KIWI可導(dǎo)航地圖數(shù)據(jù)庫格式的頂點(diǎn)和邊屬性的表示列表。
表2圖案匹配的屬性的相對值
具有較大數(shù)值范圍和高度變化或者具有高比例唯一的屬性被高度評價(jià),同時(shí)冗余(固有)、低適用性、稀少或者非常不唯一的屬性則較少被高度評價(jià)。需要顯著存儲(chǔ)量以表示的屬性具有小于緊湊值的價(jià)值。由于n位值具有2n個(gè)組合,所以雖然此權(quán)衡只以很小存儲(chǔ)大小相關(guān),但是唯一性和存儲(chǔ)大小之間存在權(quán)衡。
在更新過程中除為節(jié)點(diǎn)發(fā)送一樹之外,屬性信息可以參與圖案匹配運(yùn)算。顯而易見,一些屬性信息是更新的必要部分,諸如新的頂點(diǎn)和邊的屬性。然而,即將與當(dāng)前數(shù)據(jù)庫中的現(xiàn)存頂點(diǎn)的屬性匹配的現(xiàn)存頂點(diǎn)的屬性還可以被傳送。此后將不進(jìn)行修補(bǔ)的這些頂點(diǎn)或者邊稱為無關(guān)的頂點(diǎn)或者無關(guān)的邊。
總的來說,除屬性類型的值外,應(yīng)該考慮屬性信息大小。例如,道路或者交叉點(diǎn)名稱可以有高度價(jià)值,但是需要比車道的數(shù)目更多的存儲(chǔ)量或者傳輸帶寬。另外,諸如文本串或者名稱的一些屬性具有相當(dāng)大的存儲(chǔ)需求。這些大小根據(jù)諸如提高樹的深度的可替代的存儲(chǔ)量影響而可能或者也許不相關(guān)。如果提高樹的深度可以利用少于添加屬性的存儲(chǔ)量來降低錯(cuò)誤匹配的機(jī)會(huì),那么它是優(yōu)選的。
包括無關(guān)的頂點(diǎn)或者邊的屬性,即,不同于被修補(bǔ)的屬性,還表現(xiàn)出這樣的問題,即應(yīng)該包括多少頂點(diǎn)屬性??梢钥紤]存儲(chǔ)和修補(bǔ)格式靈活性兩者。足夠靈活以至于支持各種類型屬性和不同數(shù)量屬性的修補(bǔ)格式,可能需要顯著的開銷來僅僅顯示包括在修補(bǔ)的信息的描述,其中所述屬性諸如是在樹中不同深度的頂點(diǎn)的屬性。這往往還意味著在修補(bǔ)應(yīng)用程序和修補(bǔ)生成軟件上增加了復(fù)雜性。在一個(gè)實(shí)施例中,所有的除最小字段大小的無關(guān)屬性被避免,以有利于更深的樹。
修補(bǔ)的最佳內(nèi)容、即圖案和屬性可以被統(tǒng)計(jì)地確定或者確定性的確定。統(tǒng)計(jì)方法包括確定用于地圖或地圖區(qū)域的統(tǒng)計(jì)量,或者根據(jù)被修補(bǔ)的區(qū)域(需要可變的修補(bǔ)格式)來確定動(dòng)態(tài)統(tǒng)計(jì)量??梢韵胂蟮氖?,兩個(gè)方法都可以用于配置修補(bǔ)格式和/或內(nèi)容。確定性方法將對一特定修補(bǔ)操作確定適當(dāng)?shù)男扪a(bǔ)內(nèi)容。
統(tǒng)計(jì)方法需要建立所要求的或者作為目標(biāo)的錯(cuò)誤匹配概率。然后利用目標(biāo)值和收集的統(tǒng)計(jì)量、將概率方法應(yīng)用于修補(bǔ)生成或者修補(bǔ)格式說明?;镜母怕侍幚矸赡苁褂媒y(tǒng)計(jì)確定的pdf P(d)作為一個(gè)基礎(chǔ)來確定樹的深度n,如此使得pn小于或等于所要求的錯(cuò)誤匹配概率。此方法暗含一確定的期待的錯(cuò)誤匹配概率pr。圖6是示出了如何確定被需要以實(shí)現(xiàn)所要求的pr的樹的深度的流程圖80(81到88)?;镜母怕侍幚矸ㄒ部梢酝ㄟ^收集對屬性唯一性的統(tǒng)計(jì)量來擴(kuò)展以并入屬性。例如,統(tǒng)計(jì)量收集可能包括確定道路具有L車道或者具有名稱“主街道”的概率。由于在同一道路區(qū)段可能有多個(gè)頂點(diǎn)乃至可能有表示一交叉點(diǎn)的多個(gè)頂點(diǎn),所以即使沒有樹形圖案的唯一道路名稱可能具有相當(dāng)大的非零的失配機(jī)會(huì)。一旦收集了統(tǒng)計(jì)量,就可以按照類似圖6所示的方式使用它們以及P(d) pdf來計(jì)算所需要的樹的深度和屬性內(nèi)容。
可替代的方法是使用自適應(yīng)法來選擇更新參數(shù)。諸如選擇樹的深度和是否包括確定的屬性的更新參數(shù)確定在生成更新的時(shí)候發(fā)生,并且例如可能取決于被更新的具體頂點(diǎn)或者邊的唯一性。
在一個(gè)實(shí)施例中,定義了修補(bǔ)的暫時(shí)(temporary)適用性,以便即使個(gè)別修補(bǔ)指令的內(nèi)容足以在任何具體的時(shí)間點(diǎn)應(yīng)用,也定義具體時(shí)間來確保自主性并且保證如計(jì)劃的那樣發(fā)生圖案匹配。從某種意義上講,修補(bǔ)可以改變它試圖匹配的圖案。
圖7描述了(a)現(xiàn)存可導(dǎo)航地圖數(shù)據(jù)庫,(b)待修補(bǔ)的新高速公路以及坡道,以及(c)修補(bǔ)的可導(dǎo)航地圖數(shù)據(jù)庫。依照修補(bǔ)有序規(guī)則集,從與現(xiàn)存數(shù)據(jù)庫的頂點(diǎn)相連的鏈路開始,將鏈路按順序加入。由此,在高速公路區(qū)段以前添加坡道。例如,添加邊‘d’,繼之以邊‘e’,然后添加邊‘f’等等。此外,依據(jù)規(guī)則,由于頂點(diǎn)7不存在,首先將邊‘a(chǎn)’以經(jīng)由中間的新頂點(diǎn)7連接頂點(diǎn)1到3的兩個(gè)新邊代替。
圖8描述了修補(bǔ)更新的多步部分,以實(shí)現(xiàn)沿現(xiàn)存邊‘a(chǎn)’在中點(diǎn)添加圖6的高速公路駛?cè)肫碌肋叀甦’的累計(jì)效果。此4步驟過程包括刪除原始邊,添加兩個(gè)邊,這兩條邊組合以替換刪除了的邊,并且添加表示坡道的新邊。應(yīng)注意的是,依照第二修補(bǔ)有序規(guī)則,由于諸如z的2a類頂點(diǎn)通過邊替換步驟被添加作為2b類頂點(diǎn)、以避免混亂以及使涉及2a類匹配的圖案匹配復(fù)雜化,所以不直接添加坡道。
因?yàn)槭棺R(shí)別出的x1作為頂點(diǎn)1,邊a(i)將被刪除并且頂點(diǎn)1將不再與頂點(diǎn)3相連,所以x1和x2的圖案圖形(樹)是不同的。換言之,步驟1將改變現(xiàn)存數(shù)據(jù)庫,以便節(jié)點(diǎn)1(頂點(diǎn)1)將具有不同的度數(shù)和樹。如果新的圖案匹配需要匹配x2和頂點(diǎn)1,那么x2將需要有效的樹,其匹配頂點(diǎn)1的最后的樹(即,x2的樹不會(huì)包括到頂點(diǎn)3的邊)。幸好這不是本發(fā)明所必需的。
對于x2來說不需要第二個(gè)不同樹的理由在于修補(bǔ)應(yīng)用程序早已將x1與頂點(diǎn)1匹配。因此,更新步驟2只需要指定x2僅是x1??梢允褂脴?biāo)識(shí)符或者指針/偏移量來實(shí)現(xiàn)這種規(guī)范。修補(bǔ)應(yīng)用程序也尋找與x1相配的節(jié)點(diǎn),并且聲明x2與相同的節(jié)點(diǎn)匹配。因此,在優(yōu)選實(shí)施例中,給任何特定的頂點(diǎn)不需發(fā)送一個(gè)以上樹,即便頂點(diǎn)的樹改變一次或多次。
由此,圖8的更新可能具有下面表中所示的內(nèi)容。還要注意的是,沒有立即相關(guān)的步驟的頂點(diǎn)等價(jià)物的聲明也是有效的。例如,離開了頂點(diǎn)3的一新的道路的添加可以是同一更新的部分,并且不會(huì)包括與頂點(diǎn)3匹配的頂點(diǎn)的樹,而是包括與y1相同的源節(jié)點(diǎn)的聲明。
表多級部分內(nèi)容的示例
在上述表中的更新步驟被標(biāo)記為i至l,以表明這些可以是修補(bǔ)指令的更大列表的一部分,并且無須封裝在一起。實(shí)際上,如果聲明反映一順序,那么雖然指定的順序很重要,但是它們甚至無須在一起或者是連續(xù)的組合。修補(bǔ)的指令部分可以由這種指令以及它們的關(guān)聯(lián)參數(shù)或者指向它們關(guān)聯(lián)參數(shù)的指針的一有序表來表示。例如,可以將這些樹存儲(chǔ)在修補(bǔ)的一獨(dú)立的區(qū)段中。
利用這些聲明進(jìn)行公式化更新不是主要通過壓縮或者帶寬要求來推動(dòng)(雖然它導(dǎo)致高的緊湊(compact)更新),而是避免暫時(shí)和因果性復(fù)雜化。更新步驟可以修改圖形的屬性或者結(jié)構(gòu),如此使得相同的圖案不再匹配。另外,隨后試圖匹配附近頂點(diǎn)也因結(jié)構(gòu)變化而失敗。
在修補(bǔ)應(yīng)用程序處理中,圖形更新步驟的瞬態(tài)順序?qū)е绿幚砥陂g總體圖形結(jié)構(gòu)和本地(local)圖形圖案方面的特定和潛在地不同動(dòng)態(tài)。此問題的認(rèn)識(shí)是對地圖數(shù)據(jù)庫更新內(nèi)容(即,修補(bǔ)生成)以及對修補(bǔ)應(yīng)用程序的標(biāo)識(shí)符優(yōu)先規(guī)則的聲明規(guī)則的基礎(chǔ)。暫時(shí)順序意味著諸如MST之類的圖形圖案只有在特定時(shí)間是有效的。
定義聲明規(guī)則,以便需要頂點(diǎn)x的匹配的任何圖形更新步驟在先前的更新過程中聲明該頂點(diǎn)x對相應(yīng)頂點(diǎn)Y的等價(jià)(而不是包括頂點(diǎn)x的圖形圖案),其中預(yù)先需要在先前步驟中被匹配的對應(yīng)于同一節(jié)點(diǎn)(頂點(diǎn))頂點(diǎn)Y。然而,即便在先前步驟中沒有修改一頂點(diǎn),那么在附近的一頂點(diǎn)也可能基本上被修改以改變該局部圖形圖案。這里,‘本地’指的是涉及未修改的頂點(diǎn)的圖形圖案,而‘附近’指的是諸如由MST的深度定義的本地圖形圖案的外延。如果可能包含在修補(bǔ)更新中的頂點(diǎn)的匹配圖案不與未修改的和修改的本地圖形圖案相匹配,那么基本上修改本地圖形圖案。實(shí)質(zhì)上,圖案具有適用性(或者有效性)的特定時(shí)間。在一個(gè)實(shí)施例中,適用性的時(shí)間被定義在應(yīng)用修補(bǔ)之前,并且這形成了識(shí)別優(yōu)先規(guī)則的基礎(chǔ)。
識(shí)別優(yōu)先規(guī)則規(guī)定匹配一頂點(diǎn)的圖案時(shí)間是(i)對于1類頂點(diǎn)來說,在應(yīng)用修補(bǔ)的任何步驟以前;以及(ii)對于2類頂點(diǎn)來說,不需要圖案匹配,而是依照聲明規(guī)則將對同一頂點(diǎn)的全部隨后的參考聲明作為等價(jià)物。作為識(shí)別優(yōu)先規(guī)則的結(jié)果,每個(gè)頂點(diǎn)的圖形圖案信息只需要為每個(gè)修補(bǔ)傳送一次,并且在被稱作修補(bǔ)應(yīng)用程序的識(shí)別或圖案匹配階段產(chǎn)生任何變化以前,所有1類頂點(diǎn)(只需要匹配的頂點(diǎn))可以被匹配。
如果不止一次修補(bǔ)數(shù)據(jù)庫,那么修補(bǔ)管理可以想象變?yōu)楹軓?fù)雜。在一個(gè)實(shí)施例中,修補(bǔ)之間的兼容性可以通過始終只利用的原始數(shù)據(jù)庫用于圖案匹配并且通過維護(hù)新頂點(diǎn)的識(shí)別來維護(hù)。在另一個(gè)實(shí)施例中,在應(yīng)用下一個(gè)修補(bǔ)以前,利用擴(kuò)充的數(shù)據(jù)庫通過圖案匹配來應(yīng)用隨后的修補(bǔ)。
圖9說明了導(dǎo)航地圖數(shù)據(jù)庫更新的示例性內(nèi)容。更新90由三組信息組成(i)用于匹配的邏輯圖案92,(ii)添加或刪除包括等價(jià)物的實(shí)際或者暗含聲明的鏈路的指令94,以及(iii)將存儲(chǔ)在修改的或者修補(bǔ)的數(shù)據(jù)庫中的新的或替換(更新)數(shù)據(jù)96。每個(gè)指令可以包含圖案的索引或者標(biāo)識(shí)符97,以用于起始和末尾節(jié)點(diǎn)的匹配,還包括指令類型(添加或刪除)98以及如果適合的話、指向新的或者替換數(shù)據(jù)的指針或者索引99。分步驟地描述導(dǎo)航數(shù)據(jù)庫的改變。每個(gè)步驟(指令)描述了對兩個(gè)交叉點(diǎn)(節(jié)點(diǎn))之間的鏈路(道路區(qū)段)單式(unitary)的添加或刪除操作。這些改變與識(shí)別受影響道路和/或交叉點(diǎn)所需的邏輯圖案相關(guān)聯(lián)。這些邏輯圖案例如包括樹形圖案,并且也許或者不與一個(gè)或多個(gè)高實(shí)用程序?qū)傩詧D案相符合以助于識(shí)別。易于理解的是,可以采用符合上面規(guī)定的原理和修補(bǔ)規(guī)則的其他程序和格式。
圖10描述了用于依照上述原理和修補(bǔ)規(guī)則對導(dǎo)航數(shù)據(jù)庫進(jìn)行更新的示例性過程100(102到119)。圖10描述了在修補(bǔ)中通過每條指令進(jìn)行循環(huán)的一環(huán)路。在一個(gè)實(shí)施例中,已經(jīng)預(yù)先依照如上所述的暫時(shí)規(guī)則和原理匹配了全部的圖案。在另一個(gè)實(shí)施例中,必要時(shí),如在步驟104描述的那樣,為指令的每個(gè)起始和末尾節(jié)點(diǎn)執(zhí)行圖案匹配。然而,在優(yōu)選實(shí)施例中,圖案匹配將所接收的邏輯圖案在特定時(shí)間點(diǎn)與數(shù)據(jù)庫進(jìn)行比較,諸如在已經(jīng)應(yīng)用來自于該修補(bǔ)的任何指令以前。在識(shí)別并且分類了起始和末尾節(jié)點(diǎn)之后,確定修補(bǔ)操作(由于執(zhí)行可以延遲直到完成全部圖案匹配,所以不一定執(zhí)行)。通過插入操作處理2a類節(jié)點(diǎn)以將它們改變?yōu)?類節(jié)點(diǎn),如步驟110所示。應(yīng)注意的是,當(dāng)添加時(shí),即,實(shí)際執(zhí)行修補(bǔ)操作時(shí),任何2類(a或b)節(jié)點(diǎn)變成1類節(jié)點(diǎn)。依照修補(bǔ)有序規(guī)則,延遲單獨(dú)鏈路的添加(即,具有起始和末尾節(jié)點(diǎn)的那些都是2b類),直到至少一個(gè)不再是2b類節(jié)點(diǎn)為止,如步驟118所示。易于理解的是,可以采用符合上面規(guī)定的原理和修補(bǔ)規(guī)則的其他程序。
圖11描述了用于圖案匹配和分類的示例性程序120(122到132)。圖案匹配運(yùn)算首先從現(xiàn)存數(shù)據(jù)庫頂點(diǎn)開始收集,這些頂點(diǎn)總的來說鄰近待重建的頂點(diǎn),如步驟122所示。例如,這可以包括對在為待重建頂點(diǎn)給出的一近似位置的物理范圍之內(nèi)的頂點(diǎn)進(jìn)行搜索。所述程序可以通過對到近似位置的接近性來隨意性地分類這些頂點(diǎn)。然后,為每個(gè)候選頂點(diǎn),在步驟124,根據(jù)現(xiàn)存數(shù)據(jù)庫構(gòu)建一邏輯圖案,并且在步驟126將其與在更新過程中提供的圖案進(jìn)行比較。如果存在匹配,那么將頂點(diǎn)分類為1類頂點(diǎn)。否則,如果在范圍內(nèi)沒有匹配的頂點(diǎn),那么在步驟132將該節(jié)點(diǎn)確定為2類頂點(diǎn)。匹配的可能實(shí)施例包括第一“準(zhǔn)確”匹配樹或者最佳匹配樹。如上所述,各種可替代方式都是可能的。另外,可通過構(gòu)建圖案將2類頂點(diǎn)進(jìn)一步地分類為2a類或者2b類,好象在附近范圍內(nèi)的每條鏈路上的起始和結(jié)束點(diǎn)之間存在頂點(diǎn)。如果與這種“虛擬”頂點(diǎn)發(fā)生匹配,那么將該更新頂點(diǎn)分類為2a類。易于理解的是,可以采用符合上面規(guī)定的原理和修補(bǔ)規(guī)則的其他程序和格式。
本發(fā)明的圖案匹配和分類方法還可以用于檢測數(shù)據(jù)庫版本發(fā)布并且更新版本適用性。顯然,無序指令(按照修補(bǔ)有序規(guī)則)可以表明導(dǎo)航系統(tǒng)已經(jīng)錯(cuò)過了在前更新。刪除早已不存在的鏈路或者添加早已現(xiàn)存鏈路的指令可以表示數(shù)據(jù)庫版本早已包括更新內(nèi)容。此外,本發(fā)明的方法可以應(yīng)用于多種形式的導(dǎo)航地圖數(shù)據(jù)庫存儲(chǔ)。導(dǎo)航地圖數(shù)據(jù)庫可以包括為特定應(yīng)用程序加工的道路網(wǎng)絡(luò)的多種表示法,諸如KIWI數(shù)據(jù)庫的分配(引導(dǎo))和區(qū)域(路由計(jì)算)段。在該情況下,可替代的表示法可被使用以確認(rèn)節(jié)點(diǎn)(或者鏈路)的圖案匹配(識(shí)別)和分類,或者作為用于生成圖案的備用或者后退(fall back)源。
在可替代的實(shí)施例中,隨機(jī)存取存儲(chǔ)器可用來存儲(chǔ)導(dǎo)航地圖數(shù)據(jù)庫或者導(dǎo)航地圖數(shù)據(jù)庫的區(qū)段,并且更新可以直接應(yīng)用于數(shù)據(jù)庫而不是維護(hù)獨(dú)立的修補(bǔ)存儲(chǔ)器。
實(shí)質(zhì)上本發(fā)明的說明書僅僅是示例性的,不脫離本發(fā)明的要旨的變化都包含在本發(fā)明的范圍內(nèi)。這種變化不認(rèn)為是偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種用于識(shí)別一導(dǎo)航數(shù)據(jù)庫中的道路區(qū)段的方法(100),包括接收識(shí)別至少一個(gè)道路交叉點(diǎn)的一數(shù)據(jù)庫更新(103);構(gòu)造圍繞該至少一個(gè)道路交叉點(diǎn)的道路拓?fù)涞倪壿嫳硎?10)(104,106,124);并且通過將所述邏輯表示與導(dǎo)航數(shù)據(jù)庫的一邏輯表示相比較來識(shí)別導(dǎo)航數(shù)據(jù)庫中的至少一個(gè)道路交叉點(diǎn)(104,106,126,127)。
2.如權(quán)利要求1所述的方法,其中構(gòu)造邏輯表示的步驟還包括構(gòu)建表示該至少一個(gè)道路交叉點(diǎn)附近的道路拓?fù)涞膱D形(10)(124),其中該圖形的節(jié)點(diǎn)表示道路交叉點(diǎn)而該圖形的鏈路表示道路區(qū)段。
3.如權(quán)利要求1所述的方法,其中數(shù)據(jù)庫更新還包括與該至少一個(gè)道路交叉點(diǎn)相關(guān)聯(lián)的一屬性,并且利用所述屬性來識(shí)別導(dǎo)航數(shù)據(jù)庫中的該至少一個(gè)道路交叉點(diǎn)。
4.如權(quán)利要求1所述的方法,其中數(shù)據(jù)庫更新還包括識(shí)別具有一屬性的至少一個(gè)道路區(qū)段,并且利用該至少一個(gè)道路區(qū)段的屬性來識(shí)別導(dǎo)航數(shù)據(jù)庫中的至少一個(gè)道路交叉點(diǎn)。
5.如權(quán)利要求1所述的方法,其中構(gòu)造邏輯表示的步驟還包括構(gòu)建一樹形圖(10)以表示圍繞該至少一個(gè)道路交叉點(diǎn)的道路拓?fù)?124),其中樹形圖的節(jié)點(diǎn)表示道路交叉點(diǎn)而樹形圖的鏈路表示道路區(qū)段。
6.如權(quán)利要求5所述的方法,其中該至少一個(gè)道路交叉點(diǎn)用作為樹形圖的根節(jié)點(diǎn)。
7.如權(quán)利要求5所述的方法,其中識(shí)別至少一個(gè)道路交叉點(diǎn)的步驟還包括利用最小生成樹(11)進(jìn)行匹配操作。
8.如權(quán)利要求5所述的方法,其中識(shí)別該至少一個(gè)道路交叉點(diǎn)的步驟還包括利用全部生成樹(12)進(jìn)行匹配操作。
9.如權(quán)利要求5所述的方法,還包括在將所述邏輯表示與導(dǎo)航數(shù)據(jù)庫的一邏輯表示進(jìn)行比較之前,根據(jù)到該至少一個(gè)道路交叉點(diǎn)的鄰近位置來選擇導(dǎo)航數(shù)據(jù)庫中的候選道路交叉點(diǎn)(122)。
10.如權(quán)利要求5所述的方法,其中樹形圖的深度是基于在由樹形圖表示的一個(gè)或多個(gè)道路交叉點(diǎn)會(huì)合的道路區(qū)段數(shù)目的概率(80)。
11.如權(quán)利要求5所述的方法,其中將樹形圖的深度確定為樹形圖唯一地識(shí)別該至少一個(gè)道路交叉點(diǎn)所需的最小深度(80)。
12.如權(quán)利要求1所述的方法,還包括將數(shù)據(jù)庫更新應(yīng)用于導(dǎo)航數(shù)據(jù)庫中識(shí)別出的道路交叉點(diǎn)(110,114,115,117)。
13.如權(quán)利要求1所述的方法,還包括公式化指示相對于導(dǎo)航數(shù)據(jù)庫的數(shù)據(jù)庫更新的修補(bǔ)(100)。
14.一種對導(dǎo)航數(shù)據(jù)庫進(jìn)行更新的方法(100),包括接收指定兩個(gè)節(jié)點(diǎn)和一鏈路的更新指令,其中所述節(jié)點(diǎn)表示道路交叉點(diǎn)而所述鏈路表示與兩個(gè)節(jié)點(diǎn)互聯(lián)的一道路區(qū)段(103);利用邏輯圖案匹配操作來識(shí)別導(dǎo)航數(shù)據(jù)庫中對應(yīng)于至少一個(gè)指定節(jié)點(diǎn)的一現(xiàn)存節(jié)點(diǎn)(104,106,124,126);基于其與導(dǎo)航數(shù)據(jù)庫中至少一個(gè)現(xiàn)存節(jié)點(diǎn)或者現(xiàn)存鏈路的關(guān)系來對每個(gè)指定節(jié)點(diǎn)分類(105,107,128,132);并且依照一有序的操作規(guī)則集來應(yīng)用該更新指令(108到118)。
15.如權(quán)利要求14所述的方法,其中識(shí)別一現(xiàn)存節(jié)點(diǎn)的步驟還包括構(gòu)造在至少一個(gè)指定節(jié)點(diǎn)附近的道路拓?fù)涞倪壿嫳硎?10)(124);并且將所述邏輯表示與導(dǎo)航數(shù)據(jù)庫的一邏輯表示進(jìn)行比較(126,127)。
16.如權(quán)利要求14所述的方法,其中比較該邏輯表示的步驟還包括執(zhí)行最小生成樹匹配操作(11),其中將該邏輯表示定義為一樹形圖,并且該至少一個(gè)指定節(jié)點(diǎn)用作為該樹形圖的一根節(jié)點(diǎn)。
17.如權(quán)利要求14所述的方法,其中比較該邏輯表示的步驟還包括執(zhí)行一全部生成樹匹配操作(12),其中將該邏輯表示定義為一樹形圖,并且該至少一個(gè)指定節(jié)點(diǎn)用作為樹形圖的一根節(jié)點(diǎn)。
18.如權(quán)利要求14所述的方法,其中分類每一個(gè)指定節(jié)點(diǎn)的步驟還包括將一指定的節(jié)點(diǎn)分類為包括以下節(jié)點(diǎn)中的一個(gè)(105,107),該節(jié)點(diǎn)組包括有對應(yīng)于導(dǎo)航數(shù)據(jù)庫中的一現(xiàn)存節(jié)點(diǎn)的一節(jié)點(diǎn),在導(dǎo)航數(shù)據(jù)庫中的一現(xiàn)存鏈路上的一點(diǎn)(132),導(dǎo)航數(shù)據(jù)庫中一仍未存在的元素(132)。
19.如權(quán)利要求14所述的方法,其中有序操作規(guī)則集規(guī)定了可以將具有與導(dǎo)航數(shù)據(jù)庫中現(xiàn)存節(jié)點(diǎn)相關(guān)聯(lián)的兩個(gè)節(jié)點(diǎn)的鏈路添加到導(dǎo)航數(shù)據(jù)庫中(114,115)。
20.如權(quán)利要求14所述的方法,其中有序操作規(guī)則集規(guī)定了通過刪除所述現(xiàn)存鏈路并且將與所述節(jié)點(diǎn)互連的兩條鏈路添加到導(dǎo)航數(shù)據(jù)庫中的其他現(xiàn)存節(jié)點(diǎn)上、來添加具有作為導(dǎo)航數(shù)據(jù)庫中現(xiàn)存鏈路上的一點(diǎn)的一節(jié)點(diǎn)的鏈路(110)。
21.如權(quán)利要求14所述的方法,其中有序操作規(guī)則集規(guī)定了不將具有都不與導(dǎo)航數(shù)據(jù)庫中現(xiàn)存節(jié)點(diǎn)相關(guān)聯(lián)的兩個(gè)節(jié)點(diǎn)的一鏈路添加到導(dǎo)航數(shù)據(jù)庫中(118)。
22.如權(quán)利要求14所述的方法,其中依照有序操作規(guī)則集延遲更新指令的應(yīng)用,直到將隨后的更新指令應(yīng)用于導(dǎo)航數(shù)據(jù)庫(118)。
23.一種為導(dǎo)航數(shù)據(jù)庫生成數(shù)據(jù)庫更新內(nèi)容的方法(100),包括提供導(dǎo)航數(shù)據(jù)庫中待更新的鏈路的一列表(102),其中每條鏈路表示為由一道路區(qū)段互聯(lián)的兩個(gè)道路交叉點(diǎn)。為在該鏈路列表中唯一地規(guī)定的每個(gè)道路交叉點(diǎn)構(gòu)造一邏輯表示(10)(124),以使邏輯表示表現(xiàn)出在規(guī)定道路交叉點(diǎn)附近的道路拓?fù)?;并且為該鏈路列表公式化一更新指令的有序?100),以使每個(gè)更新指令參考至少一個(gè)邏輯表示。
24.如權(quán)利要求23所述的方法,還包括編譯每一個(gè)邏輯表示和該更新指令的有序集以形成一數(shù)據(jù)庫更新(90)。
25.如權(quán)利要求23所述的方法,還包括識(shí)別與該鏈路列表中規(guī)定的道路區(qū)段或者道路交叉點(diǎn)相關(guān)聯(lián)的屬性數(shù)據(jù),并且公式化該更新指令的有序集,以使得至少一個(gè)更新指令參考該屬性數(shù)據(jù)。
26.如權(quán)利要求23所述的方法,其中該構(gòu)造一邏輯表示的步驟還包括構(gòu)建表示該至少一個(gè)道路交叉點(diǎn)附近的道路拓?fù)涞膱D形(10)(124),其中該圖形的節(jié)點(diǎn)表示道路交叉點(diǎn)而該圖形的鏈路表示道路區(qū)段。
全文摘要
提供了改進(jìn)的方法(100)來識(shí)別導(dǎo)航數(shù)據(jù)庫中的道路區(qū)段。所述方法包括接收識(shí)別至少一個(gè)道路交叉點(diǎn)的數(shù)據(jù)庫更新(103);構(gòu)造表示圍繞該至少一個(gè)道路交叉點(diǎn)的道路拓?fù)涞倪壿嫳硎?104,106,124);并且通過比較所述邏輯表示和導(dǎo)航數(shù)據(jù)庫的一邏輯表示來識(shí)別導(dǎo)航數(shù)據(jù)庫中的該至少一個(gè)道路交叉點(diǎn)(104,106,126,127)。
文檔編號G01C21/26GK1590964SQ20041006449
公開日2005年3月9日 申請日期2004年8月27日 優(yōu)先權(quán)日2003年8月29日
發(fā)明者賈森·F·洪青格爾 申請人:株式會(huì)社電裝