一種基于vgr索引結(jié)構(gòu)的k匿名隱私保護(hù)算法
【專利摘要】本發(fā)明實(shí)施例提供了一種基于VGR索引結(jié)構(gòu)的K匿名隱私保護(hù)算法,涉及數(shù)據(jù)安全領(lǐng)域,可以降低冗余率,減少傳輸時(shí)的通信代價(jià),降低后臺(tái)服務(wù)器的開銷,提高整體性能。所述算法包括:根據(jù)查詢對(duì)象的坐標(biāo)信息定位到所在網(wǎng)格,并由網(wǎng)格里面的指針定位到R*樹葉子中的一個(gè)條目,判斷該條目是否滿足匿名要求,若滿足則輸出該條目的匿名區(qū)域;如果不滿足,則向上找其父親結(jié)點(diǎn),如果父親結(jié)點(diǎn)滿足,則按照不同的擴(kuò)展策略進(jìn)行簡(jiǎn)化合并,直到滿足要求的匿名區(qū)域,如果父親結(jié)點(diǎn)仍然不滿足,則繼續(xù)遞歸向上,直到找到滿足要求的匿名區(qū)域。
【專利說(shuō)明】—種基于VGR索引結(jié)構(gòu)的K匿名隱私保護(hù)算法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)安全領(lǐng)域,尤其涉及一種基于VGR(Virtual Grid R*tree,虛擬網(wǎng)格R*樹)索引結(jié)構(gòu)的K匿名隱私保護(hù)算法。
【背景技術(shù)】
[0002]近年來(lái),與位置服務(wù)有關(guān)的定位技術(shù)、導(dǎo)航技術(shù)已經(jīng)廣泛走進(jìn)現(xiàn)實(shí)生活,海量不斷變化的信息對(duì)移動(dòng)數(shù)據(jù)庫(kù)索引的性能提出了更高的要求。隨著位置服務(wù)應(yīng)用的普及,人們也越來(lái)越關(guān)注位置隱私泄露的問(wèn)題。因此,移動(dòng)對(duì)象索引和隱私保護(hù)的研究成為移動(dòng)數(shù)據(jù)庫(kù)領(lǐng)域研究的兩大熱點(diǎn)。目前對(duì)這兩大熱點(diǎn)的研究已經(jīng)有很多成果,K匿名隱私保護(hù)是這兩大熱點(diǎn)的典型應(yīng)用之一。
[0003]K匿名隱私保護(hù)技術(shù)可以從本質(zhì)上防止用戶位置和身份信息的泄露。這種技術(shù)需要引入一個(gè)第三方平臺(tái)即匿名服務(wù)器,現(xiàn)有技術(shù)中應(yīng)用較多的K匿名隱私保護(hù)算法為Casper算法。它的匿名服務(wù)器層是四分樹結(jié)構(gòu),自底向上遞歸找匿名框的時(shí)候,每個(gè)孩子只能與相鄰的2個(gè)兄弟組合,組合比較有局限性,比如:如果需要3個(gè)孩子的組合,這樣構(gòu)成的匿名區(qū)ASR不規(guī)則,在某些情況下,達(dá)不到隱私保護(hù)效果。因此要使得匿名區(qū)ASR是一個(gè)規(guī)則的矩形框,必須擴(kuò)展為4個(gè)孩子的組合,這樣多余了一個(gè)孩子的傳輸開銷,后臺(tái)查詢處理時(shí),也會(huì)處理這個(gè)多余的孩子里面的移動(dòng)物體,如果移動(dòng)物體過(guò)多,會(huì)增加服務(wù)器的開銷,導(dǎo)致整體性能下降。即該匿名算法的不足為匿名結(jié)果候選集的冗余率高,造成通信代價(jià)高,且占用LBS服務(wù)器資源。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的實(shí)施例提供一種基于VGR索引結(jié)構(gòu)的K匿名隱私保護(hù)算法,可以降低冗余率,減少傳輸時(shí)的通信代價(jià),降低后臺(tái)服務(wù)器的開銷,提高整體性能。
[0005]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0006]一種基于虛擬網(wǎng)格R*樹VGR索引結(jié)構(gòu)的K匿名隱私保護(hù)算法,包括:
[0007]101、由VGR構(gòu)成的中間匿名服務(wù)器接收移動(dòng)對(duì)象的查詢請(qǐng)求,根據(jù)所述移動(dòng)對(duì)象的位置計(jì)算所述移動(dòng)對(duì)象所在的網(wǎng)格;所述VGR包括網(wǎng)格文件、R*樹;所述網(wǎng)格文件中包括Object表和Rvalue表;所述查詢請(qǐng)求中包括移動(dòng)對(duì)象的oid,位置坐標(biāo),以及用于匿名要求K 和 Area ;
[0008]102、根據(jù)所述Rvalue表找到所述網(wǎng)格對(duì)應(yīng)R*樹葉子結(jié)點(diǎn)中的條目Entry ;
[0009]103、判斷所述葉子結(jié)點(diǎn)的Entry的面積是否大于等于Area并且所述葉子結(jié)點(diǎn)的Entry包含的移動(dòng)點(diǎn)的個(gè)數(shù)是否大于等于K ;
[0010]若是,則進(jìn)行步驟104;
[0011]否則,進(jìn)行步驟105;
[0012]104、輸出所述葉子結(jié)點(diǎn)的Entry的mbr,算法結(jié)束;
[0013]105、根據(jù)所述葉子結(jié)點(diǎn)的Entry中指向父親結(jié)點(diǎn)的指針找到所述葉子結(jié)點(diǎn)的父未結(jié)點(diǎn);
[0014]106、判斷父親結(jié)點(diǎn)的面積是否小于Area或者父親結(jié)點(diǎn)包含移動(dòng)點(diǎn)個(gè)數(shù)是否小于K;
[0015]若是,則重復(fù)步驟105和106,直至父親結(jié)點(diǎn)parentEntry的面積不小于Area且父親結(jié)點(diǎn)包含移動(dòng)點(diǎn)個(gè)數(shù)不小于K,則得到滿足條件的父親結(jié)點(diǎn),進(jìn)行步驟107 ;
[0016]若否,則直接進(jìn)行步驟107。
[0017]107、采取相應(yīng)的策略,得到所述滿足條件的父親結(jié)點(diǎn)的一個(gè)孩子結(jié)點(diǎn)子集CsubSet,使得CsubSet中孩子結(jié)點(diǎn)合并后的mbr面積大于Area且包含的移動(dòng)對(duì)象數(shù)目大于K ;返回所述Csubset中孩子結(jié)點(diǎn)合并后的mbr ;算法結(jié)束。
[0018]上述技術(shù)方案提供的基于VGR索引結(jié)構(gòu)的K匿名算法比Casper算法的查詢響應(yīng)時(shí)間最快能達(dá)到一個(gè)數(shù)量級(jí),且在匿名K值較小時(shí),VGR索引結(jié)構(gòu)K匿名算法的匿名結(jié)果比Casper算法減少了 4/5,大大減少了通信開銷和后臺(tái)資源的占用。這種精簡(jiǎn)的滿足要求的匿名區(qū)是由于R*樹本身存儲(chǔ)結(jié)構(gòu)的高空間利用率決定的。且步驟107進(jìn)一步簡(jiǎn)化了匿名區(qū)域,這樣使冗余率相對(duì)更低,這樣不僅減少了傳輸時(shí)的通信代價(jià),后臺(tái)服務(wù)器的開銷也大大降低,提聞?wù)w性能。
【專利附圖】
【附圖說(shuō)明】
[0019]圖1為本發(fā)明實(shí)施例提供的一種基于VGR索引結(jié)構(gòu)的K匿名隱私保護(hù)算法的流程示意圖;
[0020]圖2為本發(fā)明實(shí)施例提供的一種網(wǎng)格劃分和VGR索引建立圖不不意圖。
【具體實(shí)施方式】
[0021]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0022]本發(fā)明實(shí)施例提供了一種基于VGR索引結(jié)構(gòu)的K匿名隱私保護(hù)算法,如圖1所示,所述算法包括以下步驟:
[0023]101、由VGR構(gòu)成中間匿名服務(wù)器接收移動(dòng)對(duì)象的查詢請(qǐng)求,根據(jù)所述移動(dòng)對(duì)象的位置計(jì)算所述移動(dòng)對(duì)象所在的網(wǎng)格。
[0024]所述查詢請(qǐng)求中包括移動(dòng)對(duì)象的oid,位置坐標(biāo),以及用于匿名要求K和Area。
[0025]所述VGR包括網(wǎng)格文件、R*樹;所述網(wǎng)格文件中包括Object表和Rvalue表。主要思想是先對(duì)空間進(jìn)行網(wǎng)格劃分,移動(dòng)物體存放在網(wǎng)格中,基于區(qū)域覆蓋的思想,并不是把移動(dòng)物體存放在R*樹的葉子中,而是以一個(gè)網(wǎng)格為單位作為R*樹葉子中的最小條目。圖2所示左邊為對(duì)移動(dòng)對(duì)象所在的區(qū)域進(jìn)行網(wǎng)格劃分示意圖,圖中數(shù)字為網(wǎng)格的唯一標(biāo)識(shí),黑色點(diǎn)代表移動(dòng)對(duì)象,Q對(duì)應(yīng)的黑色點(diǎn)代表發(fā)起查詢的移動(dòng)對(duì)象。右邊展示了 VGR索引結(jié)構(gòu)圖。該索引是基于圖左邊的網(wǎng)格劃分和移動(dòng)對(duì)象所建立的。
[0026]網(wǎng)格的劃分是固定的,每個(gè)網(wǎng)格都有固定的大小和坐標(biāo)值,移動(dòng)對(duì)象與網(wǎng)格的關(guān)系是匿名服務(wù)器通過(guò)計(jì)算得出的。中間匿名服務(wù)器自身預(yù)先設(shè)定查詢空間的每個(gè)網(wǎng)格單元大小(hX, hY)與 divX。
[0027]移動(dòng)對(duì)象的位置坐標(biāo)oxy、網(wǎng)格id(即cid)與網(wǎng)格的映射關(guān)系由下面三個(gè)公式給出。
[0028]cid = (int)x/hX+(int)y/hY*divX+l (I)
[0029]Px= (int) x/hX (2)
[0030]py= (int)y/hY (3)
[0031]其中,cid為移動(dòng)對(duì)象所對(duì)應(yīng)的網(wǎng)格id,位置坐標(biāo)oxy的坐標(biāo)值(X,y)表示移動(dòng)對(duì)象的位置,坐標(biāo)(px,py)是網(wǎng)格坐標(biāo),divX表示網(wǎng)格文件在水平方向上的劃分個(gè)數(shù),hX和hY表示網(wǎng)格的水平寬度和垂直高度。由此給定一個(gè)移動(dòng)點(diǎn)(?,%)能快速定位到其所在網(wǎng)格。
[0032]所述中間匿名服務(wù)器計(jì)算出該移動(dòng)對(duì)象對(duì)應(yīng)的網(wǎng)格后,中間匿名服務(wù)器就會(huì)把該移動(dòng)對(duì)象的oid和位置坐標(biāo)及所在網(wǎng)格都保存在Object表。
[0033]所述Object表是一個(gè)哈希表,用來(lái)存儲(chǔ)移動(dòng)對(duì)象的基本信息,所述Object表中存儲(chǔ)有〈oid, cid, oxy>,其中oid是移動(dòng)對(duì)象的唯一標(biāo)識(shí),是哈希表Object表的鍵值,cid是劃分的網(wǎng)格的唯一標(biāo)識(shí),oxy是移動(dòng)對(duì)象的位置信息。
[0034]所述Rvalue表是一個(gè)哈希表,用來(lái)存放R*葉子結(jié)點(diǎn)和網(wǎng)格的關(guān)系,數(shù)據(jù)項(xiàng)表示為〈cid, center, oidlist, locate〉,其中cid是網(wǎng)格的唯一標(biāo)識(shí),是哈希表Rvalue表的鍵值,center是網(wǎng)格的中心點(diǎn)位置,locate指針指向該網(wǎng)格所對(duì)應(yīng)的R*樹葉子中的具體一個(gè)條目Entry, oidlist用于存儲(chǔ)位于該網(wǎng)格內(nèi)的移動(dòng)對(duì)象,它保存在一個(gè)平衡二叉樹中。
[0035]R* 樹的條目 Entry 用〈id, mbt, tf_pointcount, parent〉表不,R* 樹的 Node 結(jié)點(diǎn),它有一個(gè)level表示該結(jié)點(diǎn)所在的層,如果level = O,則是葉結(jié)點(diǎn),如果level > O,則是中間結(jié)點(diǎn);區(qū)分葉結(jié)點(diǎn)與中間結(jié)點(diǎn)主要是因?yàn)楹鸵苿?dòng)對(duì)象相關(guān)的信息只保存在葉結(jié)點(diǎn)里,中間結(jié)點(diǎn)只包含有其孩子結(jié)點(diǎn)的信息;通過(guò)判斷一個(gè)結(jié)點(diǎn)是否是葉結(jié)點(diǎn),就可以知道其entry的id代表的含義。葉結(jié)點(diǎn)中的Entry的id表示網(wǎng)格的id,是有意義的id ;中間結(jié)點(diǎn)的Entry的id表示內(nèi)存地址的id,僅僅作為索引用,沒(méi)有實(shí)際意義。
[0036]mbr表示該條目最小邊界矩形,包括該條目所在區(qū)域左下角、右上角2個(gè)點(diǎn)的坐標(biāo)信息;tf_pointcount是統(tǒng)計(jì)該結(jié)點(diǎn)下的所有的網(wǎng)格包含的移動(dòng)點(diǎn)的個(gè)數(shù);parent是指向該條目的父親結(jié)點(diǎn)的指針。
[0037]R* 樹的結(jié)點(diǎn) Node 用〈level,numChildren,mbr, entries, tf_pointcount,parent)表示,level表示結(jié)點(diǎn)的高度,葉子層為O ;numChildren表示該結(jié)點(diǎn)包含條目Entry的個(gè)數(shù);mbr表示該結(jié)點(diǎn)最小邊界矩形,包括該結(jié)點(diǎn)所在區(qū)域左下角、右上角2個(gè)點(diǎn)的坐標(biāo)信息;entries是一個(gè)指針數(shù)組,包含指向該結(jié)點(diǎn)下的各個(gè)條目的相應(yīng)指針;tf_pointcount是統(tǒng)計(jì)該結(jié)點(diǎn)下的所有的網(wǎng)格包含的移動(dòng)點(diǎn)的個(gè)數(shù);par ent是指向該結(jié)點(diǎn)的父親結(jié)點(diǎn)的指針。
[0038]102、根據(jù)所述Rvalue表找到所述網(wǎng)格對(duì)應(yīng)R*樹葉子結(jié)點(diǎn)中的條目Entry。
[0039]103、判斷所述葉子結(jié)點(diǎn)的Entry的面積是否大于等于Area并且所述葉子結(jié)點(diǎn)的Entry包含的移動(dòng)點(diǎn)的個(gè)數(shù)是否大于等于K。
[0040]若是,則進(jìn)行步驟104。
[0041]否則,進(jìn)行步驟105。
[0042]R*樹葉子結(jié)點(diǎn)中的條目Entry用〈id, mbr, tf_pointcount, parent〉表示,葉子結(jié)點(diǎn)中的Entry的id表示網(wǎng)格的id,是有意義的id ;mbr表示該條目最小邊界矩形,包括左下角、右上角2個(gè)點(diǎn)的坐標(biāo)信息;tf_pointcount是統(tǒng)計(jì)該結(jié)點(diǎn)下的所有的網(wǎng)格包含的移動(dòng)點(diǎn)的個(gè)數(shù);parent是指向父親結(jié)點(diǎn)的指針。
[0043]由mbr可以計(jì)算出所述葉子結(jié)點(diǎn)的Entry的面積,由tf_pointcount可知道所述葉子結(jié)點(diǎn)的Entry包含的移動(dòng)點(diǎn)的個(gè)數(shù),這樣就可以判斷所述葉子結(jié)點(diǎn)的Entry的面積是否大于等于Area并且所述葉子結(jié)點(diǎn)的Entry包含的移動(dòng)點(diǎn)的個(gè)數(shù)是否大于等于K。
[0044]104、輸出所述葉子結(jié)點(diǎn)的Entry的mbr,算法結(jié)束。
[0045]105、根據(jù)該結(jié)點(diǎn)的Entry的指向父親結(jié)點(diǎn)的指針找到該結(jié)點(diǎn)的父親結(jié)點(diǎn)。
[0046]若所述葉子結(jié)點(diǎn)的Entry的面積是小于Area并且所述葉子結(jié)點(diǎn)的Entry包含的移動(dòng)點(diǎn)的個(gè)數(shù)小于K,則根據(jù)葉子結(jié)點(diǎn)的Entry的指向父親結(jié)點(diǎn)的指針找到該葉子結(jié)點(diǎn)的父親結(jié)點(diǎn)。
[0047]106、判斷父親結(jié)點(diǎn)的面積是否小于Area或者父親結(jié)點(diǎn)包含移動(dòng)點(diǎn)個(gè)數(shù)是否小于K0
[0048]父親結(jié)點(diǎn)是node 類型的,有 <level,numChildren,mbr, entries, tf_pointcount,parent〉表示,因此,可以通過(guò)mbr得到父親結(jié)點(diǎn)的面積,tf_pointcount得到父親結(jié)點(diǎn)包含的移動(dòng)對(duì)象數(shù)目。
[0049]若是,則重復(fù)步驟105和106,直至父親結(jié)點(diǎn)parentEntry的面積不小于Area且父親結(jié)點(diǎn)包含移動(dòng)點(diǎn)個(gè)數(shù)不小于K,則得到滿足條件的父親結(jié)點(diǎn),進(jìn)行步驟107。
[0050]本結(jié)點(diǎn)的parent是指向該結(jié)點(diǎn)的父親結(jié)點(diǎn)的指針,只要本結(jié)點(diǎn)的面積小于Area或者包含移動(dòng)點(diǎn)個(gè)數(shù)小于K,就根據(jù)本結(jié)點(diǎn)的parent找到本結(jié)點(diǎn)的父親結(jié)點(diǎn),直至父親結(jié)點(diǎn)的parentEntry的面積不小于Area且父親結(jié)點(diǎn)包含移動(dòng)點(diǎn)個(gè)數(shù)不小于K,此時(shí)進(jìn)行步驟107。
[0051]若否,則直接進(jìn)行步驟107。
[0052]107、采取相應(yīng)的策略,得到所述滿足條件的父親結(jié)點(diǎn)的一個(gè)孩子結(jié)點(diǎn)子集CsubSet,使得CsubSet中孩子結(jié)點(diǎn)合并后的mbr面積大于Area且包含的移動(dòng)對(duì)象數(shù)目大于K ;返回所述Csubset中孩子結(jié)點(diǎn)合并后的mbr區(qū)域;算法結(jié)束。
[0053]父親結(jié)點(diǎn)的孩子數(shù)與面積可能遠(yuǎn)高于用戶提交的匿名要求(Area和K),直接返回該滿足條件的父親結(jié)點(diǎn),會(huì)給后續(xù)處理帶來(lái)額外負(fù)擔(dān),所以并不是直接返回該父親結(jié)點(diǎn),而是通過(guò)其孩子的逐漸合并來(lái)盡量縮小要返回的匿名框。最后返回合并后的孩子結(jié)點(diǎn)。這樣就能在滿足匿名要求的條件下,返回較小的匿名框。
[0054]可選的,有4種合并策略:按照條目包含的移動(dòng)點(diǎn)個(gè)數(shù)遞增的策略(即按照包含移動(dòng)點(diǎn)個(gè)數(shù)遞增的順序逐個(gè)合并),按照條目包含的移動(dòng)點(diǎn)個(gè)數(shù)的貪心策略(即先合并那些包含移動(dòng)對(duì)象個(gè)數(shù)與剩余K值的差最少的條目,剩余K值就是K與當(dāng)前匿名區(qū)中移動(dòng)對(duì)象個(gè)數(shù)的差),按照條目的面積遞增策略(即按照條目的面積遞增的順序逐個(gè)合并),按照條目的面積的貪心策略(即按照增加一個(gè)條目后擴(kuò)展面積最小的順序合并)。
[0055]這樣根據(jù)上述的算法步驟,就能夠找到滿足匿名條件的區(qū)域,發(fā)送給后臺(tái)查詢服務(wù)器,由于是發(fā)送的一片區(qū)域,后臺(tái)查詢服務(wù)器不知道具體是哪個(gè)移動(dòng)對(duì)象發(fā)起的查詢,從而保護(hù)了查詢對(duì)象。
[0056]當(dāng)然,當(dāng)K小于系統(tǒng)中移動(dòng)對(duì)象的總數(shù)或者Area小于所有網(wǎng)格所對(duì)應(yīng)的空間,中間匿名服務(wù)器就無(wú)法獲得滿足匿名條件的網(wǎng)格區(qū)域,此時(shí)本算法無(wú)解。
[0057]通過(guò)試驗(yàn)對(duì)比得出:VGR索引結(jié)構(gòu)K匿名算法比Casper算法的查詢響應(yīng)時(shí)間最快能達(dá)到一個(gè)數(shù)量級(jí),且在匿名K值較小時(shí),VGR索引結(jié)構(gòu)K匿名算法的匿名結(jié)果比Casper算法減少了 4/5,大大減少了通信開銷和后臺(tái)資源的占用。這種精簡(jiǎn)的滿足要求的匿名區(qū)是由于R*樹本身存儲(chǔ)結(jié)構(gòu)的高空間利用率決定的。且步驟107進(jìn)一步簡(jiǎn)化了匿名區(qū)域,冗余率相對(duì)更低,這樣不僅減少了傳輸時(shí)的通信代價(jià),后臺(tái)服務(wù)器的開銷也大大降低,提高整體性倉(cāng)泛。
[0058]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種基于虛擬網(wǎng)格R*樹VGR索引結(jié)構(gòu)的K匿名隱私保護(hù)算法,其特征在于,包括: 101、由VGR構(gòu)成的中間匿名服務(wù)器接收移動(dòng)對(duì)象的查詢請(qǐng)求,根據(jù)所述移動(dòng)對(duì)象的位置計(jì)算所述移動(dòng)對(duì)象所在的網(wǎng)格;所述VGR包括網(wǎng)格文件、R*樹;所述網(wǎng)格文件中包括Object表和Rvalue表;所述查詢請(qǐng)求中包括移動(dòng)對(duì)象的oid,位置坐標(biāo),以及用于匿名要求K 和 Area ; 102、根據(jù)所述Rvalue表找到所述網(wǎng)格對(duì)應(yīng)R*樹葉子結(jié)點(diǎn)中的條目Entry; 103、判斷所述葉子結(jié)點(diǎn)的Entry的面積是否大于等于Area并且所述葉子結(jié)點(diǎn)的Entry包含的移動(dòng)點(diǎn)的個(gè)數(shù)是否大于等于K ; 若是,則進(jìn)行步驟104; 否則,進(jìn)行步驟105; 104、輸出所述葉子結(jié)點(diǎn)的Entry的mbr,算法結(jié)束; 105、根據(jù)該結(jié)點(diǎn)的Entry中指向父親結(jié)點(diǎn)的指針找到所述葉子結(jié)點(diǎn)的父親結(jié)點(diǎn); 106、判斷父親結(jié)點(diǎn)的面積是否小于Area或者父親結(jié)點(diǎn)包含移動(dòng)點(diǎn)個(gè)數(shù)是否小于K; 若是,則重復(fù)步驟105和106,直至父親結(jié)點(diǎn)parentEntry的面積不小于Area且父親結(jié)點(diǎn)包含移動(dòng)點(diǎn)個(gè)數(shù)不小于K,則得到滿足條件的父親結(jié)點(diǎn),進(jìn)行步驟107 ; 若否,則直接進(jìn)行步驟107; 107、采取相應(yīng)的策略,得到所述滿足條件的父親結(jié)點(diǎn)的一個(gè)孩子結(jié)點(diǎn)子集CsubSet,使得CsubSet中孩子結(jié)點(diǎn)合并后的mbr面積大于Area且包含的移動(dòng)對(duì)象數(shù)目大于K ;返回所述Csubset中孩子結(jié)點(diǎn)合并后的mbr ;算法結(jié)束。
2.根據(jù)權(quán)利要求1所述的算法,其特征在于, 所述Object表是一個(gè)哈希表,用來(lái)存儲(chǔ)移動(dòng)對(duì)象的基本信息,所述Object表中存儲(chǔ)有〈oid, cid, oxy>,其中oid是移動(dòng)對(duì)象的唯一標(biāo)識(shí),是哈希表Object表的鍵值,cid是劃分的網(wǎng)格的唯一標(biāo)識(shí),oxy是移動(dòng)對(duì)象的位置信息; 所述Rvalue表是一個(gè)哈希表,用來(lái)存放R*葉子結(jié)點(diǎn)和網(wǎng)格的關(guān)系,數(shù)據(jù)項(xiàng)表示為〈cid, center, oidlist, locate〉,其中cid是網(wǎng)格的唯一標(biāo)識(shí),是哈希表Rvalue表的鍵值,center是網(wǎng)格的中心點(diǎn)位置,locate指針指向該網(wǎng)格所對(duì)應(yīng)的R*樹葉子中的具體一個(gè)條目Entry, oidlist用于存儲(chǔ)位于該網(wǎng)格內(nèi)的移動(dòng)對(duì)象,它保存在一個(gè)平衡二叉樹中; R*樹的條目Entry用〈id, mbr, tf_pointcount, parent〉表示,mbr表示該條目最小邊界矩形包括該條目所在區(qū)域左下角、右上角2個(gè)點(diǎn)的坐標(biāo)信息;tf_pointcount是統(tǒng)計(jì)該結(jié)點(diǎn)下的所有的網(wǎng)格包含的移動(dòng)點(diǎn)的個(gè)數(shù);parent是指向該條目的父親結(jié)點(diǎn)的指針;
R氺樹的結(jié)點(diǎn) Node 用〈level, numChildren, mbr, entries, tf_pointcount, parent)表示,level表示結(jié)點(diǎn)的高度,葉子層為O ;numChildren表示該結(jié)點(diǎn)包含條目Entry的個(gè)數(shù);mbr表示該結(jié)點(diǎn)的最小邊界矩形,包括該結(jié)點(diǎn)所在區(qū)域左下角、右上角2個(gè)點(diǎn)的坐標(biāo)信息;entries是一個(gè)指針數(shù)組,包含指向該結(jié)點(diǎn)下的各個(gè)條目的相應(yīng)指針;tf_pointcount是統(tǒng)計(jì)該結(jié)點(diǎn)下的所有的網(wǎng)格包含的移動(dòng)點(diǎn)的個(gè)數(shù);parent是指向該結(jié)點(diǎn)的父親結(jié)點(diǎn)的指針。
3.根據(jù)權(quán)利要求1所述的算法,其特征在于,所述相應(yīng)的策略包括:按照條目包含的移動(dòng)點(diǎn)個(gè)數(shù)遞增的策略;按照條目包含的移動(dòng)點(diǎn)個(gè)數(shù)的貪心策略;按照條目的面積遞增策略;按照條目的面積的貪心策略。
【文檔編號(hào)】G06F21/60GK104199883SQ201410418141
【公開日】2014年12月10日 申請(qǐng)日期:2014年8月19日 優(yōu)先權(quán)日:2014年8月19日
【發(fā)明者】王波濤, 王國(guó)仁, 唐芳, 常立東 申請(qǐng)人:東北大學(xué)