一種基于dtbf的rfid冗余數(shù)據(jù)清洗方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于DTBF的RFID冗余數(shù)據(jù)清洗方法。首先初始化DTBF;讀取新數(shù)據(jù)x,計算元素x的k個哈希地址:如果向量BFi的k個哈希位置的時間值Tag.time全都不為0,當(dāng)新元素的TID等于向量BFi的k個哈希位置的TID時,求取新元素x與向量BFr中k個哈希位置的時間域Tag.time中的時間差X,判斷時間差X是否大于時間窗口ω,如果否,則表示新元素x為非冗余數(shù)據(jù),并存儲數(shù)據(jù);如果是,則新元素x為冗余數(shù)據(jù),直接丟棄數(shù)據(jù)。本發(fā)明提供的方法集成了Dynamic Bloom Filter能夠處理動態(tài)數(shù)據(jù)集合的特性及Time Bloom Filter能夠利用時間信息進行冗余判斷的特點,該方法可動態(tài)調(diào)整DTBF包含的向量數(shù),并且DTBF每個向量均為一個Time Bloom Filter,可以利用時間信息進行數(shù)據(jù)冗余的判斷。
【專利說明】
一種基于DTBF的RF ID冗余數(shù)據(jù)清洗方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及RFID冗余數(shù)據(jù)清洗領(lǐng)域,特別是一種基于DTBF的冗余數(shù)據(jù)清洗方法及 系統(tǒng)。
【背景技術(shù)】
[0002] RFID技術(shù)被認為是企業(yè)倉儲管理和供應(yīng)鏈管理中的重要技術(shù),最近幾年在倉庫的 信息化管理中得到了廣泛的應(yīng)用,明顯提高了企業(yè)倉儲管理的信息化水平。由于RFID的非 接觸性,只要在檢測范圍內(nèi),無論是否需要,標(biāo)簽都會被檢測到。當(dāng)帶有RFID移動天線陣列 的巡檢車在倉庫中以極慢的速度對貨包標(biāo)簽進行巡檢的過程中,會產(chǎn)生大量不必要的數(shù)據(jù) (冗余數(shù)據(jù))。另一方面,為了防止在巡檢過程中漏讀標(biāo)簽數(shù)據(jù),在巡檢車上會布置兩個或多 個閱讀器。當(dāng)多個閱讀器同時檢測到同一標(biāo)簽時,也會產(chǎn)生冗余數(shù)據(jù)。因此在實際倉庫掃描 盤點定位過程中無法避免冗余數(shù)據(jù)的產(chǎn)生。
[0003] 由于RFID數(shù)據(jù)本身具有流特性、動態(tài)性以及關(guān)聯(lián)性等特點,所以RFID冗余數(shù)據(jù)的 清除面臨兩個主要問題:首先RFID數(shù)據(jù)以流的形式快速、自動的產(chǎn)生,對于已經(jīng)"流過"的數(shù) 據(jù)無法再次訪問,即使設(shè)法對數(shù)據(jù)進行存儲,數(shù)據(jù)訪問的代價也是巨大的,這就要求算法能 夠高效快速的處理RFID冗余數(shù)據(jù)。其次,RFID數(shù)據(jù)流是一種動態(tài)數(shù)據(jù)集,即事先無法知道數(shù) 據(jù)量的大小,并且處理時不可能在內(nèi)存中長時間保存所有的歷史數(shù)據(jù),所以也對算法的處 理空間和時間提出了更高的要求。
[0004] Bloom Filter以有限的內(nèi)存進行快速、高效的查找,目前在冗余數(shù)據(jù)的清洗領(lǐng)域 得到了廣泛的關(guān)注,但是當(dāng)數(shù)據(jù)流持續(xù)產(chǎn)生、長期運行時,Bloom Filter所有入口均為1,這 時Bloom Fi Iter的錯誤率將會急劇上升,隨之失效。如果根據(jù)數(shù)據(jù)集動態(tài)調(diào)整Bloom Filter的大小,那么過濾器容錯率P等所有相關(guān)參數(shù)都要重新計算,會浪費過濾器大量計算 時間,這樣一來Bloom Filter高效快速的特點將不復(fù)存在。
[0005] Dynamic Bloom Filter雖然可以用來處理動態(tài)增長的RFI數(shù)據(jù)集,但是Dynamic Bloom Filter內(nèi)部由位數(shù)組構(gòu)成,對于某些想依靠時間戳判斷標(biāo)簽數(shù)據(jù)是否冗余的情形, 過濾器此時必須要用整數(shù)數(shù)組代替位數(shù)組存儲標(biāo)簽數(shù)據(jù)的時間戳數(shù)據(jù),而Dynamic Bloom Filter并不具備這樣的條件,所以利用Dynamic Bloom Filter進行時間冗余判斷并不可 行。
[0006] 因此急需一種既能夠根據(jù)時間信息進行冗余判斷,又能保證快速性、精確性的 RFID冗余數(shù)據(jù)清除方法。
【發(fā)明內(nèi)容】
[0007] 有鑒于此,為了解決上述問題,本發(fā)明提供一種既能利用時間信息過濾RFID冗余 數(shù)據(jù),又能處理動態(tài)RFID數(shù)據(jù)集的過濾方法,將時間布隆過濾器和動態(tài)布隆過濾器進行融 合的新冗余數(shù)據(jù)過濾方法,用于RFID的數(shù)據(jù)慮重。
[0008] 本發(fā)明的目的是這樣實現(xiàn)的:
[0009]本發(fā)明提供的基于DTBF的RFID冗余數(shù)據(jù)清洗方法,包括以下幾個步驟:
[0010] 步驟1:初始化DTBF;
[0011]步驟2:讀取新數(shù)據(jù),計算新數(shù)據(jù)中的新元素 X的k的哈希地址;
[0012 ] 步驟3:設(shè)置向量BFi (l<i彡r),并逐個檢查每個向量BFi (I < i彡r)中新元素 X對應(yīng) 的k個哈希地址是否都為0;
[0013] 如果向量BFi(l$i彡r)中k個哈希位置不全都為0,則進入到步驟4;
[0014] 如果向量BFi的k個哈希位置的時間域Tag. time位全都不為0,則判斷新元素的TID 是否等于向量BFj^k個哈希位置的TID,如果等于,則進入到步驟5;如果不等于,則表示發(fā) 生誤判,輸出報警信息;
[0015] 步驟4:檢查向量BFr的是否達到存儲容限,如果達到,則設(shè)置新向量BF r,并進行初 始化向量BFr,將新元素 X插入新向量BFr中;
[0016] 步驟5:求取新元素 X與向量BFr中k個哈希位置的時間域Tag. time中的時間差X,判 斷時間差X是否大于時間窗口 ω,如果否,則表示新元素 X為非冗余數(shù)據(jù),并存儲數(shù)據(jù);
[0017] 步驟6:如果是,則新元素 X為冗余數(shù)據(jù),直接丟棄數(shù)據(jù)。
[0018] 進一步,所述步驟1中的初始化DTBF,具體步驟如下:
[0019] 設(shè)定時間窗口大小ω;
[0020] 設(shè)置DTBF向量數(shù)r和向量存儲容限;
[0021] 有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)k以及向量長度m;
[0022] 初始化DTBF的第一個向量BFr = {η,m,k};
[0023]其中,η為向量中元素的個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為k,將BFr向量的每 一位存儲位置置為〇, ω為時間窗口大小。
[0024]進一步,所述步驟4中初始化向量BFr,具體步驟如下:
[0025] 設(shè)定過濾器誤判率p以及時間窗口大小ω ;
[0026] 確定過濾器最大誤判率ρ和向量存儲容限;
[0027] 有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)k以及向量長度m;
[0028]初始化第一個向量BFr= {n,m,k};
[0029] 其中,η為向量中元素的個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為k,將BFr向量的每 一位存儲位置置為〇, ω為時間窗口大小。
[0030] 進一步,所述過濾器的哈希函數(shù)個數(shù)k和向量長度m滿足以下公式:
[0031 ] ^ = -M2 〇: η
[0032]進一步,所述步驟4中檢查向量BFr的是否達到存儲容限:是通過以下方式來實現(xiàn) 的:
[0033] 檢查向量BFr的Tag. time位0位占有率是否達到預(yù)設(shè)值,如果達到,則表示達到存 儲容限。
[0034]本發(fā)明還提供了一種基于DTBF的RFID冗余數(shù)據(jù)清洗系統(tǒng),包括初始模塊、數(shù)據(jù)讀 取模塊、哈希地址零位計算模塊、誤判輸出報警信息模塊、存儲容限判斷模塊、初始化向量 BFr模塊、冗余數(shù)據(jù)判斷模塊和存儲模塊;
[0035]所述初始模塊,用于初始化DTBF;
[0036]所述數(shù)據(jù)讀取模塊,用于讀取新數(shù)據(jù)并計算新數(shù)據(jù)中的新元素 x的k的哈希地址; [0037] 所述哈希地址零位計算模塊,用于計算每個向量BFi( Ki彡r)中新元素 X對應(yīng)的k 個哈希地址;并輸出向量BFi的k個哈希位置的時間域Tag. time位全都不為0的哈希地址;
[0038] 所述誤判輸出報警信息模塊,用于輸出當(dāng)新元素的TID不等于向量BFj^k個哈希 位置的TID時的報警信息;
[0039] 所述存儲容限判斷模塊,用于檢查向量BFr的是否達到存儲容限;
[0040] 初始化向量BFr模塊,用于當(dāng)向量BFr達到存儲容限時設(shè)置新向量BFr并將新元素 X 插入新向量BFr中;
[0041] 所述冗余數(shù)據(jù)判斷模塊,用于計算新元素 X與向量BFr中k個哈希位置的時間域 Tag.time中的時間差X,判斷時間差X是否大于時間窗口 ω ;
[0042] 所述存儲模塊,用于存儲非冗余數(shù)據(jù)。
[0043]進一步,所述初始模塊中的初始化DTBF,具體步驟如下:
[0044] 設(shè)定時間窗口大小ω ;
[0045] 設(shè)置DTBF向量數(shù)r和向量存儲容限;
[0046] 有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)k以及向量長度m;
[0047] 初始化DTBF的第一個向量BFr= {n,m,k};
[0048] 其中,η為向量中元素的個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為k,將BFr向量的每 一位存儲位置置為〇, ω為時間窗口大小。
[0049] 進一步,所述初始化向量BFr模塊中初始化向量BFr,具體步驟如下:
[0050] 設(shè)定過濾器誤判率p以及時間窗口大小ω ;
[0051 ]確定過濾器最大誤判率ρ和向量存儲容限;
[0052]有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)k以及向量長度m;
[0053]初始化第一個向量BFr= {n,m,k};
[0054] 其中,η為向量中元素的個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為k,將BFr向量的每 一位存儲位置置為〇, ω為時間窗口大小。
[0055] 進一步,所述哈希函數(shù)個數(shù)k和向量長度m滿足以下公式: jfl
[0056] k = - In 2 ο η
[0057] 進一步,所述存儲容限判斷模塊中計算檢查向量BFr的是否達到存儲容限:是通過 以下方式來實現(xiàn)的:
[0058] 檢查向量BFr的Tag. time位0位占有率是否達到預(yù)設(shè)值,如果達到,則表示達到存 儲容限。
[0059]本發(fā)明提供的基于動態(tài)時間布隆過濾器的RFID冗余數(shù)據(jù)清洗方法,所述的動態(tài)時 間布隆過濾器包括時間布隆過濾器和動態(tài)布隆過濾器;時間布隆過濾器利用RFID掃描數(shù)據(jù) 的時間信息與課題定義的時間窗口大小進行比較,即根據(jù)前后兩次RFID掃描數(shù)據(jù)的時間差 與定義的時間窗口大小,對后續(xù)到達的RFID掃描數(shù)據(jù)進行冗余判斷。動態(tài)布隆過濾器根據(jù) RFID掃描數(shù)據(jù)集的大小對時間布隆過濾器向量進行動態(tài)數(shù)量的調(diào)整,從而使得過濾器整體 誤判率降到最低。
[0060]由于采用了上述技術(shù)方案,本發(fā)明具有如下的優(yōu)點:
[0061]課題采用的動態(tài)時間布隆過濾器集成了時間布隆過濾器與動態(tài)布隆過濾器的優(yōu) 點。當(dāng)有RFID數(shù)據(jù)輸入時,首先根據(jù)時間布隆過濾器的工作原理,利用RFID掃描數(shù)據(jù)的時間 戳信息進行數(shù)據(jù)的冗余判斷;接著當(dāng)外部元數(shù)據(jù)量達到過濾器存儲容限時,開辟新的時間 布隆過濾器對外部元數(shù)據(jù)進行存儲,從而在完成對數(shù)據(jù)進行快速冗余判斷的同時有效的降 低過濾器的誤判率。
[0062] 本發(fā)明提供的基于DTBF的RFID數(shù)據(jù)冗余清洗方法集成了Dynamic Bloom Filter, 該方法能夠處理動態(tài)數(shù)據(jù)集合的特性以及Time Bloom FiIter能夠利用時間信息進行冗余 判斷的特點,為RFID數(shù)據(jù)冗余清洗提供了一個新的思路。該方法可以動態(tài)調(diào)整DTBF包含的 向量數(shù),并且DTBF每個向量均為一個Time Bloom FiIter,可以利用時間信息進行數(shù)據(jù)冗余 的判斷。
[0063]本發(fā)明的其他優(yōu)點、目標(biāo)和特征在某種程度上將在隨后的說明書中進行闡述,并 且在某種程度上,基于對下文的考察研究對本領(lǐng)域技術(shù)人員而言將是顯而易見的,或者可 以從本發(fā)明的實踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其他優(yōu)點可以通過下面的說明書和權(quán)利要 求書來實現(xiàn)和獲得。
【附圖說明】
[0064]本發(fā)明的【附圖說明】如下。
[0065]圖1為本實施例提供的DTBF結(jié)構(gòu)圖。
[0066]圖2a為本實施例提供的〈TID!,2>實例過程示意圖。
[0067]圖2b為本實施例提供的CTID1,4>實例過程示意圖。
[0068]圖2c為本實施例提供的CTID2,4>實例過程示意圖。
[0069]圖2d為本實施例提供的CTID1,16>實例過程示意圖。
[0070]圖2e為本實施例提供的CTID2,12>實例過程示意圖。
[0071]圖3為本實施例提供的DTBF初始化流程圖。
[0072] 圖4為本實施例提供的BFr初始化流程圖。
[0073] 圖5為本實施例提供的整體去冗余算法流程圖。
[0074]圖6為本實施例提供的基于DTBF的RFID冗余數(shù)據(jù)清洗系統(tǒng)原理圖
【具體實施方式】
[0075]下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。
[0076] 實施例1
[0077]如圖所示,本實施例提供的一種基于DTBF的RFID冗余數(shù)據(jù)清洗方法,包括以下幾 個步驟:
[0078] 步驟1:初始化DTBF;
[0079 ]步驟2:讀取新數(shù)據(jù),計算新數(shù)據(jù)中的新元素 X的k的哈希地址;
[0080] 步驟3:設(shè)置向量BFi (Ki彡r),并逐個檢查每個向量BFi (1彡i彡r)中新元素 X對應(yīng) 的k個哈希地址是否都為0;
[0081 ] 如果向量BFi( 1彡i彡r)中k個哈希位置不全都為0,則進入到步驟4;
[0082] 如果向量BFi的k個哈希位置的時間域Tag. time位全都不為0,則判斷新元素的TID 是否等于向量BFj^k個哈希位置的TID,如果等于,則進入到步驟5;如果不等于,則表示發(fā) 生誤判,輸出報警信息;
[0083] 步驟4:檢查向量BFr的是否達到存儲容限,如果達到,則設(shè)置新向量BF r,并進行初 始化向量BFr,將新元素 X插入新向量BFr中;
[0084] 步驟5:求取新元素 X與向量BFr中k個哈希位置的時間域Tag. time中的時間差X,判 斷時間差X是否大于時間窗口 ω,如果否,則表示新元素 X為非冗余數(shù)據(jù),并存儲數(shù)據(jù);
[0085] 步驟6:如果是,則新元素 X為冗余數(shù)據(jù),直接丟棄數(shù)據(jù)。
[0086]所述步驟1中的初始化DTBF,具體步驟如下:
[0087] 設(shè)定時間窗口大小ω;
[0088] 設(shè)置DTBF向量數(shù)r和向量存儲容限;
[0089] 有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)k以及向量長度m;
[0090] 初始化DTBF的第一個向量BFr= {n,m,k};
[0091] 其中,η為向量中所能容納的最多元素個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為k,將 BFr向量的每一位存儲位置置為0, ω為時間窗口大小。
[0092] 所述步驟4中初始化向量BFr,具體步驟如下:
[0093] 設(shè)定過濾器誤判率ρ以及時間窗口大小ω ;
[0094] 確定過濾器最大誤判率ρ和向量存儲容限;
[0095] 有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)k以及向量長度m;
[0096]初始化第一個向量BFr= {n,m,k};
[0097] 其中,η為向量中元素的個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為k,將BFr向量的每 一位存儲位置置為〇, ω為時間窗口大小。
[0098] 所述過濾器的哈希函數(shù)個數(shù)k和向量長度m滿足以下公式: .-J Tft. - ^
[0099] k'二-In 2 〇 η
[0100] 所述步驟4中檢查向量BFr的是否達到存儲容限:是通過以下方式來實現(xiàn)的:
[0101] 檢查向量BFr的Tag. time位0位占有率是否達到預(yù)設(shè)值,本實施例的預(yù)設(shè)值為預(yù)設(shè) 值40-60%,也可以設(shè)置為50%,如果達到,則表示達到存儲容限。
[0102] 本實施例提供來一種基于DTBF的RFID冗余數(shù)據(jù)清洗系統(tǒng),包括初始模塊、數(shù)據(jù)讀 取模塊、哈希地址零位計算模塊、誤判輸出報警信息模塊、存儲容限判斷模塊、初始化向量 BFr模塊、冗余數(shù)據(jù)判斷模塊和存儲模塊;
[0103] 所述初始模塊,用于初始化DTBF;
[0104] 所述數(shù)據(jù)讀取模塊,用于讀取新數(shù)據(jù)并計算新數(shù)據(jù)中的新元素 X的k的哈希地址;
[0105] 所述哈希地址零位計算模塊,用于計算每個向量BFi( Ki彡r)中新元素 X對應(yīng)的k 個哈希地址;并輸出向量BFi的k個哈希位置的時間域Tag. time位全都不為0的哈希地址;
[0106] 所述誤判輸出報警信息模塊,用于輸出當(dāng)新元素的TID不等于向量BFj^k個哈希 位置的TID時的報警信息;
[0107] 所述存儲容限判斷模塊,用于檢查向量BFr的是否達到存儲容限;
[0108] 初始化向量BFr模塊,用于當(dāng)向量BFr達到存儲容限時設(shè)置新向量BFr并將新元素 X 插入新向量BFr中;
[0109] 所述冗余數(shù)據(jù)判斷模塊,用于計算新元素 x與向量BFr中k個哈希位置的時間域 Tag.time中的時間差X,判斷時間差X是否大于時間窗口 ω ;
[0110] 所述存儲模塊,用于存儲非冗余數(shù)據(jù)。
[0111] 所述初始模塊中的初始化DTBF,具體步驟如下:
[0112] 設(shè)定時間窗口大小ω;
[0113] 設(shè)置DTBF向量數(shù)r和向量存儲容限;
[0114] 有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)k以及向量長度m;
[0115] 初始化DTBF的第一個向量BFr= {n,m,k};
[0116] 其中,η為向量中元素的個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為k,將BFr向量的每 一位存儲位置置為〇, ω為時間窗口大小。
[0117] 所述初始化向量BFr模塊中初始化向量BFr,具體步驟如下:
[0118] 設(shè)定過濾器誤判率p以及時間窗口大小ω ;
[0119] 確定過濾器最大誤判率ρ和向量存儲容限;
[0120] 有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)k以及向量長度m;
[0121]初始化第一個向量BFr= {n,m,k};
[0122] 其中,η為向量中元素所能容納的最多元素個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為 k,將BFr向量的每一位存儲位置置為0, ω為時間窗口大小。
[0123] 所述哈希函數(shù)個數(shù)k和向量長度m滿足以下公式: , m..
[0124] k =-m2. 〇 H
[0125] 所述存儲容限判斷模塊中計算檢查向量BFr的是否達到存儲容限:是通過以下方 式來實現(xiàn)的:
[0126] 檢查向量BFr的Tag. time位0位占有率是否達到預(yù)設(shè)值,本實施例的預(yù)設(shè)值為預(yù)設(shè) 值40-60%,也可以設(shè)置為50%,,如果達到,則表示達到存儲容限。
[0127] 實施例2
[0128] 本實施例提供的基于DTBF的RFID數(shù)據(jù)冗余清洗方法集成了Dynamic Bloom Filter,該方法能夠處理動態(tài)數(shù)據(jù)集合的特性以及Time Bloom Fi I ter能夠利用時間信息 進行冗余判斷的特點,為RFID數(shù)據(jù)冗余清洗提供了一個新的思路。
[0129] DTBF是將Time Bloom Filter的m位(TID,Tag.time)向量擴展成rXm位的矩陣(r 多I),r初始值設(shè)為1。當(dāng)插入的元素數(shù)量達到向量存儲容限時就將r加1,然后向過濾器下一 個向量插入元素,過濾器每個向量能夠容納的元素數(shù)量是相同的。當(dāng)RFID新數(shù)據(jù)到達時,求 取新元素與向量中k個哈希位置的Tag. t ime時間差d,通過比較時間差d與時間窗口 ω的大 小,對該數(shù)據(jù)進行冗余判斷。針對動態(tài)RFID數(shù)據(jù)集以及利用時間信息進行冗余判斷的情況, 該方法可以動態(tài)調(diào)整DTBF包含的向量數(shù),并且DTBF每個向量均為一個Time Bloom Filter, 可以利用時間信息進行數(shù)據(jù)冗余的判斷。DTBF的結(jié)構(gòu)如圖1所示,本方法具體包括以下幾個 步驟:
[0130] 步驟1:初始化DTBF,對過濾器誤判率ρ以及時間窗口大小ω進行設(shè)定。設(shè)置DTBF向 量數(shù)r = l,初始化DTBF的第一個向量BFr= {n,m,k}。
[0131]其中,η為向量中所能容納的最多元素元素個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為 k,將BFr向量的每一位存儲位置置為O,ω為時間窗口大小。
[0132] 步驟2:讀取新元素 X,計算元素 X的k的哈希地址,即hi(x),h2(x)…h(huán)k(x);
[0133] 步驟3:逐個檢查每個向量彡r)中該元素對應(yīng)的k個哈希地址是否都為0。 該步驟又分為如下兩個部分:
[0134] 1、若在任何向量中k個哈希位置都有某些位置為0,元素必不在集合中,此此時執(zhí) 行步驟4;
[0135] 2、若其中有一個BFi相應(yīng)的k個哈希位置的Tag. time位全都不為0,該步驟又分為 如下兩種情況:
[0136] 1、新元素 TID不等于此向量k個哈希位置的TID,過濾器發(fā)生誤判,對此元素的過濾 過程結(jié)束。
[0137] 2、新元素 TID等于此向量k個哈希位置的TID,證明該條數(shù)據(jù)已存在,此時執(zhí)行步驟 5;
[0138] 步驟4:檢查DTBF最新向量BFr的Tag. time位0位占有率是否達到50%,如果達到,r = r+l,開辟新的向量空間BFr,并進行初始化,新元素插入新向量空間中。
[0139] 步驟5:求取新元素與向量BFr中k個哈希位置的Tag. time時間差d,通過比較d與時 間窗口 ω的大小,對該數(shù)據(jù)進行冗余判斷。
[0140]步驟6:對非冗余數(shù)據(jù)進行存儲。
[0141] 實施例3
[0142] 本實施例提供的RFID冗余數(shù)據(jù)清除方法,包括以下步驟:
[0143] 步驟1:初始化DTBF,并對誤判率ρ以及時間窗口大小ω進行設(shè)定。設(shè)置DTBF向量數(shù) r = l,初始化DTBF的第一個向量BFr= {n,m,k},其中ρ、η、ω均為根據(jù)具體應(yīng)用設(shè)定的固定 值。P表示根據(jù)應(yīng)用設(shè)置的過濾器的最大誤判率;η表示每個向量BFjg夠處理的最多標(biāo)簽個 數(shù);ω為進行冗余判斷的時間窗口的大小。
[0144] 下面詳述向量長度m、哈希函數(shù)個數(shù)k的提取方法:
[0145] 由于布隆過濾器使用哈希函數(shù)來對數(shù)據(jù)進行分散,所以必然會存在哈希碰撞等問 題,在判斷一個元素是否屬于Bloom Filter時,必然會出現(xiàn)一定的錯誤率,現(xiàn)就來估計其大 ?。?br>[0146] 當(dāng)集合S={Sl,s2,......Sn}中所有元素都被k個哈希函數(shù)映射到具有m位的位數(shù) 組時,某一位為0的概率(假設(shè)kn<m且各個哈希函數(shù)值完全隨機且均勻分布);
[0147]
[0148] 其中i表示布隆過濾器中任意一位被哈希函數(shù)選中的概率,1 -1表示哈希函數(shù)映 m m 射之后該位未被選中的概率。
[0149] 要將集合中的全部元素映射到位數(shù)組中,需要做kn次哈希。如果映射完成后在位 數(shù)組中仍然存有為〇的單元,那么意味著kn次哈希都沒有映射到該單元,概率為:
[0150]
[0151] 由推導(dǎo)公式知:
[0152]
[0153]
[0154]
[0155] 由上述各個公式可知,P表示kn次哈希后位數(shù)組中某一位仍然為0的概率,I-P表示 kn次哈希后某一位為1的概率。則布隆過濾器將一個不屬于集合的元素判斷為屬于集合的 概率為:
[0156]
[0157] 由式5可知影響布隆過濾器性能的因素主要有哈希函數(shù)個數(shù)k以及位數(shù)組的大小 m,下面將通過式5進行推導(dǎo),得出最優(yōu)哈希函數(shù)的個數(shù)以及最優(yōu)位組數(shù)。
[0158] 由式5得:
[0159
[0160] 令:g = kln(l_P),則f = eg,由此可以看出要想使得f最小則要求g最小。[0161] 由于:
[0162:
[0163:
[0164:
[0165:
[0166:
[0167:
[0168:
1 m
[0169] ^ 得到P =;,此時& = 一 & 2,所以最優(yōu)哈希函數(shù)個數(shù)為: 2 η
[0175] 步驟2:對于讀取到的新元素 X,選取經(jīng)典哈希函數(shù),計算元素 X的k個哈希地址,即
[0170]
[0171]
[0172]
[0173]
[0174] 匕⑴如⑴…匕⑴對于哈希函數(shù)的選取,根據(jù)實際情形,由應(yīng)用者自行選擇。
[0176] 步驟3:檢查DTBF每個向量利丨fi名 >所對應(yīng)的上述k個哈希地址即IuUhh2 (x)~hk(x)某一個地址處的Tag. time值是否為0,若在任何向量中k個哈希位置都有某些位 置為0,元素必不在過濾器中,此時執(zhí)行步驟4;
[0177] 若其中有一個BFi相應(yīng)的k個哈希位置的Tag. time位全都不為0,該步驟又必須分 為如下兩種情況進行討論:
[0178] 1、新元素 TID不等于此向量k個哈希位置的TID,此時系統(tǒng)發(fā)生誤判,過濾器結(jié)束過 濾過程;
[0179] 2、新元素 TID等于此向量k個哈希位置的TID,證明該條數(shù)據(jù)已存在,執(zhí)行步驟5;
[0180] 步驟4:檢查DTBF向量BFr的Tag. time位0位占有率是否達到50%,即判斷插入元素 的數(shù)據(jù)量是否達到向量的存儲容限。如果達到,r = r+Ι,開辟新的向量空間BFr,并對向量進 行初始化,新到達元素插入新向量空間中。
[0181] 假設(shè),哈希函數(shù)服從均勻分布,則1個元素進入之后,當(dāng)?shù)? + 1個元素進入時,布隆 過濾器向量BFr中任意一位為0的概率為:
[0182]
[0183]
[0184]
[0185] 所以當(dāng)布隆過濾器的哈希函數(shù)個數(shù)k和向量長度m確定的前提下,為了使得誤判率 m 最低,向量中表示的集合元素個數(shù)n,在滿足公式A= - In 2時,此時向量中為0的位數(shù)約為總 η 位數(shù)的50%。因此可以根據(jù)向量中0位的占有率判斷向量是否已經(jīng)達到存儲容限。
[0186]步驟5:由數(shù)據(jù)冗余性判別定義可知即使存在TID相同的RFID數(shù)據(jù),根據(jù)Tag. time, RFID數(shù)據(jù)也不一定是冗余數(shù)據(jù),因此我們求取新元素與向量BFr中k個哈希位置的Tag. time 時間差d,通過比較d與時間窗口 ω的大小,對該數(shù)據(jù)進行冗余判斷。
[0187] 下面用一個實例詳細說明RFID數(shù)據(jù)流在向量BFi中的實現(xiàn)過程。其中包含標(biāo)簽1^和 丁2的觀測數(shù)據(jù)。依次達到過濾器的數(shù)據(jù)流為: TID2,12>,滑動窗口大小ω = 10;如圖2a_e所不,為本實施例提供的算法實例實現(xiàn)過程不意 圖。
[0188] (1)開始運行時,CHD1,2>首先達到過濾器,哈希到第0、2和5號存儲單元。由于是 新到達數(shù)據(jù),利用觀測數(shù)據(jù)值更新這三個單元的標(biāo)簽ID域以及時間域,即TID=1,Tag. time =2,如圖2(a)所示;
[0189] (2)當(dāng)CTID1,4>到來時,由于與上述數(shù)據(jù)的標(biāo)簽ID相同,則哈希到過濾器中的相同 位置,此時由于4_2<ω,因此,該數(shù)據(jù)為非冗余數(shù)據(jù),則用該數(shù)據(jù)更新過濾器,并對該非冗 余數(shù)據(jù)進行保存,如圖2 (b)所示;
[0190] (3)當(dāng)<TID2,4>到來時,哈希到第1、4和6號存儲位置,更新過濾器,如圖2(c)所示; (4)當(dāng)〈TID!,16>到來時,由于標(biāo)簽所對應(yīng)單元的ID域數(shù)據(jù)與數(shù)據(jù)的ID相同,而且16-4彡ω, 則該數(shù)據(jù)為冗余數(shù)據(jù),直接舍棄,如圖2 (d)所示;
[0191] (5)當(dāng)<TID2,12>到來時,同理,更新T2對應(yīng)的存儲單元,如圖2 (e)所示。
[0192] 最后說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較 佳實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技 術(shù)方案進行修改或者等同替換,而不脫離本技術(shù)方案的宗旨和范圍,其均應(yīng)涵蓋在本發(fā)明 的權(quán)利要求范圍當(dāng)中。
【主權(quán)項】
1. 一種基于DTBF的RFID冗余數(shù)據(jù)清洗方法,其特征在于:包括w下步驟: 步驟1:初始化DTBF; 步驟2:讀取新數(shù)據(jù),計算新數(shù)據(jù)中的新元素 X的k的哈希地址; 步驟3:設(shè)置向量BFi(l《i《;r),并逐個檢查每個向量BFi(l《i《;r)中新元素 X對應(yīng)的k 個哈希地址是否都為0; 如果向量邸1 (1《i《r)中k個哈希位置不全都為0,則進入到步驟4; 如果向量BFi的k個哈希位置的時間域化g. time位全都不為0,則判斷新元素的TID是否 等于向量BFi的k個哈希位置的TID,如果等于,則進入到步驟5;如果不等于,則表示發(fā)生誤 判,輸出報警信息; 步驟4:檢查向量BFr的是否達到存儲容限,如果達到,則設(shè)置新向量BFr,并進行初始化 向量BFr,將新元素 X插入新向量BFr中; 步驟5:求取新元素 X與向量BFr中k個哈希位置的時間域化g. t ime中的時間差X,判斷時 間差X是否大于時間窗口 ω,如果否,則表示新元素 X為非冗余數(shù)據(jù),并存儲數(shù)據(jù); 步驟6:如果是,則新元素 X為冗余數(shù)據(jù),直接丟棄數(shù)據(jù)。2. 如權(quán)利要求1所述的基于DTBF的RFID冗余數(shù)據(jù)清洗方法,其特征在于:所述步驟1中 的初始化DTBF,具體步驟如下: 設(shè)定時間窗口大小ω; 設(shè)置DTBF向量BFr所容許的誤判率Ρ和向量存儲容限η; 有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)kW及向量長度m; 初始化DTBF的第一個向量邸r = {η,m,k}; 其中,η為向量中所能容納的最多元素個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為k,將BFr向 量的每一位存儲位置置為0,ω為時間窗口大小。3. 如權(quán)利要求1所述的基于DTBF的RFID冗余數(shù)據(jù)清洗方法,其特征在于:所述步驟4中 初始化向量BFr,具體步驟如下: 設(shè)定過濾器誤判率pW及時間窗口大小ω ; 確定過濾器最大誤判率Ρ和向量存儲容限η; 有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)kW及向量長度m; 初始化第一個向量BFr={n,m,k}; 其中,η為向量中元素的個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為k,將BFr向量的每一位存 儲位置置為0, ω為時間窗口大小。4. 如權(quán)利要求2所述的基于DTBF的RFID冗余數(shù)據(jù)清洗方法,其特征在于:所述過濾器的 哈希函數(shù)個數(shù)k和向量長度m滿足W下公式:5. 如權(quán)利要求1所述的基于DTBF的RFID冗余數(shù)據(jù)清洗方法,其特征在于:所述步驟4中 檢查向量BFr的是否達到存儲容限:是通過W下方式來實現(xiàn)的: 檢查向量BFr的Tag. time位0位占有率是否達到預(yù)設(shè)值,如果達到,則表示達到存儲容 限。6. -種基于DTBF的RFID冗余數(shù)據(jù)清洗系統(tǒng),其特征在于:包括初始模塊、數(shù)據(jù)讀取模 塊、哈希地址零位計算模塊、誤判輸出報警信息模塊、存儲容限判斷模塊、初始化向量BFr模 塊、冗余數(shù)據(jù)判斷模塊和存儲模塊; 所述初始模塊,用于初始化DTBF; 所述數(shù)據(jù)讀取模塊,用于讀取新數(shù)據(jù)并計算新數(shù)據(jù)中的新元素 X的k的哈希地址; 所述哈希地址零位計算模塊,用于計算每個向量BFi(l《i《;r)中新元素 X對應(yīng)的k個哈 希地址;并輸出向量BFi的k個哈希位置的時間域化g. time位全都不為0的哈希地址; 所述誤判輸出報警信息模塊,用于輸出當(dāng)新元素的TID不等于向量BFi的k個哈希位置的 TID時的報警信息; 所述存儲容限判斷模塊,用于檢查向量BFr的是否達到存儲容限; 初始化向量BFr模塊,用于當(dāng)向量BFr達到存儲容限時設(shè)置新向量BFr并將新元素 X插入 新向量BFr中; 所述冗余數(shù)據(jù)判斷模塊,用于計算新元素 X與向量BFr中k個哈希位置的時間域化g. time 中的時間差X,判斷時間差X是否大于時間窗口 ω ; 所述存儲模塊,用于存儲非冗余數(shù)據(jù)。7. 如權(quán)利要求6所述的基于DTBF的RFID冗余數(shù)據(jù)清洗系統(tǒng),其特征在于:所述初始模塊 中的初始化DTBF,具體步驟如下: 設(shè)定時間窗口大小ω; 設(shè)置DTBF向量數(shù)r和向量存儲容限η; 有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)kW及向量長度m; 初始化DTBF的第一個向量邸r = {η,m,k}; 其中,η為向量中所能容納的最多元素個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為k,將BFr向 量的每一位存儲位置置為0,ω為時間窗口大小。8. 如權(quán)利要求6所述的基于DTBF的RFID冗余數(shù)據(jù)清洗系統(tǒng),其特征在于:所述初始化向 量BFr模塊中初始化向量BFr,具體步驟如下: 設(shè)定過濾器誤判率pW及時間窗口大小ω ; 確定過濾器最大誤判率Ρ和向量存儲容限; 有過濾器性質(zhì)求出最優(yōu)哈希函數(shù)個數(shù)kW及向量長度m; 初始化第一個向量BFr={n,m,k}; 其中,η為向量中元素的個數(shù),m為向量的長度,哈希函數(shù)個數(shù)為k,將BFr向量的每一位存 儲位置置為0, ω為時間窗口大小。9. 如權(quán)利要求7所述的基于DTBF的RFID冗余數(shù)據(jù)清洗系統(tǒng),其特征在于:所述哈希函數(shù) 個數(shù)k和向量長度m滿足W下公式:10. 如權(quán)利要求6所述的基于DTBF的RFID冗余數(shù)據(jù)清洗系統(tǒng),其特征在于:所述存儲容 限判斷模塊中計算檢查向量BFr的是否達到存儲容限:是通過W下方式來實現(xiàn)的: 檢查向量BFr的Tag. time位0位占有率是否達到預(yù)設(shè)值,如果達到,則表示達到存儲容 限。
【文檔編號】G06F17/30GK105938480SQ201610212717
【公開日】2016年9月14日
【申請日】2016年4月7日
【發(fā)明人】孫棣華, 劉衛(wèi)寧, 趙敏, 鄭林江, 王東方
【申請人】重慶大學(xué)