本發(fā)明涉及數(shù)據(jù)清洗技術(shù)領(lǐng)域,特別是一種基于R-TBF的RFID冗余數(shù)據(jù)清洗策略。
背景技術(shù):
射頻識別技術(shù)以其非接觸、非視距等特點在物流、供應(yīng)鏈等領(lǐng)域有著廣泛的應(yīng)用,特別是隨著現(xiàn)代計算機(jī)和智能倉儲建設(shè)的發(fā)展,RFID技術(shù)的應(yīng)用更加普遍。RFID數(shù)據(jù)是RFID應(yīng)用的重要組成部分,RFID數(shù)據(jù)的質(zhì)量對于RFID技術(shù)的應(yīng)用有著重要的影響。而在實際RFID應(yīng)用中,由于其非接觸、非視距的特點,在讀寫器未靠近目標(biāo)標(biāo)簽時,就已經(jīng)產(chǎn)生了大量目標(biāo)標(biāo)簽的數(shù)據(jù),這些數(shù)據(jù)帶有一定的冗余性;另外,由于實際應(yīng)用中往往有多個讀寫器同時工作,在相近時間內(nèi)針對同一目標(biāo)標(biāo)簽也會產(chǎn)生大量冗余數(shù)據(jù),這些冗余數(shù)據(jù)的產(chǎn)生在整個RFID應(yīng)用過程中是無法避免的,而這些冗余數(shù)據(jù)的存在也對RFID應(yīng)用的普及造成了限制。
除此之外,在RFID應(yīng)用中,RFID數(shù)據(jù)大都具有流動性的特點,這對其處理提出了更大的挑戰(zhàn),所以針對RFID冗余數(shù)據(jù)的清洗面臨的主要問題就是對于大量的RFID數(shù)據(jù)流,如何在較短的時間和較小的空間對其進(jìn)行實時清洗,這對清洗算法在執(zhí)行時間和占用空間上提出了更高的要求。
目前針對RFID冗余數(shù)據(jù)的清洗方法有很多,Alonso提出基于語句查詢的可擴(kuò)展數(shù)據(jù)流清洗模型ESP,但是它需要保存所有要處理的數(shù)據(jù),不符合RFID數(shù)據(jù)流的動態(tài)性要求,還會占用大量內(nèi)存空間;另外,布隆于1970年提出Bloom Filter(以下簡稱BF),BF以其低內(nèi)存占比和高效查詢等特點,目前在數(shù)據(jù)清洗領(lǐng)域得到了廣泛應(yīng)用,Metwally使用BF檢測冗余數(shù)據(jù),由于BF無刪除功能,數(shù)據(jù)量足夠大時會導(dǎo)致其被填滿而失效。另外,Bloom Filter是以數(shù)據(jù)的有無來判定其是否冗余,對于實際應(yīng)用中的大量數(shù)據(jù),需要針對同一標(biāo)簽保存其有用數(shù)據(jù)信息而不只是一條數(shù)據(jù)信息,單個數(shù)據(jù)信息帶有片面性和不確定性,因此傳統(tǒng)的Bloom Filter不符合實際應(yīng)用需求。
Chun-Hee Lee等人首先提出了TBF(Time Bloom Filter)利用時間信息消除冗余數(shù)據(jù),雖然解決了RFID數(shù)據(jù)在時間屬性上的冗余問題,在一定程度上可以對數(shù)據(jù)進(jìn)行清洗并且保留有效信息,但是RFID數(shù)據(jù)除了時間屬性外還有強(qiáng)度屬性,而強(qiáng)度屬性在各RFID應(yīng)用中也有重要作用,并且對于判定時間屬性上冗余的數(shù)據(jù)在強(qiáng)度屬性上并不一定冗余,所以基于TBF來對數(shù)據(jù)進(jìn)行清洗,容易損失很多有效強(qiáng)度屬性信息,對于RFID應(yīng)用來說基于TBF的清洗效果較差,考慮因素不全面并且在一定程度上降低了數(shù)據(jù)的質(zhì)量,影響到后續(xù)應(yīng)用對RFID數(shù)據(jù)的有效利用。同樣,專利申請?zhí)枮镃N201610212717.1中提出的基于DTBF的RFID冗余數(shù)據(jù)清洗方法及系統(tǒng)雖然可以解決數(shù)據(jù)流大小不確定情況的數(shù)據(jù)清洗問題,但是也未能考慮數(shù)據(jù)屬性中強(qiáng)度因素對清洗效果的影響,因而雖然可以清洗數(shù)據(jù)但是由于考慮因素不足而使得清洗效果不佳。RFID數(shù)據(jù)清洗在實際應(yīng)用場景中,由于讀寫器覆蓋范圍大,所以在移動RFID巡檢車未到達(dá)標(biāo)簽正對位置時就已經(jīng)能夠讀取到相應(yīng)標(biāo)簽的數(shù)據(jù)信息,這類信息的典型特點是時間小,強(qiáng)度小,如果僅僅依靠時間對數(shù)據(jù)是否冗余進(jìn)行判斷,就會導(dǎo)致相同標(biāo)簽相近時間的有效強(qiáng)度信息被丟失,不能夠真正反映數(shù)據(jù)本身的真實性,進(jìn)而無法還原其真實位置所在。因此,需要一種基于R-TBF的RFID冗余數(shù)據(jù)清洗策略。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提出一種基于R-TBF的RFID冗余數(shù)據(jù)清洗策略;該清洗策略在原有清洗策略基礎(chǔ)上,通過對時間和強(qiáng)度篩選規(guī)則的重新定義,在考慮時間的同時,考慮強(qiáng)度大小,以此來改善數(shù)據(jù)清洗效果,提高數(shù)據(jù)質(zhì)量。
本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:
本發(fā)明提供的基于R-TBF的RFID冗余數(shù)據(jù)清洗策略,包括以下步驟:
步驟1:初始化過濾器,初始化內(nèi)容包括:
11)用于保存數(shù)據(jù)時間屬性的整數(shù)數(shù)組M,大小為m;
12)k個用于將數(shù)據(jù)標(biāo)簽信息映射到整數(shù)數(shù)組的哈希函數(shù)h1…h(huán)k;
13)用于將整數(shù)數(shù)組下標(biāo)值映射到Map集合鍵值的映射函數(shù)HK;
14)Map集合P,用來保存數(shù)據(jù)強(qiáng)度屬性,其大小跟隨數(shù)據(jù)量大小變化;
15)時間閾值τ和強(qiáng)度閾值α,分別確定數(shù)據(jù)的時間屬性和強(qiáng)度屬性是否冗余;
時間閾值τ的取值范圍為:300ms~600ms;
強(qiáng)度閾值α的取值范圍為:2dB~5dB;
步驟2:對當(dāng)前數(shù)據(jù)X進(jìn)行冗余判斷,所述當(dāng)前數(shù)據(jù)X按照{(diào)ID,TIME,RSSI}格式傳輸并按照以下清洗規(guī)則進(jìn)行冗余清洗:
其中,ID表示貨包標(biāo)簽號;TIME表示此標(biāo)簽號被讀取時的時間戳;RSSI表示此標(biāo)簽被讀取時的強(qiáng)度值;
21)首先將當(dāng)前數(shù)據(jù)X中的X.ID通過k個哈希函數(shù)映射到整數(shù)數(shù)組M的k個不同位置,判斷k個位置是否都已被賦值,如果k個位置中至少有一個位置未被賦值,則說明數(shù)據(jù)X未被處理過,直接將X.TIME更新至此k個位置,并根據(jù)映射函數(shù)HK更新X.RSSI到指定位置:
其中,j的取值為整數(shù)數(shù)組中被選中的k個位置的下標(biāo),根據(jù)二進(jìn)制位權(quán)規(guī)則,算出X.HK,將其作為Map集合的鍵,將X.RSSI作為Map集合的對應(yīng)值,對X的RSSI值進(jìn)行保存;
22)如果k個位置均被賦值,則說明X.ID相同的數(shù)據(jù)已被處理過,則需要對當(dāng)前數(shù)據(jù)X進(jìn)行冗余判斷,冗余判斷通過比較X.TIME和M[hi(X.ID)]以及X.RSSI和X.HK.RSSI的大小判定時間屬性和強(qiáng)度屬性的冗余;
步驟3:處理完當(dāng)前數(shù)據(jù)X后,重復(fù)步驟2,利用相同的清洗規(guī)則處理下一個數(shù)據(jù)。
進(jìn)一步,所述步驟1中的數(shù)據(jù)時間屬性的整數(shù)數(shù)組M的大小m按照以下公式進(jìn)行計算:
其中,n為輸入數(shù)據(jù)量大小,P表示k·n次映射后整數(shù)數(shù)組中某單元仍然為空的概率,k為哈希函數(shù)的個數(shù)。
進(jìn)一步,所述步驟1中的哈希函數(shù)h1…h(huán)k的個數(shù)k按照以下公式進(jìn)行計算:
k·n<m;
其中,n為輸入數(shù)據(jù)量的大小,m為整數(shù)數(shù)組的大?。?/p>
k的計算公式為:
其中,n為輸入數(shù)據(jù)量的大小,m為整數(shù)數(shù)組的大小,P表示k·n次映射后整數(shù)數(shù)組中某單元仍然為空的概率。
進(jìn)一步,所述步驟1中的映射函數(shù)HK按照以下公式進(jìn)行計算:
其中,j表示通過哈希函數(shù)選中的整數(shù)數(shù)組的某個單元,表示被選中的整數(shù)數(shù)組單元下標(biāo)根據(jù)其所在位置的權(quán)重進(jìn)行二進(jìn)制轉(zhuǎn)十進(jìn)制運(yùn)算,k為哈希函數(shù)個數(shù)。
進(jìn)一步,所述步驟1中的Map集合P的大小跟隨數(shù)據(jù)量大小變化。
由于采用了上述技術(shù)方案,本發(fā)明具有如下的優(yōu)點:
本發(fā)明提供的基于R-TBF的RFID冗余數(shù)據(jù)清洗策略,考慮了時間因素和強(qiáng)度因素兩種限制條件對數(shù)據(jù)進(jìn)行相應(yīng)的清洗,通過一次時間戳清洗和二次強(qiáng)度值清洗,改善清洗效果,提高數(shù)據(jù)質(zhì)量,最大程度還原數(shù)據(jù)真實性,為后續(xù)數(shù)據(jù)的有效利用提供有力保證。
本發(fā)明的其他優(yōu)點、目標(biāo)和特征在某種程度上將在隨后的說明書中進(jìn)行闡述,并且在某種程度上,基于對下文的考察研究對本領(lǐng)域技術(shù)人員而言將是顯而易見的,或者可以從本發(fā)明的實踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其他優(yōu)點可以通過下面的說明書來實現(xiàn)和獲得。
附圖說明
本發(fā)明的附圖說明如下。
圖1為清洗過程示意圖。
圖2為算法流程圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步說明。
實施例1
如圖所示,本實施例提供的基于R-TBF的RFID冗余數(shù)據(jù)清洗策略,解決了傳統(tǒng)基于TBF的RFID數(shù)據(jù)清洗策略因約束條件不足而導(dǎo)致清洗效果不佳,誤刪有用數(shù)據(jù)的情況,進(jìn)一步提高數(shù)據(jù)質(zhì)量,還原數(shù)據(jù)真實性,為后續(xù)數(shù)據(jù)的有效利用提供有力保證;在基于TBF的RFID數(shù)據(jù)清洗策略的基礎(chǔ)上,將考慮因素由單一的時間調(diào)整為時間和強(qiáng)度兩個因素,因為在實際應(yīng)用場景中,由于讀寫器覆蓋范圍大,所以在移動RFID巡檢車未到達(dá)標(biāo)簽正對位置時就已經(jīng)能夠讀取到相應(yīng)標(biāo)簽的數(shù)據(jù)信息,這類信息的典型特點是時間小,強(qiáng)度小,如果僅僅依靠時間對數(shù)據(jù)是否冗余進(jìn)行判斷,就會導(dǎo)致相同標(biāo)簽相近時間的有效強(qiáng)度信息被丟失,不能夠真正反映數(shù)據(jù)本身的真實性,進(jìn)而無法還原其真實位置所在。
因此,本實施例在利用原有清洗策略基礎(chǔ)上,通過對時間和強(qiáng)度篩選規(guī)則的重新定義,在考慮時間的同時,考慮強(qiáng)度大小,以此來改善數(shù)據(jù)清洗效果,提高數(shù)據(jù)質(zhì)量。具體內(nèi)容如下:
步驟1:初始化過濾器,初始化內(nèi)容包括:
11)用于保存數(shù)據(jù)時間屬性的整數(shù)數(shù)組M,大小為m;
m的大小根據(jù)如下公式計算:
其中,n為輸入數(shù)據(jù)量大小,P表示k·n次映射后整數(shù)數(shù)組中某單元仍然為空的概率,k為哈希函數(shù)的個數(shù);
12)k個用于將數(shù)據(jù)標(biāo)簽信息映射到整數(shù)數(shù)組的哈希函數(shù)h1…h(huán)k;
k的大小要滿足下列不等式:
k·n<m;
其中,n為輸入數(shù)據(jù)量的大小,m為整數(shù)數(shù)組的大??;
k的計算公式為:
其中,n為輸入數(shù)據(jù)量的大小,m為整數(shù)數(shù)組的大小,P表示k·n次映射后整數(shù)數(shù)組中某單元仍然為空的概率;
13)用于將整數(shù)數(shù)組下標(biāo)值映射到Map集合鍵值的映射函數(shù)HK;
HK函數(shù)公式如下:
其中,j表示通過哈希函數(shù)選中的整數(shù)數(shù)組的某個單元,此公式表示被選中的整數(shù)數(shù)組單元下標(biāo)根據(jù)其所在位置的權(quán)重進(jìn)行二進(jìn)制轉(zhuǎn)十進(jìn)制運(yùn)算,k為哈希函數(shù)個數(shù)
14)Map集合P,用來保存數(shù)據(jù)強(qiáng)度屬性,其大小跟隨數(shù)據(jù)量大小變化;
15)時間閾值τ和強(qiáng)度閾值α,分別確定數(shù)據(jù)的時間屬性和強(qiáng)度屬性是否冗余。
時間閾值τ的取值范圍為:300ms~600ms;
強(qiáng)度閾值α的取值范圍為:2dB~5dB;
步驟2:對當(dāng)前數(shù)據(jù)X進(jìn)行冗余判斷,數(shù)據(jù)X按照{(diào)ID,TIME,RSSI}格式傳輸并按照以下清洗規(guī)則進(jìn)行冗余清洗:
21)首先將X.ID通過k個哈希函數(shù)映射到整數(shù)數(shù)組M的k個不同位置,判斷k個位置是否都已被賦值,如果k個位置中至少有一個位置未被賦值,則說明數(shù)據(jù)X未被處理過,直接將X.TIME更新至此k個位置,并根據(jù)映射函數(shù)HK更新X.RSSI到指定位置:
其中,j的取值為整數(shù)數(shù)組中被選中的k個位置的下標(biāo),根據(jù)二進(jìn)制位權(quán)規(guī)則,算出X.HK,將其作為Map集合的鍵,將X.RSSI作為Map集合的對應(yīng)值,對X的RSSI值進(jìn)行保存;
22)如果k個位置均被賦值,則說明X.ID相同的數(shù)據(jù)已被處理過,則需要對數(shù)據(jù)X進(jìn)行冗余判斷,冗余判斷通過比較X.TIME和M[hi(X.ID)]以及X.RSSI和X.HK.RSSI的大小判定其時間屬性和強(qiáng)度屬性的冗余;
步驟3:處理完數(shù)據(jù)X后,重復(fù)步驟2,利用相同的清洗規(guī)則處理下一個數(shù)據(jù)。
實施例2
下面結(jié)合圖2所示清洗過程對進(jìn)行具體說明,本實施例提供的清洗過程主要包含以下步驟:
步驟1:初始化過濾器,初始化內(nèi)容包括:
11)用于保存數(shù)據(jù)時間屬性的整數(shù)數(shù)組M,大小為m;
m的大小根據(jù)如下公式計算:
其中,n為輸入數(shù)據(jù)量大小,P表示k·n次映射后整數(shù)數(shù)組中某單元仍然為空的概率,k為哈希函數(shù)的個數(shù);
12)k個用于將數(shù)據(jù)標(biāo)簽信息映射到整數(shù)數(shù)組的哈希函數(shù)h1…h(huán)k;
k的大小要滿足下列不等式:
k·n<m;
其中,n為輸入數(shù)據(jù)量的大小,m為整數(shù)數(shù)組的大??;
k的計算公式為:
其中,n為輸入數(shù)據(jù)量的大小,m為整數(shù)數(shù)組的大??;
13)用于將整數(shù)數(shù)組下標(biāo)值映射到Map集合鍵值的映射函數(shù)HK;
HK函數(shù)公式如下:
其中,j表示通過哈希函數(shù)選中的整數(shù)數(shù)組的某個單元,此公式表示被選中的整數(shù)數(shù)組單元下標(biāo)根據(jù)其所在位置的權(quán)重進(jìn)行二進(jìn)制轉(zhuǎn)十進(jìn)制運(yùn)算,k為哈希函數(shù)個數(shù);
14)Map集合P,用來保存數(shù)據(jù)強(qiáng)度屬性,其大小跟隨數(shù)據(jù)量大小變化;
25)時間閾值τ和強(qiáng)度閾值α,分別確定數(shù)據(jù)的時間屬性和強(qiáng)度屬性是否冗余。
時間閾值τ的取值范圍為:300ms~600ms;強(qiáng)度閾值α的取值范圍為:2dB~5dB;本實施例具體取值為350ms;400ms;450ms;500ms;以及2.5dB;3dB;3.5dB;4dB。
步驟2:對當(dāng)前數(shù)據(jù)X進(jìn)行冗余判斷,數(shù)據(jù)X按照{(diào)ID,TIME,RSSI}格式傳輸并按照以下清洗規(guī)則進(jìn)行冗余清洗:
21)首先將X.ID通過k個哈希函數(shù)映射到整數(shù)數(shù)組M的k個不同位置,判斷k個位置是否都已被賦值,如果k個位置中至少有一個位置未被賦值,則說明數(shù)據(jù)X未被處理過,直接將X.TIME更新至此k個位置,并根據(jù)映射函數(shù)HK更新X.RSSI到指定位置:
其中,j的取值為整數(shù)數(shù)組中被選中的k個位置的下標(biāo),根據(jù)二進(jìn)制位權(quán)規(guī)則,算出X.HK,將其作為Map集合的鍵,將X.RSSI作為Map集合的對應(yīng)值,對X的RSSI值進(jìn)行保存;
22)如果k個位置均被賦值,則說明X.ID相同的數(shù)據(jù)已被處理過,則需要對數(shù)據(jù)X進(jìn)行冗余判斷,首先比較X.TIME和M[hi(X.ID)],如果
X.TIME-M[hi(X.ID)]>τ;
則數(shù)據(jù)X在時間屬性上不是冗余數(shù)據(jù),然后比較X.RSSI和X.HK.RSSI,如果
X.RSSI-X.HK.RSSI>α;
則數(shù)據(jù)X在強(qiáng)度屬性上也不是冗余數(shù)據(jù),所以將數(shù)據(jù)X的時間屬性和強(qiáng)度屬性都更新至最新值,如果
X.RSSI-X.HK.RSSI<α;
則數(shù)據(jù)X在強(qiáng)度屬性上是冗余數(shù)據(jù),所以只將數(shù)據(jù)X的時間屬性更新至最新值,保留原強(qiáng)度屬性值;
3)如步驟22)所示,對數(shù)據(jù)X進(jìn)行冗余判斷,比較X.TIME和M[hi(X.ID)],如果
X.TIME-M[hi(X.ID)]<τ;
則數(shù)據(jù)X在時間屬性上是冗余數(shù)據(jù),然后比較X.RSSI和X.HK.RSSI,如果
X.RSSI-X.HK.RSSI>α;
則數(shù)據(jù)X在強(qiáng)度屬性上不是冗余數(shù)據(jù),所以只將數(shù)據(jù)X的強(qiáng)度屬性更新至最新值,保留原時間屬性值,如果
X.RSSI-X.HK.RSSI<α;
則數(shù)據(jù)X在強(qiáng)度屬性上也是冗余數(shù)據(jù),則將數(shù)據(jù)X做為冗余數(shù)據(jù)直接剔除。
步驟3:處理完數(shù)據(jù)X后,重復(fù)步驟2,利用相同的清洗規(guī)則處理下一個數(shù)據(jù)。
最后說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本技術(shù)方案的宗旨和范圍,其均應(yīng)涵蓋在本發(fā)明的保護(hù)范圍當(dāng)中。