徐艷玲
摘 要:針對AMSA算法存在的不足,該章提出了IAMSA算法。仿真分析表明,該章所提出的IAMSA算法有效地較少空閑時隙,提高檢測速度以及系統(tǒng)吞吐率。
關(guān)鍵詞:物聯(lián)網(wǎng) RFID 多叉樹 防碰撞算法
中圖分類號:TP3 文獻標識碼:A 文章編號:1674-098X(2014)10(b)-0042-01
在物聯(lián)網(wǎng)中,每個物品都需要一個唯一合法的身份以便用于物品的識別,RFID是其中的關(guān)鍵。RFID系統(tǒng)中的設(shè)備標簽是電子產(chǎn)品編碼,并且該編碼具有唯一性,其可以用來標識現(xiàn)實中的物體以實現(xiàn)物體的識別與區(qū)分。RFID系統(tǒng)中的閱讀器利用標簽防碰撞算法來實現(xiàn)覆蓋范圍內(nèi)的多個電子產(chǎn)品標簽的讀取。而基于樹的防碰撞算法被廣泛地采用。但是多數(shù)基于樹的算法并沒有充分利用碰撞信息,僅僅使用了前幾位的信息。通常情況下,分支內(nèi)標簽數(shù)越多,碰撞的位數(shù)也將會越多,那么在總比特位中,碰撞位占的比例就越大。如果在識別的過程中,根據(jù)碰撞比例,能夠自適應(yīng)的選擇使用幾叉樹,就能夠提升算法的效率,減少系統(tǒng)用時。AMSA(Adaptive Multi-tree Search Anti-collision,自適應(yīng)多叉樹防碰撞)算法就是基于這一原則[1]。
雖然AMSA算法根據(jù)碰撞因子動態(tài)地選取多叉樹,但是根據(jù)碰撞因子并不能推斷出當前碰撞節(jié)點下有多少標簽。為了解決這個問題,提出了一種改進的自適應(yīng)多叉防碰撞(Improved AMSA,簡稱IAMSA)算法。IAMSA算法不僅能夠自適應(yīng)地調(diào)整搜索樹的叉數(shù),而且還優(yōu)化了四叉樹的查詢前綴,使得空閑時隙數(shù)大大地減少。
1 IAMSA算法
IAMSA算法的工作流程如下:
(1)閱讀器對查詢前綴棧進行初始化即清空棧,并發(fā)送指令。
(2)每個標簽與此時閱讀器發(fā)出的查詢前綴相比較,只有相同的標簽才出響應(yīng)。
(3)如果此時做出響應(yīng)的標簽數(shù)為一時,則識別成功,轉(zhuǎn)到第六步;如果此時沒有標簽響應(yīng),那么就不需要繼續(xù)對該分支進行搜索,轉(zhuǎn)到第六步;而如果有多個標簽做出了響應(yīng),則發(fā)生碰撞。
(4)閱讀器計算碰撞因子。如果,使用二叉樹,接著依據(jù)碰撞比特的首位信息,確定兩個新的查詢前綴;如果≥0.75,使用四叉樹,閱讀器發(fā)送查詢碰撞位最高兩位前綴指令,而標簽則反饋一個含有碰撞位信息四位碼給閱讀器,那么閱讀器將根據(jù)反饋判斷已存在于系統(tǒng)中的前綴。
(5)新產(chǎn)生的前綴入棧,棧首前綴被取出并發(fā)給標簽,接著轉(zhuǎn)到第二步。
(6)前綴堆棧如果不為空,棧首前綴被取出并發(fā)給標簽,接著轉(zhuǎn)到第二步,如果為空,識別過程結(jié)束。將兩個有效的樣本進行交叉分析,得出的數(shù)據(jù)就是兩個樣本的交叉集合,對兩組數(shù)據(jù)進行分析比較,得出交叉以后的數(shù)據(jù)和兩組數(shù)據(jù)之間的聯(lián)系和不同,在不同的數(shù)據(jù)間進行交叉組合就會得出不一樣的數(shù)據(jù),在這些不同的數(shù)據(jù)中進行數(shù)據(jù)的分析和整合,對不一樣的數(shù)據(jù)進行不同的分析,得出的結(jié)果然后再交叉分析然后得出最終結(jié)果。
2 性能分析
該文將從吞吐率與總時隙數(shù)來考察IAMSA算法的性能。從IAMSA算法的流程可以看出,其總時隙數(shù)為使用二叉樹與四叉樹兩部分所花時間之和。
如果有個待識別的標簽,并且當搜索深度為時,每個子節(jié)點上的平均標簽數(shù)為,那么,當搜索深度小于時,使用無空閑時隙的四叉樹,否則采用二叉樹。。
假設(shè)從到層的四叉樹都沒有去除空閑時隙,可以得出
(1)
當采用二叉數(shù)進行搜索是,可以得出
(2)
雖然IAMSA算法使用了無空閑時隙的四叉樹,但是當碰撞被閱讀器檢測到后,其第二次發(fā)送指令仍然需要占用一個時隙,而這個指令所使用的時隙數(shù)與碰撞時隙數(shù)相等。
采用相似的分析方法,可以得到四叉樹中的碰撞時隙與空閑時隙分別為:
(3)
(4)
根據(jù)IAMSA算法的工作流程,當子節(jié)點上的平均標簽數(shù)為時使用二叉樹進行搜索,即原四叉樹的最后一層的搜索改用二叉樹,那么四叉樹中的碰撞時隙數(shù)與空閑時隙數(shù)就不包含把最后一層里可能出現(xiàn)的碰撞與空閑時隙數(shù)。
那么,使用算法成功地識別個標簽所需的總時隙數(shù)
(5)
3 仿真分析
下面將從總時隙數(shù)這個面來考察算法。
圖1給出了總時隙數(shù)隨標簽總數(shù)的變化情況。從圖1可以看出,隨著標簽總數(shù)的增加,算法所需的時隙數(shù)增加是最慢的,并且當標簽總數(shù)達到時,與算法相比,無空閑時隙四叉樹算法需要的時間是其1.47倍,算法需要的時間是其1.17倍。由于算法需要的時隙數(shù)最少,那么其識別標簽的速率也是最快的。而且從圖1還可看出,算法與算法的仿真曲線是跳躍式的。這是因為算法與算法都能夠自適應(yīng)地調(diào)整搜索叉數(shù),根據(jù)公式(5)可知,的值跟搜索深度有關(guān),由于是非負整數(shù)(當≤11時,;當12≤m≤47時,;當48≤m≤191時,;……),那么的值也是非連續(xù)變化的整數(shù),因此,AMSA算法與IAMSA算法的仿真曲線是跳躍式的。
參考文獻
[1] 丁治國,古今.自適應(yīng)多叉樹防碰撞算法研究[J].自動化學報,2010,36(2):237-241.
摘 要:針對AMSA算法存在的不足,該章提出了IAMSA算法。仿真分析表明,該章所提出的IAMSA算法有效地較少空閑時隙,提高檢測速度以及系統(tǒng)吞吐率。
關(guān)鍵詞:物聯(lián)網(wǎng) RFID 多叉樹 防碰撞算法
中圖分類號:TP3 文獻標識碼:A 文章編號:1674-098X(2014)10(b)-0042-01
在物聯(lián)網(wǎng)中,每個物品都需要一個唯一合法的身份以便用于物品的識別,RFID是其中的關(guān)鍵。RFID系統(tǒng)中的設(shè)備標簽是電子產(chǎn)品編碼,并且該編碼具有唯一性,其可以用來標識現(xiàn)實中的物體以實現(xiàn)物體的識別與區(qū)分。RFID系統(tǒng)中的閱讀器利用標簽防碰撞算法來實現(xiàn)覆蓋范圍內(nèi)的多個電子產(chǎn)品標簽的讀取。而基于樹的防碰撞算法被廣泛地采用。但是多數(shù)基于樹的算法并沒有充分利用碰撞信息,僅僅使用了前幾位的信息。通常情況下,分支內(nèi)標簽數(shù)越多,碰撞的位數(shù)也將會越多,那么在總比特位中,碰撞位占的比例就越大。如果在識別的過程中,根據(jù)碰撞比例,能夠自適應(yīng)的選擇使用幾叉樹,就能夠提升算法的效率,減少系統(tǒng)用時。AMSA(Adaptive Multi-tree Search Anti-collision,自適應(yīng)多叉樹防碰撞)算法就是基于這一原則[1]。
雖然AMSA算法根據(jù)碰撞因子動態(tài)地選取多叉樹,但是根據(jù)碰撞因子并不能推斷出當前碰撞節(jié)點下有多少標簽。為了解決這個問題,提出了一種改進的自適應(yīng)多叉防碰撞(Improved AMSA,簡稱IAMSA)算法。IAMSA算法不僅能夠自適應(yīng)地調(diào)整搜索樹的叉數(shù),而且還優(yōu)化了四叉樹的查詢前綴,使得空閑時隙數(shù)大大地減少。
1 IAMSA算法
IAMSA算法的工作流程如下:
(1)閱讀器對查詢前綴棧進行初始化即清空棧,并發(fā)送指令。
(2)每個標簽與此時閱讀器發(fā)出的查詢前綴相比較,只有相同的標簽才出響應(yīng)。
(3)如果此時做出響應(yīng)的標簽數(shù)為一時,則識別成功,轉(zhuǎn)到第六步;如果此時沒有標簽響應(yīng),那么就不需要繼續(xù)對該分支進行搜索,轉(zhuǎn)到第六步;而如果有多個標簽做出了響應(yīng),則發(fā)生碰撞。
(4)閱讀器計算碰撞因子。如果,使用二叉樹,接著依據(jù)碰撞比特的首位信息,確定兩個新的查詢前綴;如果≥0.75,使用四叉樹,閱讀器發(fā)送查詢碰撞位最高兩位前綴指令,而標簽則反饋一個含有碰撞位信息四位碼給閱讀器,那么閱讀器將根據(jù)反饋判斷已存在于系統(tǒng)中的前綴。
(5)新產(chǎn)生的前綴入棧,棧首前綴被取出并發(fā)給標簽,接著轉(zhuǎn)到第二步。
(6)前綴堆棧如果不為空,棧首前綴被取出并發(fā)給標簽,接著轉(zhuǎn)到第二步,如果為空,識別過程結(jié)束。將兩個有效的樣本進行交叉分析,得出的數(shù)據(jù)就是兩個樣本的交叉集合,對兩組數(shù)據(jù)進行分析比較,得出交叉以后的數(shù)據(jù)和兩組數(shù)據(jù)之間的聯(lián)系和不同,在不同的數(shù)據(jù)間進行交叉組合就會得出不一樣的數(shù)據(jù),在這些不同的數(shù)據(jù)中進行數(shù)據(jù)的分析和整合,對不一樣的數(shù)據(jù)進行不同的分析,得出的結(jié)果然后再交叉分析然后得出最終結(jié)果。
2 性能分析
該文將從吞吐率與總時隙數(shù)來考察IAMSA算法的性能。從IAMSA算法的流程可以看出,其總時隙數(shù)為使用二叉樹與四叉樹兩部分所花時間之和。
如果有個待識別的標簽,并且當搜索深度為時,每個子節(jié)點上的平均標簽數(shù)為,那么,當搜索深度小于時,使用無空閑時隙的四叉樹,否則采用二叉樹。。
假設(shè)從到層的四叉樹都沒有去除空閑時隙,可以得出
(1)
當采用二叉數(shù)進行搜索是,可以得出
(2)
雖然IAMSA算法使用了無空閑時隙的四叉樹,但是當碰撞被閱讀器檢測到后,其第二次發(fā)送指令仍然需要占用一個時隙,而這個指令所使用的時隙數(shù)與碰撞時隙數(shù)相等。
采用相似的分析方法,可以得到四叉樹中的碰撞時隙與空閑時隙分別為:
(3)
(4)
根據(jù)IAMSA算法的工作流程,當子節(jié)點上的平均標簽數(shù)為時使用二叉樹進行搜索,即原四叉樹的最后一層的搜索改用二叉樹,那么四叉樹中的碰撞時隙數(shù)與空閑時隙數(shù)就不包含把最后一層里可能出現(xiàn)的碰撞與空閑時隙數(shù)。
那么,使用算法成功地識別個標簽所需的總時隙數(shù)
(5)
3 仿真分析
下面將從總時隙數(shù)這個面來考察算法。
圖1給出了總時隙數(shù)隨標簽總數(shù)的變化情況。從圖1可以看出,隨著標簽總數(shù)的增加,算法所需的時隙數(shù)增加是最慢的,并且當標簽總數(shù)達到時,與算法相比,無空閑時隙四叉樹算法需要的時間是其1.47倍,算法需要的時間是其1.17倍。由于算法需要的時隙數(shù)最少,那么其識別標簽的速率也是最快的。而且從圖1還可看出,算法與算法的仿真曲線是跳躍式的。這是因為算法與算法都能夠自適應(yīng)地調(diào)整搜索叉數(shù),根據(jù)公式(5)可知,的值跟搜索深度有關(guān),由于是非負整數(shù)(當≤11時,;當12≤m≤47時,;當48≤m≤191時,;……),那么的值也是非連續(xù)變化的整數(shù),因此,AMSA算法與IAMSA算法的仿真曲線是跳躍式的。
參考文獻
[1] 丁治國,古今.自適應(yīng)多叉樹防碰撞算法研究[J].自動化學報,2010,36(2):237-241.
摘 要:針對AMSA算法存在的不足,該章提出了IAMSA算法。仿真分析表明,該章所提出的IAMSA算法有效地較少空閑時隙,提高檢測速度以及系統(tǒng)吞吐率。
關(guān)鍵詞:物聯(lián)網(wǎng) RFID 多叉樹 防碰撞算法
中圖分類號:TP3 文獻標識碼:A 文章編號:1674-098X(2014)10(b)-0042-01
在物聯(lián)網(wǎng)中,每個物品都需要一個唯一合法的身份以便用于物品的識別,RFID是其中的關(guān)鍵。RFID系統(tǒng)中的設(shè)備標簽是電子產(chǎn)品編碼,并且該編碼具有唯一性,其可以用來標識現(xiàn)實中的物體以實現(xiàn)物體的識別與區(qū)分。RFID系統(tǒng)中的閱讀器利用標簽防碰撞算法來實現(xiàn)覆蓋范圍內(nèi)的多個電子產(chǎn)品標簽的讀取。而基于樹的防碰撞算法被廣泛地采用。但是多數(shù)基于樹的算法并沒有充分利用碰撞信息,僅僅使用了前幾位的信息。通常情況下,分支內(nèi)標簽數(shù)越多,碰撞的位數(shù)也將會越多,那么在總比特位中,碰撞位占的比例就越大。如果在識別的過程中,根據(jù)碰撞比例,能夠自適應(yīng)的選擇使用幾叉樹,就能夠提升算法的效率,減少系統(tǒng)用時。AMSA(Adaptive Multi-tree Search Anti-collision,自適應(yīng)多叉樹防碰撞)算法就是基于這一原則[1]。
雖然AMSA算法根據(jù)碰撞因子動態(tài)地選取多叉樹,但是根據(jù)碰撞因子并不能推斷出當前碰撞節(jié)點下有多少標簽。為了解決這個問題,提出了一種改進的自適應(yīng)多叉防碰撞(Improved AMSA,簡稱IAMSA)算法。IAMSA算法不僅能夠自適應(yīng)地調(diào)整搜索樹的叉數(shù),而且還優(yōu)化了四叉樹的查詢前綴,使得空閑時隙數(shù)大大地減少。
1 IAMSA算法
IAMSA算法的工作流程如下:
(1)閱讀器對查詢前綴棧進行初始化即清空棧,并發(fā)送指令。
(2)每個標簽與此時閱讀器發(fā)出的查詢前綴相比較,只有相同的標簽才出響應(yīng)。
(3)如果此時做出響應(yīng)的標簽數(shù)為一時,則識別成功,轉(zhuǎn)到第六步;如果此時沒有標簽響應(yīng),那么就不需要繼續(xù)對該分支進行搜索,轉(zhuǎn)到第六步;而如果有多個標簽做出了響應(yīng),則發(fā)生碰撞。
(4)閱讀器計算碰撞因子。如果,使用二叉樹,接著依據(jù)碰撞比特的首位信息,確定兩個新的查詢前綴;如果≥0.75,使用四叉樹,閱讀器發(fā)送查詢碰撞位最高兩位前綴指令,而標簽則反饋一個含有碰撞位信息四位碼給閱讀器,那么閱讀器將根據(jù)反饋判斷已存在于系統(tǒng)中的前綴。
(5)新產(chǎn)生的前綴入棧,棧首前綴被取出并發(fā)給標簽,接著轉(zhuǎn)到第二步。
(6)前綴堆棧如果不為空,棧首前綴被取出并發(fā)給標簽,接著轉(zhuǎn)到第二步,如果為空,識別過程結(jié)束。將兩個有效的樣本進行交叉分析,得出的數(shù)據(jù)就是兩個樣本的交叉集合,對兩組數(shù)據(jù)進行分析比較,得出交叉以后的數(shù)據(jù)和兩組數(shù)據(jù)之間的聯(lián)系和不同,在不同的數(shù)據(jù)間進行交叉組合就會得出不一樣的數(shù)據(jù),在這些不同的數(shù)據(jù)中進行數(shù)據(jù)的分析和整合,對不一樣的數(shù)據(jù)進行不同的分析,得出的結(jié)果然后再交叉分析然后得出最終結(jié)果。
2 性能分析
該文將從吞吐率與總時隙數(shù)來考察IAMSA算法的性能。從IAMSA算法的流程可以看出,其總時隙數(shù)為使用二叉樹與四叉樹兩部分所花時間之和。
如果有個待識別的標簽,并且當搜索深度為時,每個子節(jié)點上的平均標簽數(shù)為,那么,當搜索深度小于時,使用無空閑時隙的四叉樹,否則采用二叉樹。。
假設(shè)從到層的四叉樹都沒有去除空閑時隙,可以得出
(1)
當采用二叉數(shù)進行搜索是,可以得出
(2)
雖然IAMSA算法使用了無空閑時隙的四叉樹,但是當碰撞被閱讀器檢測到后,其第二次發(fā)送指令仍然需要占用一個時隙,而這個指令所使用的時隙數(shù)與碰撞時隙數(shù)相等。
采用相似的分析方法,可以得到四叉樹中的碰撞時隙與空閑時隙分別為:
(3)
(4)
根據(jù)IAMSA算法的工作流程,當子節(jié)點上的平均標簽數(shù)為時使用二叉樹進行搜索,即原四叉樹的最后一層的搜索改用二叉樹,那么四叉樹中的碰撞時隙數(shù)與空閑時隙數(shù)就不包含把最后一層里可能出現(xiàn)的碰撞與空閑時隙數(shù)。
那么,使用算法成功地識別個標簽所需的總時隙數(shù)
(5)
3 仿真分析
下面將從總時隙數(shù)這個面來考察算法。
圖1給出了總時隙數(shù)隨標簽總數(shù)的變化情況。從圖1可以看出,隨著標簽總數(shù)的增加,算法所需的時隙數(shù)增加是最慢的,并且當標簽總數(shù)達到時,與算法相比,無空閑時隙四叉樹算法需要的時間是其1.47倍,算法需要的時間是其1.17倍。由于算法需要的時隙數(shù)最少,那么其識別標簽的速率也是最快的。而且從圖1還可看出,算法與算法的仿真曲線是跳躍式的。這是因為算法與算法都能夠自適應(yīng)地調(diào)整搜索叉數(shù),根據(jù)公式(5)可知,的值跟搜索深度有關(guān),由于是非負整數(shù)(當≤11時,;當12≤m≤47時,;當48≤m≤191時,;……),那么的值也是非連續(xù)變化的整數(shù),因此,AMSA算法與IAMSA算法的仿真曲線是跳躍式的。
參考文獻
[1] 丁治國,古今.自適應(yīng)多叉樹防碰撞算法研究[J].自動化學報,2010,36(2):237-241.