一種Voronoi Diagram與虛擬網(wǎng)格結(jié)合的高效空間最近鄰查詢方法
【專利摘要】本發(fā)明公開了一種VoronoiDiagram與虛擬網(wǎng)格結(jié)合的高效空間最近鄰查詢方法,包括以下步驟:(1)使用VoronoiDiagram劃分二維空間中的數(shù)據(jù)點(diǎn),形成N個(gè)VoronoiCell;(2)使用虛擬網(wǎng)格將二維空間劃分為若干個(gè)網(wǎng)格單元,確定網(wǎng)格單元的邊長并進(jìn)行編號;(3)設(shè)計(jì)計(jì)算虛擬網(wǎng)格單元和VoronoiCell之間的對應(yīng)關(guān)系的方法,并存儲(chǔ)在一個(gè)哈希表中;(4)計(jì)算查詢點(diǎn)位置所在的網(wǎng)格單元,并確定對應(yīng)的網(wǎng)格單元的編號;(5)在哈希表中查找查詢點(diǎn)位置所在的網(wǎng)格單元所對應(yīng)的VoronoiCell,并從中計(jì)算選擇距離查詢點(diǎn)位置最近的數(shù)據(jù)點(diǎn)返回給用戶。本發(fā)明適用于大規(guī)模均勻分布的二維數(shù)據(jù)集,能夠?qū)⒖臻g最近鄰查詢的時(shí)間復(fù)雜度從O(logN)降低到O(1),極大地提高了空間最近鄰查詢的效率。
【專利說明】—種Voronoi Diagram與虛擬網(wǎng)格結(jié)合的高效空間最近鄰查詢方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種最近鄰查詢方法,尤其涉及一種使用Voronoi Diagram與虛擬網(wǎng)格結(jié)合的索引結(jié)構(gòu)的高效空間最近鄰查詢方法。
【背景技術(shù)】
[0002]近年來,隨著智能手機(jī)的普及,人們越來越多地使用手機(jī)進(jìn)行定位、查找、瀏覽和分享信息;越來越多的設(shè)施如餐館、商店、電影院等的地理位置可以利用手機(jī)中的電子地圖來獲取。這種面向智能手機(jī)用戶的基于地理位置信息的服務(wù)已經(jīng)被人們廣泛接受。隨著信息技術(shù)的不斷發(fā)展,這類基于地理位置信息的應(yīng)用和服務(wù)也會(huì)越來越多。
[0003]在這些應(yīng)用和服務(wù)中,較為常見的基于地理位置信息的服務(wù)是搜索用戶當(dāng)前位置附近的、滿足用戶所定義的關(guān)鍵詞的設(shè)施。在這類應(yīng)用中,如何高效處理用戶當(dāng)前地理位置的空間查詢,即空間關(guān)鍵詞查詢,是一項(xiàng)重要的研究課題。由于大量用戶通過移動(dòng)終端在同一時(shí)間發(fā)起查詢,并且期望在很短的時(shí)間內(nèi)得到答案,因此,并發(fā)查詢量大、查詢實(shí)時(shí)性要求高是當(dāng)前基于地理位置信息的服務(wù)應(yīng)用面臨的主要挑戰(zhàn)。
[0004]如何提高空間最近鄰的查詢效率,是空間關(guān)鍵詞查詢和很多基于地理位置信息的服務(wù)應(yīng)用中面臨的一個(gè)基礎(chǔ)且十分重要的關(guān)鍵問題。在查找查詢位置的空間最近鄰時(shí),現(xiàn)有的方法通常都借助于R-Tree類型的索引結(jié)構(gòu)。而R-Tree類型的索引是基于磁盤的數(shù)據(jù)結(jié)構(gòu),使用R-Tree搜索查詢點(diǎn)在空間中的鄰域的時(shí)間復(fù)雜度是O (log N),其中N為數(shù)據(jù)點(diǎn)的總數(shù),需要花費(fèi)大量的查詢時(shí)間;并且,找到查詢點(diǎn)在空間中的鄰域之后,現(xiàn)有的方法必須查看所有與該鄰域相交的劃分區(qū)域即最小邊界矩形中的點(diǎn),以從中找出查詢點(diǎn)的空間最近鄰,這樣又進(jìn)一步增加了計(jì)算的開銷。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是提供一種Voronoi Diagram與虛擬網(wǎng)格結(jié)合的高效空間最近鄰查詢方法,適用于大規(guī)模均勻分布的二維數(shù)據(jù)集,能夠?qū)⒖臻g最近鄰查詢的時(shí)間復(fù)雜度從0(log N)降低到0(1),提高空間最近鄰查詢的效率。
[0006]本發(fā)明采用下述技術(shù)方案:
[0007]—種Voronoi Diagram與虛擬網(wǎng)格結(jié)合的高效空間最近鄰查詢方法,包括以下步驟:
[0008]A:使用Voronoi Diagram劃分二維空間中的數(shù)據(jù)點(diǎn),形成N個(gè)Voronoi Cell,N為數(shù)據(jù)點(diǎn)個(gè)數(shù),每個(gè)Voronoi Cell為一個(gè)凸多邊形且僅包含I個(gè)數(shù)據(jù)點(diǎn);
[0009]B:使用虛擬網(wǎng)格將二維空間劃分為若干個(gè)等大的正方形網(wǎng)格單元,確定網(wǎng)格單元的邊長,并對虛擬網(wǎng)格進(jìn)行編號;
[0010]C:設(shè)計(jì)計(jì)算虛擬網(wǎng)格單元和Voronoi Cell之間的對應(yīng)關(guān)系的方法,并將該對應(yīng)關(guān)系存儲(chǔ)在一個(gè)哈希表中;[0011]D:計(jì)算查詢點(diǎn)位置所在的網(wǎng)格單元,并確定查詢點(diǎn)位置所對應(yīng)的網(wǎng)格單元的編號;
[0012]E:根據(jù)步驟D中計(jì)算出的網(wǎng)格單元編號,在步驟C中所建立的存儲(chǔ)網(wǎng)格單元與Voronoi Cell對應(yīng)關(guān)系的哈希表中,查找查詢點(diǎn)位置所在的網(wǎng)格單元所對應(yīng)的VoronoiCell,并從中計(jì)算選擇距離查詢點(diǎn)位置最近的數(shù)據(jù)點(diǎn)返回給用戶。
[0013]所述的步驟B包括以下步驟:
[0014]B1:使用虛擬網(wǎng)格將二維空間劃分為若干個(gè)等大的正方形網(wǎng)格單元,通過公式
【權(quán)利要求】
1.一種Voronoi Diagram與虛擬網(wǎng)格結(jié)合的高效空間最近鄰查詢方法,其特征在于,包括以下步驟: A:使用Voronoi Diagram劃分二維空間中的數(shù)據(jù)點(diǎn),形成N個(gè)Voronoi Cell, N為數(shù)據(jù)點(diǎn)個(gè)數(shù),每個(gè)Voronoi Cell為一個(gè)凸多邊形且僅包含I個(gè)數(shù)據(jù)點(diǎn); B:使用虛擬網(wǎng)格將二維空間劃分為若干個(gè)等大的正方形網(wǎng)格單元,確定網(wǎng)格單元的邊長,并對虛擬網(wǎng)格進(jìn)行編號; C:設(shè)計(jì)計(jì)算虛擬網(wǎng)格單元和Voronoi Cell之間的對應(yīng)關(guān)系的方法,并將該對應(yīng)關(guān)系存儲(chǔ)在一個(gè)哈希表中; D:計(jì)算查詢點(diǎn)位置所在的網(wǎng)格單元,并確定查詢點(diǎn)位置所對應(yīng)的網(wǎng)格單元的編號; E:根據(jù)步驟D中計(jì)算出的網(wǎng)格單元編號,在步驟C中所建立的存儲(chǔ)網(wǎng)格單元與VoronoiCell對應(yīng)關(guān)系的哈希表中,查找查詢點(diǎn)位置所在的網(wǎng)格單元所對應(yīng)的Voronoi Cell,并從中計(jì)算選擇距離查詢點(diǎn)位置最近的數(shù)據(jù)點(diǎn)返回給用戶。
2.根據(jù)權(quán)利要求1所述的VoronoiDiagram與虛擬網(wǎng)格結(jié)合的高效空間最近鄰查詢方法,其特征在于,所述的步驟B包括以下步驟: B1:使用虛擬網(wǎng)格將二維空間劃分為若干個(gè)等大的正方形網(wǎng)格單元,通過公式
3.根據(jù)權(quán)利要求2所述的VoronoiDiagram與虛擬網(wǎng)格結(jié)合的高效空間最近鄰查詢方法,其特征在于,所述的步驟C包括以下步驟: Cl:計(jì)算與每個(gè)Voronoi Cell的各邊相交的網(wǎng)格單元:對于每一個(gè)Voronoi Cell的任意一條邊的兩個(gè)端點(diǎn)%和ei,計(jì)算邊% — ei與縱向網(wǎng)格線和橫向網(wǎng)格線的交點(diǎn);按照eQ到方向,按照橫坐標(biāo)值的大小關(guān)系有序排列上述交點(diǎn)及%和ei兩個(gè)頂點(diǎn)所組成的點(diǎn)的集合;對排序之后的集合中的所有點(diǎn)依次計(jì)算集合中所有相鄰兩點(diǎn)的中點(diǎn),對每個(gè)中點(diǎn)使用步驟C中的公式(2)計(jì)算該中點(diǎn)所在的網(wǎng)格單元的編號,中點(diǎn)所在的網(wǎng)格單元所組成的集合即為與邊% — θι相交的網(wǎng)格單元; C2:計(jì)算Voronoi Cell包含的網(wǎng)格單元:與任意一個(gè)Voronoi Cell的各邊所相交的網(wǎng)格單元圍成的區(qū)域所包含的所有網(wǎng)格單元,即為VOTonoi Cell包含的網(wǎng)格單元; C3:將與Voronoi Cell相交和Voronoi Cell包含的網(wǎng)格單兀和該Voronoi Cell的對應(yīng)關(guān)系存儲(chǔ)在一個(gè)哈希表中,哈希表的鍵key即為網(wǎng)格單元編號,哈希表的值value即為該網(wǎng)格單元對應(yīng)的Voronoi Cell的編號。
【文檔編號】G06F17/30GK103559209SQ201310470050
【公開日】2014年2月5日 申請日期:2013年10月10日 優(yōu)先權(quán)日:2013年10月10日
【發(fā)明者】張重生 申請人:河南大學(xué)