国产精品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>

      一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法

      文檔序號(hào):6535218閱讀:234來(lái)源:國(guó)知局
      一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法
      【專利摘要】本發(fā)明公開(kāi)了一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法。充分利用將現(xiàn)有的數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)和空間數(shù)據(jù)庫(kù)引擎相結(jié)合構(gòu)建而成的空間數(shù)據(jù)庫(kù)系統(tǒng),以及現(xiàn)有的空間數(shù)據(jù)庫(kù)索引技術(shù),本發(fā)明選用了R樹(shù)作為分組反向輪廓查詢方法的索引。在此基礎(chǔ)上本發(fā)明首先開(kāi)發(fā)了分組引擎,將多組混合在一起的數(shù)據(jù)進(jìn)行有效的分離。接著開(kāi)發(fā)了全局輪廓計(jì)算引擎,它計(jì)算出每組的第一層和第二層全局輪廓,其中第一層全局輪廓是作為最終查詢結(jié)果的候選集,而第二層全局輪廓?jiǎng)t用于后續(xù)的執(zhí)行。最后開(kāi)發(fā)了全局輪廓比較引擎,它能夠有效地排除第一層全局輪廓中的錯(cuò)誤命中,并得到每一組的最終反向輪廓。
      【專利說(shuō)明】一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及數(shù)據(jù)庫(kù)的索引與查詢技術(shù),特別是一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法。
      【背景技術(shù)】
      [0002]空間數(shù)據(jù)庫(kù)通?;谕ㄓ脭?shù)據(jù)庫(kù)管理系統(tǒng)構(gòu)建。不同的空間數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)時(shí)選取的數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)與操作系統(tǒng)平臺(tái)不盡相同。空間數(shù)據(jù)庫(kù)引擎是以屏蔽操作系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)差異為目的,在應(yīng)用層和數(shù)據(jù)庫(kù)層之間構(gòu)建基于高效空間搜索的數(shù)據(jù)訪問(wèn)中間件,是向應(yīng)用層提供數(shù)據(jù)存儲(chǔ)、高效檢索、數(shù)據(jù)管理、網(wǎng)絡(luò)通信、事務(wù)處理和簡(jiǎn)單數(shù)據(jù)處理功能的程序集合??臻g數(shù)據(jù)庫(kù)引擎基于傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),但它能對(duì)空間數(shù)據(jù)信息進(jìn)行有效的處理和管理,并提供特定的空間數(shù)據(jù)關(guān)系運(yùn)算和空間數(shù)據(jù)分析功能。
      [0003]在所有空間數(shù)據(jù)庫(kù)的索引技術(shù)中,R樹(shù)及其變體因?yàn)楹?jiǎn)單易用和有效性而受到廣泛地應(yīng)用。R樹(shù)空間索引結(jié)構(gòu)是一個(gè)高度平衡的數(shù)據(jù)結(jié)構(gòu),它是基于對(duì)經(jīng)典的B+樹(shù)索引結(jié)構(gòu)的改進(jìn)與擴(kuò)展,從而能夠有效地處理空間數(shù)據(jù)信息。R樹(shù)的每個(gè)結(jié)點(diǎn)包含一個(gè)矩形區(qū)域的索引碼,該矩形區(qū)域由對(duì)應(yīng)結(jié)點(diǎn)的所有孩子結(jié)點(diǎn)的最小外包矩形嵌套組成,其中最小外包矩形的每一條邊都和一個(gè)全局坐標(biāo)系的坐標(biāo)軸平行,同時(shí)每個(gè)結(jié)點(diǎn)還包括一系列的子索引項(xiàng),每個(gè)子索引項(xiàng)包括對(duì)應(yīng)的子結(jié)點(diǎn)指針和子結(jié)點(diǎn)的矩形索引碼。
      [0004]輪廓查詢問(wèn)題也稱為極大向量問(wèn)題,是一個(gè)典型的多目標(biāo)優(yōu)化問(wèn)題,對(duì)它的研究最早可以追溯到1975年。具體而言,輪廓查詢是指從一個(gè)給定的空間對(duì)象集合S中選擇一個(gè)子集,該子集中的點(diǎn)都不能被S中的任意一個(gè)其他點(diǎn)所控制,滿足這個(gè)條件的點(diǎn)稱為輪廓點(diǎn)SP。反向輪廓查詢則是輪廓查詢的一個(gè)重要變體,它與輪廓查詢的執(zhí)行立場(chǎng)剛好相反,目前已受到了專家學(xué)者們的重視。
      [0005]在現(xiàn)實(shí)情況中,所給的數(shù)據(jù)之中可以根據(jù)某些屬性分成若干組。傳統(tǒng)的反向輪廓查詢只能在整個(gè)數(shù)據(jù)集上返回整體的反向輪廓。如果要返回每一組的反向輪廓,則要對(duì)每一組的數(shù)據(jù)都建立一棵R樹(shù),然后在每一棵R樹(shù)上返回相應(yīng)的結(jié)果,但這樣的查詢效率極低。

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

      [0006]本發(fā)明的目的在于提供一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法。
      [0007]本發(fā)明解決其技術(shù)問(wèn)題采用技術(shù)方案的步驟如下:
      [0008]步驟(I):根據(jù)分組反向輪廓查詢本身的特性以及用戶的需求選用一個(gè)合適的數(shù)據(jù)庫(kù)管理系統(tǒng);
      [0009]步驟(2):開(kāi)發(fā)一個(gè)空間數(shù)據(jù)庫(kù)引擎,能與步驟I)中選用的數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)交互,并選用空間數(shù)據(jù)庫(kù)索引技術(shù);
      [0010]步驟(3):開(kāi)發(fā)一個(gè)用于分組反向輪廓查詢的分組引擎;
      [0011]步驟(4):在步驟(2)中構(gòu)建的空間數(shù)據(jù)庫(kù)和步驟(3)中構(gòu)建的分組引擎的基礎(chǔ)上實(shí)現(xiàn)各組全局輪廓計(jì)算引擎,包括第一層和第二層全局輪廓計(jì)算;
      [0012]步驟(5):開(kāi)發(fā)一個(gè)全局輪廓比較引擎,對(duì)步驟(4)中得到的結(jié)果進(jìn)行驗(yàn)證;
      [0013]步驟(6):對(duì)步驟(5)中的結(jié)果進(jìn)行分組,以得到最終的查詢結(jié)果。
      [0014]所述的步驟(I)中選用的數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)應(yīng)支持基本的SQL查詢,目前大部分的數(shù)據(jù)庫(kù)管理系統(tǒng)都滿足這一要求,像Oracle、SQL Server、MySQL。
      [0015]所述的步驟(2)中的空間數(shù)據(jù)庫(kù)引擎是構(gòu)建在應(yīng)用層和數(shù)據(jù)庫(kù)層之間的一種中間件,它必須與步驟(I)中選用的數(shù)據(jù)庫(kù)管理系統(tǒng)相互配合,接受上層查詢引擎的命令并轉(zhuǎn)化為SQL語(yǔ)句在數(shù)據(jù)庫(kù)管理系統(tǒng)中運(yùn)行,空間數(shù)據(jù)庫(kù)索引一般選用R樹(shù)。
      [0016]所述的步驟(3)中的分組引擎,它主要根據(jù)對(duì)象原有的屬性對(duì)其進(jìn)行分組,需考慮兩種情況:
      [0017]3.1)該結(jié)點(diǎn)是中間索引結(jié)點(diǎn),不做任何操作,因?yàn)橹虚g結(jié)點(diǎn)所包含的對(duì)象可能來(lái)自不同組;
      [0018]3.2)該結(jié)點(diǎn)是數(shù)據(jù)索引結(jié)點(diǎn),那么將其分到相應(yīng)的組中。
      [0019]所述的步驟(4)中計(jì)算各組全局輪廓的方法如下:
      [0020]4.1)初始化一個(gè)最小堆,并將根結(jié)點(diǎn)放入堆,該最小堆根據(jù)R樹(shù)索引結(jié)點(diǎn)到查詢點(diǎn)的最小距離進(jìn)行排序;初始化兩個(gè)對(duì)象集合,一個(gè)用來(lái)保存第一層全局輪廓,另外一個(gè)用來(lái)保存第二層全局輪廓;
      [0021]4.2)如果最小堆為空,則過(guò)濾算法結(jié)束,返回兩個(gè)對(duì)象集合,即第一層和第二層全局輪廓;否則取出堆頂元素;
      [0022]4.3)計(jì)算取出的堆頂元素被該組當(dāng)前已經(jīng)找到的第一層和第二層全局輪廓點(diǎn)所全局控制的次數(shù)。對(duì)于R樹(shù)索引結(jié)點(diǎn)被全局控制的次數(shù),需考慮兩種情況:
      [0023]a)該結(jié)點(diǎn)是中間索引結(jié)點(diǎn),這種狀況下根據(jù)其被全局控制的次數(shù)分為兩種情況:
      [0024]i)該中間結(jié)點(diǎn)最多只被一個(gè)該組第一層全局輪廓點(diǎn)所全局控制,那么將其索引孩子結(jié)點(diǎn)都加入到最小堆中,并跳到4.2)。
      [0025]ii)該中間結(jié)點(diǎn)被多個(gè)該組第一層全局輪廓點(diǎn)(大于I個(gè))所全局控制,那么對(duì)于其孩子結(jié)點(diǎn)不做任何操作,并跳到4.2)。
      [0026]b)該結(jié)點(diǎn)是數(shù)據(jù)索引結(jié)點(diǎn),這種狀況下根據(jù)其被全局控制的次數(shù)分為三種情況:
      [0027]i)該數(shù)據(jù)結(jié)點(diǎn)沒(méi)有被任何一個(gè)當(dāng)前已找到的該組第一層全局輪廓點(diǎn)所全局控制,那么將該數(shù)據(jù)索引結(jié)點(diǎn)加入到第一層全局輪廓結(jié)果列表中并跳到4.2)。
      [0028]ii)該數(shù)據(jù)結(jié)點(diǎn)被一個(gè)當(dāng)前已找到的該組第一層全局輪廓點(diǎn)和第二層全局輪廓點(diǎn)所全局控制,那么將該數(shù)據(jù)索引結(jié)點(diǎn)加入到第二層全局輪廓結(jié)果列表中并跳到4.2)。
      [0029]iii)該數(shù)據(jù)結(jié)點(diǎn)被多個(gè)當(dāng)前已找到的該組第一層和第二層全局輪廓點(diǎn)所全局控制,那么對(duì)于該數(shù)據(jù)索引結(jié)點(diǎn)不做任何操作,并跳到4.2)。
      [0030]所述的步驟(5)中全局輪廓比較方法如下:
      [0031]5.1)初始化一個(gè)對(duì)象集合,用來(lái)保存最終結(jié)果;
      [0032]5.2)取出一個(gè)第一層全局輪廓點(diǎn),計(jì)算出該點(diǎn)的查詢窗口,以進(jìn)行下一步精煉;該查詢窗口的中心點(diǎn)是相應(yīng)的第一層全局輪廓點(diǎn),查詢點(diǎn)q則作為該查詢窗口的一個(gè)頂點(diǎn);如果所有組的第一層全局輪廓都已經(jīng)精煉完,則算法結(jié)束;否則,繼續(xù)操作5.3);
      [0033]5.3)遍歷與5.2)中取出的第一層全局輪廓點(diǎn)同一組的第一層全局輪廓點(diǎn),如果該查詢窗口包含其它該組第一層全局輪廓點(diǎn),那么該點(diǎn)不是最終結(jié)果并跳轉(zhuǎn)到5.2);
      [0034]5.4)遍歷與5.2)中取出的第一層全局輪廓點(diǎn)同一組的第二層全局輪廓點(diǎn),如果該查詢窗口包含其它該組第二層全局輪廓點(diǎn),那么該點(diǎn)不是最終結(jié)果;否則該點(diǎn)是最終結(jié)果,加入到最終結(jié)果對(duì)象集合;并跳轉(zhuǎn)到5.2)。
      [0035]所述的步驟(6)中對(duì)步驟(5)中得到的結(jié)果根據(jù)其所在組進(jìn)行整理,以得到每一組的反向輪廓。
      [0036]本發(fā)明具有的有益效果是:
      [0037]本發(fā)明充分利用了空間數(shù)據(jù)庫(kù)中現(xiàn)有索引技術(shù)、反向輪廓查詢技術(shù),通過(guò)只遍歷一次索引結(jié)構(gòu)便能得到所要的查詢結(jié)果,大大降低了 I/O時(shí)間和CPU時(shí)間,提供了最佳性倉(cāng)泛。
      【專利附圖】

      【附圖說(shuō)明】
      [0038]圖1是本發(fā)明的實(shí)施步驟流程圖。
      [0039]圖2為分組反向輪廓查詢系統(tǒng)的工作原理示意圖。
      【具體實(shí)施方式】
      [0040]現(xiàn)結(jié)合附圖和具體實(shí)施對(duì)本發(fā)明的技術(shù)方案進(jìn)一步說(shuō)明:
      [0041]如圖1,圖2所示,本發(fā)明具體實(shí)施過(guò)程和工作原理步驟如下:
      [0042]步驟(I):根據(jù)分組反向輪廓查詢本身的特性以及用戶的需求選用一個(gè)合適的數(shù)據(jù)庫(kù)管理系統(tǒng);
      [0043]步驟(2):開(kāi)發(fā)一個(gè)空間數(shù)據(jù)庫(kù)引擎,能與步驟I)中選用的數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)交互,并選用空間數(shù)據(jù)庫(kù)索引技術(shù);
      [0044]步驟(3):開(kāi)發(fā)一個(gè)用于分組反向輪廓查詢的分組引擎;
      [0045]步驟(4):在步驟(2)中構(gòu)建的空間數(shù)據(jù)庫(kù)和步驟(3)中構(gòu)建的分組引擎的基礎(chǔ)上實(shí)現(xiàn)各組全局輪廓計(jì)算引擎,包括第一層和第二層全局輪廓計(jì)算;
      [0046]步驟(5):開(kāi)發(fā)一個(gè)全局輪廓比較引擎,對(duì)步驟(4)中得到的結(jié)果進(jìn)行驗(yàn)證;
      [0047]步驟(6):對(duì)步驟(5)中的結(jié)果進(jìn)行分組,以得到最終的查詢結(jié)果。
      [0048]步驟(I)中選用的數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)應(yīng)支持基本的SQL查詢,目前大部分的數(shù)據(jù)庫(kù)管理系統(tǒng)都滿足這一要求,像Oracle、SQL Server、MySQL。在圖2中就是數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)模塊。
      [0049]步驟(2)中的空間數(shù)據(jù)庫(kù)引擎是構(gòu)建在應(yīng)用層和數(shù)據(jù)庫(kù)層之間的一種中間件,在圖2中表示為空間數(shù)據(jù)庫(kù)引擎模塊,它必須與步驟(I)中選用的數(shù)據(jù)庫(kù)管理系統(tǒng)相互配合,接受上層查詢引擎的命令并轉(zhuǎn)化為SQL語(yǔ)句在數(shù)據(jù)庫(kù)管理系統(tǒng)中運(yùn)行,空間數(shù)據(jù)庫(kù)索引一般選用R樹(shù),對(duì)應(yīng)圖2中的空間數(shù)據(jù)庫(kù)索引模塊。
      [0050]步驟(3)中的分組引擎,在圖2中對(duì)應(yīng)于分組引擎模塊,它主要根據(jù)對(duì)象原有的屬性對(duì)其進(jìn)行分組,需考慮兩種情況:
      [0051]3.1)該結(jié)點(diǎn)是中間索引結(jié)點(diǎn),不做任何操作,因?yàn)橹虚g結(jié)點(diǎn)所包含的對(duì)象可能來(lái)自不同組;
      [0052]3.2)該結(jié)點(diǎn)是數(shù)據(jù)索引結(jié)點(diǎn),那么將其分到相應(yīng)的組中。[0053]所述的步驟(4)中計(jì)算各組全局輪廓的方法如下,具體由圖2中的全局輪廓計(jì)算引擎實(shí)現(xiàn):
      [0054]4.1)初始化一個(gè)最小堆,并將根結(jié)點(diǎn)放入堆,該最小堆根據(jù)R樹(shù)索引結(jié)點(diǎn)到查詢點(diǎn)的最小距離進(jìn)行排序;初始化兩個(gè)對(duì)象集合,一個(gè)用來(lái)保存第一層全局輪廓,另外一個(gè)用來(lái)保存第二層全局輪廓;
      [0055]4.2)如果最小堆為空,則過(guò)濾算法結(jié)束,返回兩個(gè)對(duì)象集合,即第一層和第二層全局輪廓;否則取出堆頂元素;
      [0056]4.3)計(jì)算取出的堆頂元素被該組當(dāng)前已經(jīng)找到的第一層和第二層全局輪廓點(diǎn)所全局控制的次數(shù)。對(duì)于R樹(shù)索引結(jié)點(diǎn)被全局控制的次數(shù),需考慮兩種情況:
      [0057]a)該結(jié)點(diǎn)是中間索引結(jié)點(diǎn),這種狀況下根據(jù)其被全局控制的次數(shù)分為兩種情況:
      [0058]i)該中間結(jié)點(diǎn)最多只被一個(gè)該組第一層全局輪廓點(diǎn)所全局控制,那么將其索引孩子結(jié)點(diǎn)都加入到最小堆中,并跳到4.2)。
      [0059]ii)該中間結(jié)點(diǎn)被多個(gè)該組第一層全局輪廓點(diǎn)(大于I個(gè))所全局控制,那么對(duì)于其孩子結(jié)點(diǎn)不做任何操作,并跳到4.2)。
      [0060]b)該結(jié)點(diǎn)是數(shù)據(jù)索引結(jié)點(diǎn),這種狀況下根據(jù)其被全局控制的次數(shù)分為三種情況:
      [0061]i)該數(shù)據(jù)結(jié)點(diǎn)沒(méi)有被任何一個(gè)當(dāng)前已找到的該組第一層全局輪廓點(diǎn)所全局控制,那么將該數(shù)據(jù)索引結(jié)點(diǎn)加入到第一層全局輪廓結(jié)果列表中并跳到4.2)。
      [0062]ii)該數(shù)據(jù)結(jié)點(diǎn)被一個(gè)當(dāng)前已找到的該組第一層全局輪廓點(diǎn)和第二層全局輪廓點(diǎn)所全局控制,那么將該數(shù)據(jù)索引結(jié)點(diǎn)加入到第二層全局輪廓結(jié)果列表中并跳到4.2)。
      [0063]iii)該數(shù)據(jù)結(jié)點(diǎn)被多個(gè)當(dāng)前已找到的該組第一層和第二層全局輪廓點(diǎn)所全局控制,那么對(duì)于該數(shù)據(jù)索引結(jié)點(diǎn)不做任何操作,并跳到4.2)。
      [0064]步驟(5)中全局輪廓比較方法如下,具體由圖2中的全局輪廓比較引擎實(shí)現(xiàn):
      [0065]5.1)初始化一個(gè)對(duì)象集合,用來(lái)保存最終結(jié)果;
      [0066]5.2)取出一個(gè)第一層全局輪廓點(diǎn),計(jì)算出該點(diǎn)的查詢窗口,以進(jìn)行下一步精煉;該查詢窗口的中心點(diǎn)是相應(yīng)的第一層全局輪廓點(diǎn),查詢點(diǎn)q則作為該查詢窗口的一個(gè)頂點(diǎn);如果所有組的第一層全局輪廓都已經(jīng)精煉完,則算法結(jié)束;否則,繼續(xù)操作5.3);
      [0067]5.3)遍歷與5.2)中取出的第一層全局輪廓點(diǎn)同一組的第一層全局輪廓點(diǎn),如果該查詢窗口包含其它該組第一層全局輪廓點(diǎn),那么該點(diǎn)不是最終結(jié)果并跳轉(zhuǎn)到5.2);
      [0068]5.4)遍歷與5.2)中取出的第一層全局輪廓點(diǎn)同一組的第二層全局輪廓點(diǎn),如果該查詢窗口包含其它該組第二層全局輪廓點(diǎn),那么該點(diǎn)不是最終結(jié)果;否則該點(diǎn)是最終結(jié)果,加入到最終結(jié)果對(duì)象集合;并跳轉(zhuǎn)到5.2)。
      [0069]步驟(6)中對(duì)步驟(5)中得到的結(jié)果根據(jù)其所在組進(jìn)行整理,以得到每一組的反向輪廓。
      【權(quán)利要求】
      1.一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法:其特征在于該方法的步驟如下: 步驟(1):根據(jù)分組反向輪廓查詢本身的特性以及用戶的需求選用一個(gè)合適的數(shù)據(jù)庫(kù)管理系統(tǒng); 步驟(2):開(kāi)發(fā)一個(gè)空間數(shù)據(jù)庫(kù)引擎,能與步驟I)中選用的數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)交互,并選用空間數(shù)據(jù)庫(kù)索引技術(shù); 步驟(3):開(kāi)發(fā)一個(gè)用于分組反向輪廓查詢的分組引擎; 步驟(4):在步驟(2)中構(gòu)建的空間數(shù)據(jù)庫(kù)和步驟(3)中構(gòu)建的分組引擎的基礎(chǔ)上實(shí)現(xiàn)各組全局輪廓計(jì)算引擎,包括第一層和第二層全局輪廓計(jì)算; 步驟(5):開(kāi)發(fā)一個(gè)全局輪廓比較引擎,對(duì)步驟(4)中得到的結(jié)果進(jìn)行驗(yàn)證; 步驟(6):對(duì)步驟(5)中的結(jié)果進(jìn)行分組,以得到最終的查詢結(jié)果。
      2.根據(jù)權(quán)利要求1所述的一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法,其特征在于:所述的步驟(1)中選用支持基本的SQL查詢的數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)。
      3.根據(jù)權(quán)利要求1所述的一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法,其特征在于:所述的步驟(2)中的空間數(shù)據(jù)庫(kù)引擎是構(gòu)建在應(yīng)用層和數(shù)據(jù)庫(kù)層之間的中間件,所述的中間件與步驟(1)中選用的數(shù)據(jù)庫(kù)管理系統(tǒng)相互配合,接受上層查詢引擎的命令并轉(zhuǎn)化為SQL語(yǔ)句在數(shù)據(jù)庫(kù)管理系統(tǒng)中運(yùn)行,空間數(shù)據(jù)庫(kù)索引一般選用R樹(shù)。
      4.根據(jù)權(quán)利要求1所述的一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法,其特征在于:所述的步驟(3)中的分組引擎根據(jù)對(duì)象原有的屬性對(duì)其進(jìn)行分組,需考慮兩種情況: 3.1)該結(jié)點(diǎn)是中間索引結(jié)點(diǎn),不做任何操作,因?yàn)橹虚g結(jié)點(diǎn)所包含的對(duì)象可能來(lái)自不同組; 3.2)該結(jié)點(diǎn)是數(shù)據(jù)索引結(jié)點(diǎn),那么將其分到相應(yīng)的組中。
      5.根據(jù)權(quán)利要求1所述的一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法,其特征在于:所述的步驟(4)中計(jì)算各組全局輪廓的方法如下: . 4.1)初始化一個(gè)最小堆,并將根結(jié)點(diǎn)放入堆,該最小堆根據(jù)R樹(shù)索引結(jié)點(diǎn)到查詢點(diǎn)的最小距離進(jìn)行排序;初始化兩個(gè)對(duì)象集合,一個(gè)用來(lái)保存第一層全局輪廓,另外一個(gè)用來(lái)保存第二層全局輪廓; .4.2)如果最小堆為空,則過(guò)濾算法結(jié)束,返回兩個(gè)對(duì)象集合,即第一層和第二層全局輪廓;否則取出堆頂元素; .4.3)計(jì)算取出的堆頂元素被該組當(dāng)前已經(jīng)找到的第一層和第二層全局輪廓點(diǎn)所全局控制的次數(shù);對(duì)于R樹(shù)索引結(jié)點(diǎn)被全局控制的次數(shù),需考慮兩種情況: a)該結(jié)點(diǎn)是中間索引結(jié)點(diǎn),這種狀況下根據(jù)其被全局控制的次數(shù)分為兩種情況: i)該中間結(jié)點(diǎn)最多只被一個(gè)該組第一層全局輪廓點(diǎn)所全局控制,那么將其索引孩子結(jié)點(diǎn)都加入到最小堆中,并跳到4.2); ii)該中間結(jié)點(diǎn)被多個(gè)該組第一層全局輪廓點(diǎn)所全局控制,那么對(duì)于其孩子結(jié)點(diǎn)不做任何操作,并跳到4.2); b)該結(jié)點(diǎn)是數(shù)據(jù)索引結(jié)點(diǎn),這種狀況下根據(jù)其被全局控制的次數(shù)分為三種情況: i)該數(shù)據(jù)結(jié)點(diǎn)沒(méi)有被任何一個(gè)當(dāng)前已找到的該組第一層全局輪廓點(diǎn)所全局控制,那么將該數(shù)據(jù)索引結(jié)點(diǎn)加入到第一層全局輪廓結(jié)果列表中并跳到4.2); ii)該數(shù)據(jù)結(jié)點(diǎn)被一個(gè)當(dāng)前已找到的該組第一層全局輪廓點(diǎn)和第二層全局輪廓點(diǎn)所全局控制,那么將該數(shù)據(jù)索引結(jié)點(diǎn)加入到第二層全局輪廓結(jié)果列表中并跳到4.2); iii)該數(shù)據(jù)結(jié)點(diǎn)被多個(gè)當(dāng)前已找到的該組第一層和第二層全局輪廓點(diǎn)所全局控制,那么對(duì)于該數(shù)據(jù)索引結(jié)點(diǎn)不做任何操作,并跳到4.2)。
      6.根據(jù)權(quán)利要求1所述的一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法,其特征在于:所述的步驟(5)中全局輪廓比較方法如下: 5.1)初始化一個(gè)對(duì)象集合,用來(lái)保存最終結(jié)果; 5.2)取出一個(gè)第一層全局輪廓點(diǎn),計(jì)算出該點(diǎn)的查詢窗口,以進(jìn)行下一步精煉;該查詢窗口的中心點(diǎn)是相應(yīng)的第一層全局輪廓點(diǎn),查詢點(diǎn)q則作為該查詢窗口的一個(gè)頂點(diǎn);如果所有組的第一層全局輪廓都已經(jīng)精煉完,則算法結(jié)束;否則,繼續(xù)操作5.3); 5.3)遍歷與5.2)中取出的第一層全局輪廓點(diǎn)同一組的第一層全局輪廓點(diǎn),如果該查詢窗口包含其它該組第一層全局輪廓點(diǎn),那么該點(diǎn)不是最終結(jié)果并跳轉(zhuǎn)到5.2); 5.4)遍歷與5.2)中取出的第一層全局輪廓點(diǎn)同一組的第二層全局輪廓點(diǎn),如果該查詢窗口包含其它該組第二層全局輪廓點(diǎn),那么該點(diǎn)不是最終結(jié)果;否則該點(diǎn)是最終結(jié)果,加入到最終結(jié)果對(duì)象集合;并跳轉(zhuǎn)到5.2)。
      7.根據(jù)權(quán)利要求1所述的一種空間數(shù)據(jù)庫(kù)中分組反向輪廓查詢方法,其特征在于:所述的步驟(6)中對(duì)步驟(5)中得到的結(jié)果根據(jù)其所在組進(jìn)行整理,以得到每一組的反向輪廓。
      【文檔編號(hào)】G06F17/30GK103778198SQ201410007699
      【公開(kāi)日】2014年5月7日 申請(qǐng)日期:2014年1月7日 優(yōu)先權(quán)日:2014年1月7日
      【發(fā)明者】高云君, 柳晴, 苗曉曄, 陳璐, 趙靖文, 秦旭 申請(qǐng)人:浙江大學(xué)
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1