一種針對活動軌跡的高效查詢方法
【專利摘要】本發(fā)明公開了一種針對活動軌跡的高效查詢方法,提供了兩種對于軌跡數(shù)據(jù)庫的高效的相似性查詢方法:活動軌跡相似性查詢和有序活動軌跡相似性查詢,同時也提出新的網(wǎng)格索引結(jié)構(gòu),即活動軌跡網(wǎng)格索引,本方法具有高效性及可擴展性,把地理距離和活動匹配都融合到相似性測量中,可以向用戶返回更多的結(jié)果,具備更有效的可應(yīng)用性和現(xiàn)實意義。
【專利說明】
一種針對活動軌跡的高效查詢方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及數(shù)據(jù)庫、數(shù)據(jù)分析、數(shù)據(jù)挖掘、軌跡數(shù)據(jù)分析、軌跡數(shù)據(jù)挖掘領(lǐng)域,特別 是涉及一種針對活動軌跡的高效查詢方法。
【背景技術(shù)】
[0002] 在傳感技術(shù)、具備GPS功能的移動設(shè)備以及無線網(wǎng)絡(luò)迅速發(fā)展的驅(qū)動下,產(chǎn)生了大 量描述移動對象的運動歷史的數(shù)據(jù),即軌跡。非常多的應(yīng)用領(lǐng)域都會產(chǎn)生并管理這些數(shù)據(jù), 這使得前一階段大量研究工作都集中在各個層面的軌跡數(shù)據(jù)分析上,其中具備代表性的工 作有設(shè)計優(yōu)秀的軌跡索引結(jié)構(gòu)、高效的軌跡查詢程序、不確定性管理、軌跡挖掘。
[0003] 盡管這些工作已近取得了卓越的成果,但它們都集中于軌跡的時空特性。而且軌 跡常常被描述為在二維或三維空間的一串由時間戳標(biāo)記的地理位置,這意味著對軌跡數(shù)據(jù) 庫來說,時空特性非常重要。然而,近年來,基于位置的網(wǎng)絡(luò)應(yīng)用非常熱門,比如在線記錄服 務(wù)(例如Foursquare),位置或路線分享(例如Facebook Place、Bikely)和帶位置標(biāo)簽的媒 體分享(例如Flicker)。這些軌跡數(shù)據(jù)通過將位置和語義進(jìn)行聯(lián)系來重新定義并充實軌跡 數(shù)據(jù)庫。從這些應(yīng)用產(chǎn)生的數(shù)據(jù)我們不僅可以知道傳統(tǒng)軌跡數(shù)據(jù)庫中的用戶在什么時間到 了什么地方,而且可以通過與位置關(guān)聯(lián)的多媒體內(nèi)容中提取用戶的活動信息。
[0004]我們由軌跡數(shù)據(jù)來表示這種新型的包含在特殊地點的用戶活動信息的軌跡數(shù)據(jù), 即軌跡數(shù)據(jù)中每個地方都和用戶所做的一系列活動(可能沒有)相聯(lián)系。
[0005] 由于活動軌跡變得無處不在而且仍然在快速增長,毫無疑問,分析這些軌跡數(shù)據(jù) 非常重要而且將會引出許多有趣的發(fā)現(xiàn)。由于軌跡數(shù)據(jù)庫中的相似性查詢?nèi)匀挥袕V闊的應(yīng) 用空間,所以人們長時間地研究它并且取得了許多成果,但這些成果并不適用于軌跡數(shù)據(jù), 因為它們并不考慮用戶的活動。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明主要解決的技術(shù)問題是提供一種針對活動軌跡的高效查詢方法,具有可靠 性高、準(zhǔn)確性強等優(yōu)點,同時在數(shù)據(jù)庫、數(shù)據(jù)分析、數(shù)據(jù)挖掘、軌跡數(shù)據(jù)分析、軌跡數(shù)據(jù)挖掘 的應(yīng)用及普及上有著廣泛的市場前景。
[0007] 為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:
[0008] 提供一種針對活動軌跡的高效查詢方法,其步驟包括:
[0009] 1)構(gòu)造活動軌跡網(wǎng)格索引GAT:將待查詢的數(shù)據(jù)集所在的空間區(qū)域劃分為若干單 元格,并且依次構(gòu)造1~(1-3、(1-2、(1-1、(1層網(wǎng)格,使得單元格具有層次性,(1為自然數(shù),然后利 用空間填充曲線賦予每個單元格一個數(shù)字的ID號,使得多位空間的單元格與由整數(shù)域的一 維數(shù)字組成的ID號進(jìn)行匹配;
[0010]在d層網(wǎng)格中為數(shù)據(jù)集中的每個活動α構(gòu)造一個用于識別出包含目標(biāo)查詢活動的 區(qū)域的分層單元逆序表,然后聚集d-Ι層至1層網(wǎng)格中屬于同一個父單元格的單元格,并且 為每一層網(wǎng)格構(gòu)造構(gòu)造不同級別h的分層單元逆序表,這樣就為每個活動都構(gòu)造了一個分 層單元逆序表HICL,其中,d層至1層網(wǎng)格所對應(yīng)的分層單元逆序表的級別h依次遞增,級別 最低的單元為葉子單元;
[0011] 為在d層網(wǎng)格的每個單元格中的每個活動α構(gòu)造一個逆序活動表,所述逆序活動表 提供了在軌跡級別上的活動信息,所述逆序活動表1TL包括單元格中活動α的ID列表,即所 述逆序活動表提供了在單元格中包含活動α的所有軌跡;
[0012] 在主存儲器中構(gòu)造數(shù)據(jù)庫中的每條軌跡Tr的軌跡活動概要TAS,所述軌跡活動概 要利用內(nèi)存空間概括存儲Tr中包含的軌跡,所述軌跡活動概要過濾掉與查詢需求不匹配的 軌跡,且在過濾時不需要在磁盤中檢索出全部的信息;
[0013] 為數(shù)據(jù)庫中的每條軌跡Tr中的每個活動α構(gòu)造一個活動倒排表APL,所述活動倒排 表包含活動*^^軌跡點列表;
[0014] 2)利用活動軌跡相似性查詢ATSQ或者有序活動軌跡相似性查詢0ATSQ方法,對活 動軌跡數(shù)據(jù)庫進(jìn)行相似性查詢。
[0015] 在本發(fā)明一個較佳實施例中,當(dāng)構(gòu)造完分層單元逆序表后,設(shè)置存儲在主存儲器 中的分層單元逆序表的級別范圍,并且設(shè)置存儲在二級存儲器中的分層單元逆序表的級別 范圍,根據(jù)預(yù)設(shè)的存儲預(yù)算Β和活動詞匯表C的基數(shù)來判斷分層單元逆序表的級別h,然后根 據(jù)預(yù)設(shè)的級別范圍將分層單元逆序表分別存放在二級存儲器或主存儲器中,并選擇滿足的 h作為最大級別,把級別高的分層單元逆序表HICL存在主存儲器中,把級別低的分層單元逆 序表存在二級存儲器中。
[0016] 在本發(fā)明一個較佳實施例中,所述逆序活動表不包含每條軌跡上每個點的細(xì)節(jié)信 息,ITL存儲在主存儲器上,當(dāng)存儲器的內(nèi)存不足時,先把所有的單元格分割成大小合適的 分區(qū),然后在二級存儲器中存儲所有的分區(qū),并在每次查詢的時候取出目標(biāo)查詢位置周圍 的分區(qū)存儲到主存儲器中。
[0017] 在本發(fā)明一個較佳實施例中,所述軌跡活動概要過濾掉與查詢需求不匹配的軌跡 的具體步驟包括:在整個數(shù)據(jù)庫中,根據(jù)發(fā)生頻率將詞匯表中的活動進(jìn)行分類,并為這些活 動分配連續(xù)的數(shù)字ID號;把每條軌跡的活動的ID號進(jìn)行分類,計算連續(xù)ID間的缺口,選擇數(shù) 值最大的M-1個缺口作為分隔位置來將每條軌跡Tr的活動劃分成Μ個區(qū)間1 = (1^ 12,...,
Im},使得全部區(qū)間間隔最小化 其中|la|定義為13中最大值ID和最小值ID的 , 差,并根據(jù)內(nèi)存預(yù)算來選擇Μ的值;每個區(qū)間只需要使用8字節(jié)的兩位整數(shù)來存儲,即N條軌 跡總共耗費8MN字節(jié)。
[0018] 在本發(fā)明一個較佳實施例中,所述利用活動軌跡相似性查詢ATSQ對活動軌跡數(shù)據(jù) 庫進(jìn)行相似性查詢的具體步驟包括:
[0019] (a. 1)定義所述活動軌跡相似性查詢ATSQ為:給出一個活動軌跡的集合D、一個隊 列Q和一個正整數(shù)K,活動軌跡相似性查詢ATSQ將返回D和Q中有著數(shù)值最小的最短匹配距離 的K條優(yōu)秀軌跡;
[0020] (a. 2)構(gòu)造活動軌跡相似性查詢ATSQ,對至少含λ條候選者軌跡的集合進(jìn)行檢索, 集合中包括目標(biāo)查詢活動的周邊位置信息和至少一個目標(biāo)查詢活動;
[0021] (a. 3)為所有軌跡記錄目前得到的前k小的最小匹配距離的&和下界距離Dlb,其 中,計算下界距離Dib是用一組有序表〇6118!!(9〇記錄1]1個至今還未訪問過的離91最近的單元 格,使得保持并更新下界距離Dlb,q是Q中的一個目標(biāo)查詢位置,把有序表CellSn( qi)初始化 為空,然后只要從PQ中刪除了一個入口(111乜#,(^111〇4),就把(^1110從(^11~^〇中移 除,并把它的子單元的ID號插入到cells n(qi)中,根據(jù)mdist對cellsn(qi)中的前m個單元格 進(jìn)行升序排序;當(dāng),就安全終止算法,否則將提取更多的候選者并重復(fù)上述步驟;
[0022] (a.4)確認(rèn)每個候選者和目標(biāo)查詢內(nèi)容是否完全匹配,給出一個候選者TreCS,CS 為候選者集合,先檢查候選者的軌跡活動概要TAS是否覆蓋了目標(biāo)查詢所有活動,即 V'<x e € TVU(_rr),然后獲取每個候選者的活動倒排表APL,檢查每個目標(biāo)查詢活 動是否都存在倒排表中,如果都在,則該條軌跡置為有效,否則,把它從候選者軌跡中刪除; [0023] (a.5)為每個有效候選者計算最短匹配距離并插入到結(jié)果集中。
[0024]在本發(fā)明一個較佳實施例中,所述計算下界距離Dlb的具體步驟包括:
[0025] 設(shè)置輸入?yún)?shù)變量Q,ce 11 sn( qi)和輸出參數(shù)變量為Dib,其中qi e Q;
[0026] 將PQ隊頂?shù)淖钚【嚯x賦值給mdist,將Dib設(shè)置為0;
[0027] 如果。611811(9〇不空,貝11先繼續(xù)對〇611811(9〇中的每個單元進(jìn)行循環(huán)計算,倉1|建一 個滿足公式Pj. Φ =cj. Φ和公式d(qi,pj)=mdist(qi,cj)的點ρ」,ρ· Φ是與p有聯(lián)系的活動 的集合;倉ll建一條軌跡Tri = (pi,p2,…,pm),將Dib+min(DmPm(qi,Tri),d(qi,pm))賦值給Dib; 如果cells n(qi)為空,將Dib+mdist賦值給Dib,其中,(qi,i>i) e Q,Cj為cellsn(qi)中的一個 單元,cj. Φ為與Cj有聯(lián)系的活動的集合。
[0028]在本發(fā)明一個較佳實施例中,利用有序活動軌跡相似性查詢0ATSQ方法對活動軌 跡數(shù)據(jù)庫進(jìn)行相似性查詢的具體步驟包括:
[0029] (b.l)設(shè)置所述有序活動軌跡相似性查詢的定義:當(dāng)給出一個活動軌跡的集合於, 一個隊列Q,一個正整數(shù)k,所述有序活動軌跡相似性查詢將返回2>和〇中有著最小的Dm?(Q, Tr)的k條優(yōu)秀軌跡,D"m(Q,Tr)是Tr到Q的有序最短匹配距離;
[0030] (b. 2)構(gòu)造有序活動軌跡相似性查詢0ATSQ,對至少含λ條候選者軌跡的集合進(jìn)行 檢索,集合中包括目標(biāo)查詢活動的周邊位置信息和至少一個目標(biāo)查詢活動;
[0031] 查閱候選者Tr的APL以找出包含qi. Φ中任意活動的所有的點,只保存這些點中最 小和最大的位置索引,并把它設(shè)置為要查詢的點啦的匹配索引界限祖8((11) = [113,1113],對每 對查詢點的MIBs進(jìn)行比較,如果存在兩個查詢點qi,q jeQ(i<j)滿足MIB(qi).lb>MIB (qj) .ub,就刪除Tr候選者集合中不符合qi-qj順序的匹配的點qi和qj,Lb和Ub分別表示MIB 的下界和上界,,其中,因為每個點除了其位置屬性外,還有一個屬性是該點所在的位置可 以進(jìn)行的活動,所以設(shè)置qi. Φ為點W的活動屬性中含有的活動;
[0032] (b.3)通過最短匹配距離的算法獲得Dmpm,所述Dmpm是取和子軌跡Tr[k,j]之間的最 小點匹配距離;
[0033] (b.4)計算有序最短匹配距離,設(shè)置一個隊列Q: {qi,q2, · . ·,qm}和
[0034] 一個有效的
[0035] 候選者軌跡1>:{?1,?2,.。一}、一個111\11的矩陣6,矩陣6的元素6(1」)(1彡1彡111, 1彡j彡η)代表子隊列Q[1,i]: {qi,q2,…,qi}和子軌跡
[0036] Tr[l,j]: {qi,q2, · · .,qj}之間的有序最短匹配距離0]11。111,6(111,11)就是(>)和1'1'之間的 Dmom信,且
[0038] 在本發(fā)明一個較佳實施例中,所述計算有序最短匹配距離的具體步驟包括:
[0039] 設(shè)置輸入變量隊列Q、候選者Tr、目前為止發(fā)現(xiàn)的第k個最小的Dm?,即設(shè)置輸 出變量0""(〇,1^),并將矩陣中格式為6(0,*)的元素賦值為0;
[0040] 當(dāng)i = (l··· |Q| )時,如果印JM) > 0|._則退出程序重新計算;
[0041] 當(dāng)i = (l…|Q| )、j = (l…|Tr| )時:將G(i, j)的值置為+°°,當(dāng)k=(j…1)時、G(i-1, k)辛+ ,貝lj計算D_(qi,Tr[k,j]),并且根據(jù)公式
更新G( i,j),最終獲得有序最短匹配距離G( | Q |,| Tr |)。
[0042] 在本發(fā)明一個較佳實施例中,所述對至少含λ條候選者軌跡的集合進(jìn)行檢索的具 體步驟包括:
[0043] (&.2.1)用最佳優(yōu)先搜索算法來獲取候選者的集合,用(111虹^,(^111〇4)作為入 口來保持優(yōu)先級隊列PQ,其中,mdist是單元號為cell ID的單元格c到查詢點q的最小距離,q eQ;
[0044] (a.2.2)把所有單元格插入到包含任意目標(biāo)查詢活動的最高級別的分層單元逆序 表,然后重復(fù)地把PQ的入口刪除,即刪除候選者中具有最小的mdist的查詢點q 1;
[0045] (a. 2.3)如果被刪除的入口不是葉子單元,則把它包含有取.?的子單元插回到PQ 中,自動刪除不含要查詢活動的單元,如果被刪除的入口是葉子單元,則檢查該單元的逆序 活動表中是否有活動,并把逆序活動表中的軌跡放到候選者集合CS中。
[0046] 在本發(fā)明一個較佳實施例中,所述計算最短匹配距離的步驟包括:
[0047] (a.5.1)設(shè)置輸入?yún)?shù)變量查詢點q、候選者Tr和輸出變量Dmpm(q,Tr);;
[0048] (a.5.2)對于活動αeq.Φ在軌跡的活動倒排表Tr.APL中的點賦給CP;
[0049] (a.5.3)根據(jù)CP中的點的位置與q之間的距離進(jìn)行分類;
[0050] (a.5.4)初始化用來存儲查詢關(guān)鍵詞的每個子集的當(dāng)前最短匹配距離的哈希表
[0051 ] (a. 5.5)當(dāng)點 peCP 時:
[0052] (a. 5.5.1)如果根據(jù)q. Φ獲得哈希表中與關(guān)鍵字集合相關(guān)的最小匹配距離 Φ!且:??. Φ]小于等于P和q之間的最短匹配距離d(p,q),貝丨J結(jié)束計算,否則,將ρ · Φ門 q. Φ的值賦給Ρ. Φ',初始化一個先進(jìn)先出隊列X來存儲P · Φ'的子集,將Ρ. Φ '添加到先進(jìn) 先出隊列中,從L隊列中刪除隊頭元素,并將刪除后的隊列賦值給ks;
[0053] (8.5.5.2)當(dāng)1^的值不為空時:如果;?^/沿5心7(知)且:?€[^^]:2 4(|?4),則跳出本 層循環(huán),繼續(xù)下一層循環(huán),否則,將d(p,q)}賦值給哈希映射函數(shù)將ks的所有大小為 ks |-1的子集放進(jìn)先進(jìn)先出隊列I,如果s是哈希表Η的一個鍵、ks不含于8且8不含于ks則 時,將ks U s賦值給key,將[.小f :?取s]}賦if[給咒_
[0054] (a ·5 ·6)得到最短匹配趴離~^(免·?>)=賢[中Φ]。
[0055] 本發(fā)明的有益效果是:本方法具有高效性及可擴展性,把地理距離和活動匹配都 融合到相似性測量中,可以向用戶返回更多的結(jié)果,具備更有效的可應(yīng)用性和現(xiàn)實意義。
【附圖說明】
[0056]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于 本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它 的附圖,其中:
[0057]圖1是本發(fā)明的在LA上使用ATSQ時因素 k的影響示意圖;
[0058]圖2是本發(fā)明的在NY上使用ATSQ時因素 k的影響示意圖;
[0059] 圖3是本發(fā)明的在LA上使用0ATSQ時因素 k的影響示意圖;
[0060] 圖4是本發(fā)明的在NY上使用0ATSQ時因素 k的影響示意圖;
[0061 ]圖5是本發(fā)明的在LA上使用ATSQ時因素| Q |的影響示意圖;
[0062]圖6是本發(fā)明的在NY上使用ATSQ時因素|Q|的影響示意圖;
[0063]圖7是本發(fā)明的在LA上使用0ATSQ時因素|Q|的影響示意圖;
[0064]圖8是本發(fā)明的在NY上使用0ATSQ時因素|Q|的影響示意圖;
[0065]圖9是本發(fā)明的在LA上使用ATSQ時因素|q. Φ |的影響示意圖;
[0066]圖10是本發(fā)明的在NY上使用ATSQ時因素|q.? |的影響示意圖;
[0067]圖11是本發(fā)明的在LA上使用0ATSQ時因素|q.? |的影響示意圖;
[0068]圖12是本發(fā)明的在NY上使用0ATSQ時因素|q.? |的影響示意圖;
[0069]圖13是本發(fā)明的在LA上使用ATSQ時因素 S(Q)的影響示意圖;
[0070]圖14是本發(fā)明的在NY上使用ATSQ時因素 S(Q)的影響示意圖;
[0071]圖15是本發(fā)明的在LA上使用0ATSQ時因素 S(Q)的影響示意圖;
[0072]圖16是本發(fā)明的在ΝΥ上使用0ATSQ時因素 S(Q)的影響示意圖;
[0073]圖17是本發(fā)明的在LA上使用0ATSQ時因素|D|的影響示意圖;
[0074]圖18是本發(fā)明的在NY上使用0ATSQ時因素|D|的影響示意圖;
[0075]圖19是本發(fā)明的在LA上使用0ATSQ時因素分割粒度的影響示意圖;
[0076]圖20是本發(fā)明的在NY上使用0ATSQ時因素分割粒度的影響示意圖。
【具體實施方式】
[0077]下面將對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施 例僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通 技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護(hù)的范 圍。
[0078]請參閱圖1-20,本發(fā)明實施例包括:
[0079] -種針對活動軌跡的高效查詢方法,提出了兩種對于軌跡數(shù)據(jù)庫的
[0080] 高效的相
[0081 ] 似性查詢方法:活動軌跡相似性查詢(Activity Trajectory Simility Query, ATSQ,下文均以ATSQ表示)和有序活動軌跡相似性查詢(Order-sensitive Activity Trajectory Simility Query,0ATSQ,下文均以0ATSQ表不)。
[0082]同時,也提出新的網(wǎng)格索引結(jié)構(gòu)--活動軌跡網(wǎng)格索引(Gridindex of Activity Trajectories,GAT),它可以分層地組織軌跡段和相關(guān)活動信息;另外,提出由候選者檢索 和確認(rèn)過程組成的最佳優(yōu)先搜索架構(gòu)。
[0083] GAT的構(gòu)造方式是:首先,我們通過將整個空間區(qū)域劃分為的方格單元構(gòu)造 d層網(wǎng) 格,空間區(qū)域就是指我們要查詢的數(shù)據(jù)集所在的空間區(qū)域,例如,要查詢的軌跡是蘇州出租 車的運行軌跡,那么空間區(qū)域就指蘇州。
[0084] 然后按照類似的方式進(jìn)一步依次構(gòu)造(d-Ι)層網(wǎng)格,(d-2)網(wǎng)格,一直到1層網(wǎng)格, 這使得單元格具有層次性。然后使用空間填充曲線為每個單元格設(shè)計一個獨有的數(shù)字ID 號,這就將多位空間的單元格與整數(shù)域的一維數(shù)字匹配起來。此外,GAT主要由以下四要素 組成:
[0085] (1)分層單元逆序表(Hierarchical Inverted Cell List,HICL)。
[0086] 為了識別出包含要查詢的活動的區(qū)域,我們首先在d層網(wǎng)格中為數(shù)據(jù)集中的每個 活動構(gòu)造一個單元逆序表;之后,我們聚集(d-Ι)層網(wǎng)格中屬于同一個父單元格的單元格構(gòu) 造級別更高的單元逆序表;重復(fù)以上過程一直到1層網(wǎng)格。最終,我們?yōu)槊總€活動都構(gòu)造了 一個分層的單元逆序表。接下來,我們討論該結(jié)構(gòu)的存儲。
[0087] 因為活動的數(shù)量非常多,在主存儲其中存儲全部的HICL是不可行的。在這種情況 下,我們只能把級別高的HICL存在主存儲器中而把級別低的存在二級存儲器中。級別判定 是根據(jù)給出的存儲預(yù)算B和活動詞匯表C的基數(shù),我們來評估級別h,級別更高的將被放到二 級存儲器中,并選擇滿足的h作為最大級別,例如:。
[0088] (2)逆序活動表(Inverted Trajectory List, ITL)。
[0089] 在d層網(wǎng)格的每個單元格中,我們?yōu)槠渲械拿總€活動α構(gòu)造一個逆序活動表,即包 含了單元格中α的活動的ID列表。該結(jié)構(gòu)提供了在軌跡級別上的活動信息,如:在單元格都 有哪些軌跡包含了α。由于不是包含每條軌跡上每個點的細(xì)節(jié)信息,相比于原始數(shù)據(jù)集ITL 的規(guī)模更小。因此,在大多情況下,ITL都可以在主流服務(wù)器的主存儲器上存儲。不僅如此, 在內(nèi)存有限的情況下,我們可以把所有的單元格分割成大小合適的分區(qū),在二級存儲器中 存儲所有的分區(qū),并在每次查詢的時候取出要查詢的位置附近的分區(qū)存儲到主存儲器中。
[0090] (3)軌跡活動概要(Trajectory Activity Sketch,TAS)〇
[0091] 對數(shù)據(jù)庫中的每條軌跡Tr,我們在主存儲器中構(gòu)造它的活動概要。活動概要通過 用比較小的內(nèi)存空間概括存儲Tr中包含的軌跡。該數(shù)據(jù)結(jié)構(gòu)無需從磁盤中檢索全部的細(xì)節(jié) 信息就可以迅速過濾掉與查詢需求不匹配的軌跡。
[0092] 為了達(dá)到這個目的,我們把整個數(shù)據(jù)庫中根據(jù)發(fā)生頻率將詞匯表中的活動分類, 并為這些活動分配連續(xù)的數(shù)字ID號。我們將每條軌跡Tr的活動劃分成Μ個區(qū)間,1 = (1^ 12, . . .,Im},這樣就可以使全部區(qū)間間隔最小化,如Σρ?Ι1」其中| Ia|定義為la中最大和最 f 小的ID的差。這樣就可以盡可能壓縮區(qū)間使得簡化效果最大化。我們根據(jù)內(nèi)存預(yù)算來選擇Μ 的值。選擇較大的Μ值(即,更多區(qū)間)是為了使簡化效果更好。每個區(qū)間只需要兩位整數(shù)來 存儲(將使用8字節(jié)),因此,N條軌跡總共耗費8MN字節(jié)。
[0093] 為了找出想要的部分,我們首先把每條軌跡的活動ID號進(jìn)行分類,然后計算連續(xù) ID間的缺口,最后選擇最大的M-1個缺口作為分隔位置來將所有活動分成Μ個區(qū)間。不難證 明這是最理想的分割,因為用分割點(用缺口 g')而不是點(用卻空g)重定位將導(dǎo)致區(qū)間的 總規(guī)模增加 g-g'。
[0094] (4)活動倒排表(Activity Posting List,APL)〇
[0095] 對數(shù)據(jù)庫中的每條軌跡Tr,我們?yōu)門r中的每個活動α構(gòu)造一個活動倒排表,即包含 α的軌跡點列表。由于該數(shù)據(jù)結(jié)構(gòu)的大量數(shù)據(jù)需求,我們將它存儲在磁盤中,并且只有當(dāng)需 要計算查詢距離時才取出。
[0096] 這些準(zhǔn)備工作完成后,為了對活動軌跡數(shù)據(jù)庫進(jìn)行高效的相似性查詢,我們先提 出搜索方法。
[0097] 首先,我們了解一下該算法中的一個重要概念:活動軌跡相似性查詢(ATSQ)。其定 義是給出一個活動軌跡的集合恐,一個隊列Q,一個正整數(shù)k,ATSQ將返回2)與Q有著最小的最 短匹配距離的k條優(yōu)秀軌跡。
[0098] 搜索算法的基本結(jié)構(gòu)如下:第一,對至少含λ條候選者軌跡的集合進(jìn)行檢索,集合 中包含靠近要查詢位置的地方和至少一個要查詢的活動。第二,確認(rèn)每個候選者要查詢的是 否完全匹配。最后,為每個有效候選者計算最短匹配距離并插入到結(jié)果集中。在這個過程中, 為所有"看不見的"軌跡記錄目前為止得到的最小的k個小匹配距離(ΜΜ_??.Ιπ)和下屆距離 (Dlb)。只要,就立即安全終止算法,因為所有這些"看不見的"軌跡都不可能成為 前k條結(jié)果。否則我們將拿來更多的候選者并重復(fù)上述過程。該算法中有以下四處關(guān)鍵點:
[0099] (1)候選者檢索。
[0100] 我們用最佳優(yōu)先搜索算法來獲取候選者集合。特別地,用(mdist,cellID,q)作為 入口來保持優(yōu)先級隊列(piorityqueue,PQ),其中mdist是單元號為〇61110的單元格〇到查 詢點qeQ的最小距離。檢索過程從把所有單元格插入到包含任意要查詢的活動的HICL的最 高級。然后和最佳優(yōu)先搜索相似,算法重復(fù)性地把PQ的入口刪除,即刪除關(guān)于一些查詢點 具有最小的mdist的候選者。如果它不是葉子單元(HICL中的最低級的單元),把它包含有 q: · Φ的孩子單元插回到PQ中。這樣,不含要查詢活動的單元將被自動刪除。一旦被刪除的 入口是葉子單元,就檢查該單元的ITL(如果存在)q中是否有活動并把ITL中的軌跡放到候 選者集合CS中。
[0101] (2)計算下界距離。
[0102] 為了保持并更新下界距離Dlb,用一組有序表cellSn(qi)記錄m個至今還未訪問過 的離最近的單元格。首先,把列表初始化為空。然后無論何時從PQ中刪除了一個入口 (mdist,cell ID,q),我們就先把cell ID從cel lsn(qi)中移除,并把它的子單元的ID號插入到 cellsn(qi)中。cellsn(qi)中的單元格可以根據(jù)它們的mdist進(jìn)行升序排序,而且只使用頭m 個單元。算法1講述了如何使用這些單元來得到更嚴(yán)格的下界距離,具體如下:
[0105] (3)確認(rèn)候選者。
[0106] 給出一個候選者Tr e CS,我們先檢查它的TAS是否覆蓋了要查詢的所有活動,即 Va e ρ.Φ?扣e ΓΑ?(τν)。顯然,這可能產(chǎn)生假陽性結(jié)果,g卩TAS覆蓋了查詢活動但軌跡卻 不正確。但它可以確保沒有漏報。
[0107] 為進(jìn)一步評估假陽性結(jié)果,我們獲取每個候選者的活動倒排表(Activity Posting List,APL)來檢查每個要查詢的活動是否都存在倒排表。如果是,該條軌跡置為有 效;否則,把它從候選者軌跡中刪除。
[0108] (4)計算最短匹配距離。
[0109] 提出一個更智能且更高效的算法2來計算最短匹配距離,如下:輸入:查詢點q,候 選者Tr
[0110] 輸出:D聊(q,Tr)
[0111] 對于aeq. Φ在Tr.APL中的點賦給CP;
[0112] 根據(jù)和q之間的距離對CP中的點進(jìn)行分類;
[0113] 初始化哈希表況來存儲查詢關(guān)鍵詞的每個子集的當(dāng)前最短匹配距離;
[0116] 有時候用戶可能對活動順序和要查詢的相同的軌跡更感興趣,因此,我們把查詢 方法擴展成有序查詢方法。該方法主要有以下三大部分內(nèi)容。
[0117] (1)有序相似性查詢。
[0118] 有序活動軌跡相似性查詢(0ATSQ)。其定義是給出一個活動軌跡的集合U,一個隊 列Q,一個正整數(shù)k,0ATSQ將返回D與Q有著最小的D m?( Q,Tr)的k條優(yōu)秀軌跡。
[0119] (2)重新檢索和確認(rèn)報考者。
[0120] 我們用最短匹配距離作為有序最短匹配距離的下界,因此,我們?nèi)匀徊捎弥爸v 述的查詢算法中檢索候選者和確認(rèn)候選者的方法。然而,對0ATSQ來說,由于額外的順序約 束,這種方法得到的候選者結(jié)果可能不是有序的匹配結(jié)果。因此我們在此之后進(jìn)一步確認(rèn) 候選者。
[0121] 最后,為每個要查詢的點qi,我們查閱候選者Tr的APL,來找出包含qi · Φ中任意活 動的所有的點。然后只保存這些點中最小和最大的位置索引,把它叫做的匹配索引界限, 用1〇8^0 = [113,1113]。最后我們對沒對查詢點的1188進(jìn)行比較。如果這兒存在兩個查詢點 qi,qjeQ(i<j)滿足MIB(qi).lb>MIB(qj).ub,就把Tr候選者集合中刪除因為匹配的點q i和 Qj不符合qi-qj的順序。
[0122] (3)計算有序最短匹配距離。
[0123] 我們用動態(tài)規(guī)劃提出了更高效的計算方法。給出一個隊列Q: {qi,q2, ...,qm}和一 個有效的候選者軌跡Tr: {P1,p2,. . .,pm},我們定義一個m Xη矩陣G,它的元素 G( i,j) (1彡i 彡m,1彡j彡η)代表子隊列Q[1,i]: {qi,q2,…,qi}和子軌跡Tr[l,j]: {ρι,ρ2,…,qj}之間的 D_,G (m,η)就是Q和Tr之間的D_值,且
[0125] 其中Dmpm是qdP子軌跡Tr[k,j]之間的最小點匹配距離??梢酝ㄟ^查詢方法中(4) 中的最短匹配距離算法計算得到。
[0126] 計算過程如下所示:
[0129] 所述針對活動軌跡的高效查詢方法,把地理距離和活動匹配都融合到相似性測量 中,這樣我們就可以向用戶返回更多的結(jié)果,例如目的地建議和旅行計劃。也就是說,具備 更有效的可應(yīng)用性和現(xiàn)實意義。
[0130] 此外本方法具有高效性及可擴展性,基于真實的軌跡數(shù)據(jù)庫(Foursuuare分別在 Los Angeles(LA)和New York(NY)的在線搜索記錄,基本情況如表1)進(jìn)行了廣泛的實驗研 究,并把我們的算法和三種基準(zhǔn)算法(基于逆序表(Inverted List,IL)的算法,基于R樹(R-tree,RT)的算法,基于IR樹(IR-tree,IRT)的算法)都在不考慮順序和有序的情況下進(jìn)行了 性能比較以及內(nèi)存消耗評估。對比數(shù)據(jù)庫狀態(tài)如表1所示:
[0132]對比參數(shù)值默認(rèn)設(shè)置如表2所示:
[0134] 具體影響因素如下:
[0135] (l)k 的影響
[0136] k是返回結(jié)果的軌跡的條數(shù)。本方法提出的索引結(jié)構(gòu)一一GAT和其他三種基本算法 的索引相比較,其運行時間隨k的不同的變化如圖1所示。從圖1中可以看出,結(jié)果如下:
[0137] A. GAT比E快至少一個數(shù)量級,比RT和IRT快至少4-5倍;
[0138] B.由于IL是找出和要查詢的活動相匹配所有的候選者軌跡然后計算所有候選者 的匹
[0139] 配距離,所以對所有的k值它的運行時間都一樣,而其他三種方法的運行時間隨k 值增加而增加;
[0140] C.盡管NY數(shù)據(jù)集的軌跡數(shù)量更多,除了RT外的所有算法在NY上的運行時間都比LA 短。
[0141] (2)|Q| 的影響
[0142] |Q|為要查詢的位置的數(shù)量。各查詢算法隨著|Q|的不同其性能如圖2所示。從圖2 中可以看出:
[0143] A.我們所提出的方法比其他的基準(zhǔn)方法性能都好;
[0144] B.隨著|Q|的增加,RT,IRT和GAT都會花費更多時間;
[0145] C.在不考慮順序和有序情況下,IL的性能很不同,在不考慮順序的情況下,IL隨著 Q |的增加運行時間變得更短,但在有序時,IL隨著| Q |的增加運行時間卻變得更長。
[0146] (3)|q.cD| 的影響
[0147] |q.?|為每個要查詢的點的活動數(shù)量。實驗結(jié)果如圖3所示。從圖3中可以看出:除 了RT之外的其他方法隨著|q.?|的增加,花費的時間都更少。
[0148] (4)S(Q)的影響
[0149] S(Q)為查詢的直徑長,即所有要查詢的點中一對距離最大的點之間的距離,也就 是說,
。實驗結(jié)果如圖4所示,從中我們可以看到:IL不受參數(shù)δ (Q)變化的影響,而其他三種方法都隨著WQ)的增加效率變得更低。
[0150] (5)_的影響
[0151] 為評估各算法的可擴展性,我們從NY數(shù)據(jù)集中抽樣取出不同規(guī)模(軌跡數(shù)量不同) 的數(shù)據(jù)集。實驗結(jié)果如圖5所示,從中可以看出:
[0152] A.四種方法的時間花費都隨著數(shù)據(jù)集的規(guī)模增大呈線性或非線性增長;
[0153] B.無論是在不考慮順序還是有序的情況下,我們所提出的方法相比其他方法都有 更好的可擴展性。
[0154] (6)分割粒度的影響。
[0155] 分別將分割粒度設(shè)置為 32X32(d = 5),64X64(d = 6),128X128(d = 7)W&256X 256(d = 8)。我們記錄下使用GAT的ATSQ(不考慮順序)和0ATSQ(有序)的運行時間以及內(nèi)存 開銷(Memory Cost)。實驗結(jié)果如圖6所示,從圖中可以看出:
[0156] A.分割粒度越大,ATSQ和0ATSQ的性能都更好,但是隨著分割粒度增加,尤其是超 過64以后,性能并無明顯提尚;
[0157] B.內(nèi)存開銷隨著分割粒度的增加而增加,但由于我們會把級別d>6的單元格放在 磁盤中,因此分割粒度超過64以后,內(nèi)存開銷的增加更為平緩。
[0158] 以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā) 明說明書內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其它相關(guān)的技術(shù)領(lǐng) 域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【主權(quán)項】
1. 一種針對活動軌跡的高效查詢方法,其特征在于,步驟包括: 1) 構(gòu)造活動軌跡網(wǎng)格索引GAT:將待查詢的數(shù)據(jù)集所在的空間區(qū)域劃分為若干單元格, 并且依次構(gòu)造1-,(1-3、(1-2、(1-1、(1層網(wǎng)格,使得單元格具有層次性,(1為自然數(shù),然后利用空 間填充曲線賦予每個單元格一個數(shù)字的ID號,使得多位空間的單元格與由整數(shù)域的一維數(shù) 字組成的ID號進(jìn)行匹配; 在d層網(wǎng)格中為數(shù)據(jù)集中的每個活動α構(gòu)造一個用于識別出包含目標(biāo)查詢活動的區(qū)域 的分層單元逆序表,然后聚集d-1層至1層網(wǎng)格中屬于同一個父單元格的單元格,并且為每 一層網(wǎng)格構(gòu)造構(gòu)造不同級別h的分層單元逆序表,運樣就為每個活動都構(gòu)造了一個分層單 元逆序表HI化,其中,d層至1層網(wǎng)格所對應(yīng)的分層單元逆序表的級別h依次遞增,級別最低 的單元為葉子單元; 為在d層網(wǎng)格的每個單元格中的每個活動α構(gòu)造一個逆序活動表,所述逆序活動表提供 了在軌跡級別上的活動信息,所述逆序活動表1TL包括單元格中活動α的ID列表,即所述逆 序活動表提供了在單元格中包含活動α的所有軌跡; 在主存儲器中構(gòu)造數(shù)據(jù)庫中的每條軌跡化的軌跡活動概要TAS,所述軌跡活動概要利 用內(nèi)存空間概括存儲化中包含的軌跡,所述軌跡活動概要過濾掉與查詢需求不匹配的軌 跡,且在過濾時不需要在磁盤中檢索出全部的信息; 為數(shù)據(jù)庫中的每條軌跡Tr中的每個活動α構(gòu)造一個活動倒排表APL,所述活動倒排表包 含活動α的軌跡點列表; 2) 利用活動軌跡相似性查詢ATSQ或者有序活動軌跡相似性查詢OATSQ方法,對活動軌 跡數(shù)據(jù)庫進(jìn)行相似性查詢。2. 根據(jù)權(quán)利要求1所述的一種針對活動軌跡的高效查詢方法,其特征在于,當(dāng)構(gòu)造完分 層單元逆序表后,設(shè)置存儲在主存儲器中的分層單元逆序表的級別范圍,并且設(shè)置存儲在 二級存儲器中的分層單元逆序表的級別范圍,根據(jù)預(yù)設(shè)的存儲預(yù)算Β和活動詞匯表C的基數(shù) 來判斷分層單元逆序表的級別h,然后根據(jù)預(yù)設(shè)的級別范圍將分層單元逆序表分別存放在 二級存儲器或主存儲器中,并選擇滿足的h作為最大級別,把級別高的分層單元逆序表HI化 存在主存儲器中,把級別低的分層單元逆序表存在二級存儲器中。3. 根據(jù)權(quán)利要求1所述的一種針對活動軌跡的高效查詢方法,其特征在于,所述逆序活 動表不包含每條軌跡上每個點的細(xì)節(jié)信息,I化存儲在主存儲器上,當(dāng)存儲器的內(nèi)存不足 時,先把所有的單元格分割成大小合適的分區(qū),然后在二級存儲器中存儲所有的分區(qū),并在 每次查詢的時候取出目標(biāo)查詢位置周圍的分區(qū)存儲到主存儲器中。4. 根據(jù)權(quán)利要求1所述的一種針對活動軌跡的高效查詢方法,其特征在于,所述軌跡活 動概要過濾掉與查詢需求不匹配的軌跡的具體步驟包括:在整個數(shù)據(jù)庫中,根據(jù)發(fā)生頻率 將詞匯表中的活動進(jìn)行分類,并為運些活動分配連續(xù)的數(shù)字ID號;把每條軌跡的活動的ID 號進(jìn)行分類,計算連續(xù)ID間的缺口,選擇數(shù)值最大的M-1個缺口作為分隔位置來將每條軌跡 Tr的活動劃分成Μ個區(qū)間1 =山,12,. . .,Im},使得全部區(qū)間間隔最小其中 Ia|定義為la中最大值ID和最小值ID的差,并根據(jù)內(nèi)存預(yù)算來選擇Μ的值;每個區(qū)間只需要使 用8字節(jié)的兩位整數(shù)來存儲,即Ν條軌跡總共耗費8ΜΝ字節(jié)。5. 根據(jù)權(quán)利要求1所述的一種針對活動軌跡的高效查詢方法,其特征在于,所述利用活 動軌跡相似性查詢ATSQ對活動軌跡數(shù)據(jù)庫進(jìn)行相似性查詢的具體步驟包括: (a. 1)定義所述活動軌跡相似性查詢ATSQ為:給出一個活動軌跡的集合D、一個隊列Q和 一個正整數(shù)K,活動軌跡相似性查詢ATSQ將返回D和Q中有著數(shù)值最小的最短匹配距離的K條 優(yōu)秀軌跡; (a. 2)構(gòu)造活動軌跡相似性查詢ATSQ,對至少含λ條候選者軌跡的集合進(jìn)行檢索,集合 中包括目標(biāo)查詢活動的周邊位置信息和至少一個目標(biāo)查詢活動; (a. 3)為所有軌跡記錄目前得到的前k小的最小匹配距離和下界距離化b,其中,計算 下界距離化b是用一組有序表cellsn(qi)記錄m個至今還未訪問過的離qi最近的單元格,使得 保持并更新下界距離化b,q是Q中的一個目標(biāo)查詢位置,把有序表cellsn(qi)初始化為空,然 后只要從PQ中刪除了一個入口(111山3*,061110,9〇,就把061110從06113。^〇中移除,并把 它的子單元的ID號插入到cellsn(qi)中,根據(jù)mdist對cellsn(qi)中的前m個單元格進(jìn)行升 序排序;當(dāng)化。< 1)11,,就安全終止算法,否則將提取更多的候選者并重復(fù)上述步驟; (a. 4)確認(rèn)每個候選者和目標(biāo)查詢內(nèi)容是否完全匹配,給出一個候選者Tr e CS,CS為候 選者集合,先檢查候選者的軌跡活動概要TAS是否覆蓋了目標(biāo)查詢所有活動,即 ¥貨E Q取化助eTAS(Tr),然后獲取每個候選者的活動倒排表APL,檢查每個目標(biāo)查詢活動 是否都存在倒排表中,如果都在,則該條軌跡置為有效,否則,把它從候選者軌跡中刪除; (a.5)為每個有效候選者計算最短匹配距離并插入到結(jié)果集中。6. 根據(jù)權(quán)利要求1所述的一種針對活動軌跡的高效查詢方法,其特征在于,所述計算下 界距離化b的具體步驟包括: 設(shè)置輸入?yún)?shù)變量Q,ce 11 sn (qi)和輸出參數(shù)變量為化b,其中qi e Q; 將PQ隊頂?shù)淖钚【嚯x賦值給mdist,將化b設(shè)置為Ο; 如果cellsn(qi)不空,則先繼續(xù)對cellsn(qi)中的每個單元cj進(jìn)行循環(huán)計算,倉リ建一個 滿足公式Pj.Φ=Cj.Φ和公式d(qi,pj)=mdist(qi,Cj)的點pj,pj.Φ是與p有聯(lián)系的活動的 集合;包I建一條軌跡化i=(pi,P2, . . .,Pm),將Dib+min(Dmpm(qi,T;Ti),d(qi,pm))賦值給Dib;如 果cellsn(qi)為空,將Dib+mdist賦值給Dib,其中,(qi,巫 i)eQ,cj為cellsn(qi)中的一個單 元,Cj. Φ為與Cj有聯(lián)系的活動的集合。7. 根據(jù)權(quán)利要求6所述的一種針對活動軌跡的高效查詢方法,其特征在于,利用有序活 動軌跡相似性查詢OATSQ方法對活動軌跡數(shù)據(jù)庫進(jìn)行相似性查詢的具體步驟包括: (b.l)設(shè)置所述有序活動軌跡相似性查詢的定義:當(dāng)給出一個活動軌跡的集合15,一個 隊列Q,一個正整數(shù)k,所述有序活動軌跡相似性查詢將返回巧和Q中有著最小的Dmom(Q,化) 的k條優(yōu)秀軌跡,Dm?(Q,Tr)是化到Q的有序最短匹配距離; (b.2)構(gòu)造有序活動軌跡相似性查詢OATSQ,對至少含λ條候選者軌跡的集合進(jìn)行檢索, 集合中包括目標(biāo)查詢活動的周邊位置信息和至少一個目標(biāo)查詢活動. 查閱候選者化的A化W找出包含qi.O中任意活動的所有的點,只保存運些點中最小和 最大的位置索引,并把它設(shè)置為要查詢的點qi的匹配索引界限^8站)=[化,油],對每對查 詢點的MIBs進(jìn)行比較,如果存在兩個查詢點qi,qjeQ(i<j)滿足MIB(qiMb>MIB(qj).ub, 就刪除化候選者集合中不符合qi一qj順序的匹配的點qi和qj,化和ub分別表示MIB的下界和 上界,,其中,因為每個點除了其位置屬性外,還有一個屬性是該點所在的位置可w進(jìn)行的 活動,所W設(shè)置qi. Φ為點Pi的活動屬性中含有的活動; (b.3)通過最短匹配距離的算法獲得Dmpm,所述Dmpm是qi和子軌跡Tr比,j]之間的最小點 匹配距離; (b.4)計算有序最短匹配距離Dmnm,設(shè)置一個隊列Q: {qi,q2, . . .,qm}和一個有效的候選 者軌跡化:{pi,P2,. .Pm}、一個mXn的矩陣G,矩陣G的元素 G(i,代表子 隊列Q[1,i]: {qi,q2, . . .,qi}和子軌跡Tr[l,j]: {qi,q2, . . .,qi}之間的有序最短匹配距離 Dm? ,G(m, η)就是〇和1'1'之間的Dm?值,且(1)。8. 根據(jù)權(quán)利要求7所述的一種針對活動軌跡的高效查詢方法,其特征在于,所述計算有 序最短匹配距離的具體步驟包括: 設(shè)置輸入變量隊列Q、候選者Tr、目前為止發(fā)現(xiàn)的第k個最小的Dm?,即I媒。W.,設(shè)置輸出變 量0"?(9,化),并將矩陣中格式為6(0,*)的元素賦值為0; 當(dāng)i = (1…IQI)時,如果(艱,聽1) >巧,。,。則退出程序重新計算; 當(dāng)i = |Q| )、j = |化I)時:將G(i, j)的值置為+°°,當(dāng)k=(j…l)、G(i-l,k)聲時, 貝1J計算Dmpm(化,Tr[k,_j]),并且根據(jù)公壬更 新G( i,j),最終獲得有序最短匹配距離G( I QI,I Tr I)。9. 根據(jù)權(quán)利要求5或7所述的一種針對活動軌跡的高效查詢方法,其特征在于,所述對 至少含λ條候選者軌跡的集合進(jìn)行檢索的具體步驟包括: (a. 2.1)用最佳優(yōu)先捜索算法來獲取候選者的集合,用(mdist, cell ID, qi)作為入口來 保持優(yōu)先級隊列PQ,其中,mdist是單元號為celllD的單元格c到查詢點q的最小距離,qeQ; (a. 2.2)把所有單元格插入到包含任意目標(biāo)查詢活動的最高級別的分層單元逆序表, 然后重復(fù)地把PQ的入口刪除,即刪除候選者中具有最小的md i S t的查詢點qi; (a. 2.3)如果被刪除的入口不是葉子單元,則把它包含有qi. Φ的子單元插回到PQ中,自 動刪除不含要查詢活動的單元,如果被刪除的入口是葉子單元,則檢查該單元的逆序活動 表中是否有活動,并把逆序活動表中的軌跡放到候選者集合CS中。10. 根據(jù)權(quán)利要求5或7所述的一種針對活動軌跡的高效查詢方法,其特征在于,所述計 算最短匹配距離的步驟包括: (a. 5.1)設(shè)置輸入?yún)?shù)變量查詢點q、候選者Tr和輸出變量Dmpm(q,Tr); (a.5.2)對于活動aeq . Φ在軌跡的活動倒排表Tr.A化中的點賦給CP; (a. 5.3)根據(jù)CP中的點的位置與q之間的距離進(jìn)行分類; (a.5.4)初始化用來存儲查詢關(guān)鍵詞的每個子集的當(dāng)前最短匹配距離的哈希表貨; (a.5.5)當(dāng)點 peep 時: (a.5.5.1)如果根據(jù)q.O獲得哈希表中與關(guān)鍵字集合相關(guān)的最小匹配距離糸>'!聲Φ!且 :村如發(fā);!小于等于P和q之間的最短匹配距離d(p,q),則結(jié)束計算,否則,將p.Onq.O的值 賦給P. φ/,初始化一個先進(jìn)先出隊列左來存儲P. φ/的子集,將P. Φ '添加到先進(jìn)先出隊列 中,從.£隊列中刪除隊頭元素,并將刪除后的隊列賦值給ks; (a. 5.5.2)當(dāng)ks的值不為空時:如果況ft.化姐巧唯巧)且狀[始]< d'如弓·),則跳出本層循 環(huán),繼續(xù)下一層循環(huán),否則,將d(p,q)}賦值給哈希映射函數(shù):?:賊],將ks的所有大小為Iks I- 1的子集放進(jìn)先進(jìn)先出隊列心,如果S是哈希表Η的一個鍵、ks不含于S且S不含于ks則時,將 ksUs 賦值給 key,)lt(a. 5.6)得到最短匹配距離
【文檔編號】G06F17/30GK106095852SQ201610389571
【公開日】2016年11月9日
【申請日】2016年6月6日 公開號201610389571.8, CN 106095852 A, CN 106095852A, CN 201610389571, CN-A-106095852, CN106095852 A, CN106095852A, CN201610389571, CN201610389571.8
【發(fā)明人】鄭凱, 賈夢迪
【申請人】蘇州大學(xué)