一種面向物聯(lián)網(wǎng)數(shù)據(jù)的分布式Top-k查詢方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及物聯(lián)網(wǎng)數(shù)據(jù)處理技術(shù),具體設(shè)及一種面向物聯(lián)網(wǎng)數(shù)據(jù)的分布式Top-k 查詢方法。
【背景技術(shù)】
[0002] 物聯(lián)網(wǎng)是通過各種傳感器設(shè)備,將物品與網(wǎng)絡(luò)連接起來,進行信息交換與通信W 及實現(xiàn)智能化識別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)。作為物聯(lián)網(wǎng)感知層的重要組成部 分,傳感器節(jié)點在信息獲取與處理過程中發(fā)揮了重大作用。
[0003] Top-k查詢作為物聯(lián)網(wǎng)查詢應(yīng)用的重要內(nèi)容,在多個領(lǐng)域已得到廣泛應(yīng)用,如環(huán)境 污染監(jiān)測、動物保護及目標跟蹤等;用戶可根據(jù)自身需要查詢監(jiān)測區(qū)域內(nèi)前k個最大(或最 ?。└兄担鐪囟?、污染指數(shù)等,從而起到森林預(yù)警、判斷污染程度較高地區(qū)的作用,然而 傳感器節(jié)點能量嚴格受限,因此設(shè)計高效的查詢算法對降低網(wǎng)絡(luò)能耗、延長傳感器節(jié)點壽 命至關(guān)重要。
[0004] 目前提出的分布式Top-k查詢方法大都是基于某種邏輯拓撲樹,按照拓撲樹進行 數(shù)據(jù)匯聚查詢能減少大量通信開銷。如Wu等人基于最短路徑樹SPT提出的FILA算法,SPT Wsink為根節(jié)點,其余節(jié)點均有到sink的最短路徑,但FILA算法忽略了各節(jié)點接收探測 信息的能耗,與實際不符,每一輪查詢,若節(jié)點感知值沒有超出過濾范圍,則不向sink發(fā)送 更新值,故查詢結(jié)果不準確。
[0005] 為了滿足查詢準確性,Balijeet等提出了基于支配集樹DST的查詢算法EXT0K,該 算法為每個節(jié)點設(shè)置過濾闊值來決定其下一輪是否向sink發(fā)送更新值,但其DST的構(gòu)建主 要選擇鄰節(jié)點多的作為支配節(jié)點,未考慮節(jié)點自身能量和與鄰節(jié)點通信開銷,當查詢次數(shù)、 k值增大時,存在sink附近節(jié)點能耗不均,過早死亡的問題,且EXT0K算法中TM-node需每 輪向sink發(fā)送更新值,導(dǎo)致一些值的無效發(fā)送。
[0006] 湯等人基于層次索引樹提出了新穎的top-k查詢算法,同樣存在頭結(jié)點選取未考 慮自身能量而過早死亡等問題。
【發(fā)明內(nèi)容】
[0007] 發(fā)明目的:本發(fā)明的目的在于解決現(xiàn)有技術(shù)存在的不足,提供一種面向物聯(lián)網(wǎng)數(shù) 據(jù)的分布式Top-k查詢方法,本發(fā)明從構(gòu)建邏輯拓撲樹和基于樹設(shè)計top-k查詢方法兩方 面來提供一種能量均衡、高效的物聯(lián)網(wǎng)分布式數(shù)據(jù)Top-k查詢方法。
[000引技術(shù)方案:本發(fā)明所述的一種面向物聯(lián)網(wǎng)數(shù)據(jù)的分布式Top-k查詢方法,包括W下步驟:
[0009] (1)構(gòu)建最優(yōu)查詢樹:
[0010] (11)網(wǎng)絡(luò)骨干節(jié)點選取,即網(wǎng)絡(luò)支配節(jié)點的選取,具體過程如下:
[0011] (111)節(jié)點狀態(tài)和能量信息的初始化,各節(jié)點初始均為未處理狀態(tài),即flag= 0, 并通過能量代價函數(shù)算得相應(yīng)的能量代價值,該能量代價函數(shù)綜合考慮了節(jié)點度數(shù)、自身 剩余能量w及與鄰節(jié)點通信開銷,是最后所得查詢結(jié)果更加精準;
[0012] (112)代價信息交換:各節(jié)點發(fā)送hello消息包和能量代價消息包,并與其鄰節(jié)點 交換代價信息;
[0013] (113)節(jié)點狀態(tài)信息廣播;
[0014] (12)連通支配集構(gòu)造;包括支配信息存儲和連接節(jié)點選擇;
[001引(蝴根節(jié)點選擇,即sink節(jié)點的選擇,包括W下步驟:
[0016] (131)在步驟(12)所得連通支配集基礎(chǔ)上,保留支配節(jié)點與其被支配節(jié)點之間的 邊,其余邊均去除;
[0017] (132)若一個被支配節(jié)點同時被兩個支配節(jié)點支配,則優(yōu)先選擇有較少被支配節(jié) 點的節(jié)點作為其支配節(jié)點,其次再選擇距離近的節(jié)點作為其支配節(jié)點;
[001引 (13如最優(yōu)查詢樹根節(jié)點由各節(jié)點按ID號輪流擔任,打破了W往查詢過程中sink節(jié)點唯一的傳統(tǒng);
[0019] (2)基于步驟(1)所得的最優(yōu)查詢樹進行top-k查詢:
[0020] (21)查詢初始化,其具體過程為:
[0021] (211)數(shù)據(jù)匯聚發(fā)送:在最優(yōu)查詢樹中,各葉子節(jié)點將感知值發(fā)送至其父親節(jié)點 匯聚,先由父親節(jié)點在本地進行Top-k查詢,再將查詢結(jié)果發(fā)送至其父節(jié)點,如此匯聚發(fā)送 到達根節(jié)點;
[0022] (212)首輪top-k查詢;根節(jié)點收到孩子節(jié)點發(fā)送的匯聚感知值后,將其降序排序 得到k個最大值;
[0023](213)過濾值發(fā)送;根節(jié)點將第k個最大值設(shè)為過濾值T,并廣播發(fā)送給各孩子節(jié) 點,過濾值T用于抑制連續(xù)top-k查詢中的數(shù)據(jù)更新值發(fā)送;
[0024] (214)節(jié)點狀態(tài)初始化;首輪查詢結(jié)果中,top-k值中的節(jié)點成為TM-node即監(jiān)測 節(jié)點,而非top-k值中的節(jié)點成為F-node即過濾節(jié)點;
[0025] (22)數(shù)據(jù)更新值發(fā)送,依次包括監(jiān)測節(jié)點數(shù)據(jù)更新、過濾節(jié)點數(shù)據(jù)更新W及根節(jié) 點發(fā)送探測信息S個步驟,其中當監(jiān)測節(jié)點、過濾節(jié)點數(shù)據(jù)更新值value〉T時才向根節(jié)點 發(fā)送更新值;
[0026] (23)sink節(jié)點top-k查詢,根節(jié)點將接收到的所有更新值降序排序,并設(shè)置新過 濾值T' =min(top-k),即top-k中最小值,將T'發(fā)送至各節(jié)點,同時各節(jié)點更新狀態(tài)。
[0027]進一步的,所述步驟(111)中各節(jié)點初始狀態(tài)標志flag= 0,均表示為未處理節(jié) 點,某節(jié)點Vi的能量代價值計算公式為:
[002引
【主權(quán)項】
1. 一種面向物聯(lián)網(wǎng)數(shù)據(jù)的分布式Top-k查詢方法,其特征在于:包括以下步驟: (1) 構(gòu)建最優(yōu)查詢樹: (11) 網(wǎng)絡(luò)骨干節(jié)點選取,即網(wǎng)絡(luò)支配節(jié)點的選取,具體過程如下: (111) 節(jié)點狀態(tài)和能量信息的初始化,各節(jié)點初始均為未處理狀態(tài),即flag=0,并通 過能量代價函數(shù)算得相應(yīng)的能量代價值; (112) 代價信息交換:各節(jié)點發(fā)送hello消息包和能量代價消息包,并與其鄰節(jié)點交換 代價信息; (113) 節(jié)點狀態(tài)信息廣播: (12) 連通支配集構(gòu)造;包括支配信息存儲和連接節(jié)點選擇; (13) 根節(jié)點選擇,即sink節(jié)點的選擇,包括以下步驟: (131) 在步驟(12)所得連通支配集基礎(chǔ)上,保留支配節(jié)點與其被支配節(jié)點之間的邊, 其余邊均去除; (132) 若一個被支配節(jié)點同時被兩個節(jié)點支配,則先選擇有較少被支配的節(jié)點為其支 配節(jié)點,其次再選擇距離近的節(jié)點作為其支配節(jié)點; (133) 最優(yōu)查詢樹根節(jié)點由各節(jié)點按ID號輪流擔任; (2) 基于步驟(1)所得的最優(yōu)查詢樹進行top-k查詢: (21) 查詢初始化,其具體過程為: (211) 數(shù)據(jù)匯聚發(fā)送:在最優(yōu)查詢樹中,各葉子節(jié)點將感知值發(fā)送至其父親節(jié)點匯聚, 先由父親節(jié)點在本地進行Top-k查詢,再將查詢結(jié)果發(fā)送至其父節(jié)點,如此匯聚發(fā)送到達 根節(jié)點; (212) 首輪top-k查詢:根節(jié)點收到孩子節(jié)點發(fā)送的匯聚感知值后,將其降序排列得到 k個最大值; (213) 過濾值發(fā)送:根節(jié)點將第k個最大值設(shè)為過濾值t,并廣播發(fā)送給各孩子節(jié)點, 過濾值t用于抑制連續(xù)top-k查詢中的數(shù)據(jù)更新值發(fā)送; (214) 節(jié)點狀態(tài)初始化:首輪查詢結(jié)果中,top-k值中的節(jié)點成為TM-node即監(jiān)測節(jié)點, 而非top-k值中的節(jié)點成為F-node即過濾節(jié)點; (22) 數(shù)據(jù)更新值發(fā)送,依次包括監(jiān)測節(jié)點數(shù)據(jù)更新、過濾節(jié)點數(shù)據(jù)更新以及根節(jié)點發(fā) 送探測信息三個步驟,其中當監(jiān)測節(jié)點、過濾節(jié)點數(shù)據(jù)更新值value〉t時才向根節(jié)點發(fā)送 更新值; (23) sink節(jié)點top-k查詢,根節(jié)點將接收到的所有更新值降序排序并設(shè)置新過濾值 t' =min(top-k),即top-k中最小值,將t'發(fā)送至各節(jié)點,同時各節(jié)點更新狀態(tài)。
2. 根據(jù)權(quán)利要求1所述的面向物聯(lián)網(wǎng)數(shù)據(jù)的分布式Top-k查詢方法,其特征在于,所述 步驟(111)中各節(jié)點初始狀態(tài)標志flag=0,均表示為未處理節(jié)點,某節(jié)點Vi的能量代價 值計算公式為:
其中NBj(Vi)表示節(jié)點Vi的第j個鄰節(jié)點,n(vJ為節(jié)點Vi的度數(shù),即鄰節(jié)點個數(shù), EtoithiGi)為初始乘Ij余能量
示節(jié)點Vi與其鄰節(jié)點的通信開銷包 括發(fā)送和接收數(shù)據(jù)能量消耗,計算公式為:
上述a、c分別表示物聯(lián)網(wǎng)發(fā)射和接收電路消耗的能量,b為功率放大消耗的能量,匕為 一個數(shù)據(jù)包的比特數(shù),d(Vi,NBj(Vi))為節(jié)點Vi與其第j個鄰節(jié)點的距離。
3. 根據(jù)權(quán)利要求1所述的面向物聯(lián)網(wǎng)數(shù)據(jù)的分布式Top-k查詢方法,其特征在于,所述 步驟(112)中在進行代價信息交換時,若節(jié)點Vi滿足: Ec〇st(Vi)<min(Ecost(NB(vj))), 則Vi成為支配節(jié)點,即flag(v) =1。
4. 根據(jù)權(quán)利要求1所述的面向物聯(lián)網(wǎng)數(shù)據(jù)的分布式Top-k查詢方法,其特征在于,所述 步驟(113)的具體過程為: 支配節(jié)點Vi向鄰節(jié)點廣播支配信息,若鄰節(jié)點vj收到支配信息后且flag(vj) =0, 成為被支配節(jié)點,并向其鄰節(jié)點廣播被支配信息,若節(jié)點vk收到被支配信息后且flag(vk) =〇,若其鄰節(jié)點中已沒有未處理節(jié)點,即滿足flag(NB(vk)) = 1,則vk成為支配節(jié)點, ;^8(¥15)=1;否則比較£&^(¥ 15)〈1]1;[11伍&^(?(¥15)))是否成立,若成立,則¥ 15成為支配節(jié)點, 否則P(vk)中能量代價最小的成為支配節(jié)點;其中P(vk)表示vk的未處理鄰節(jié)點。
5. 根據(jù)權(quán)利要求1所述的面向物聯(lián)網(wǎng)數(shù)據(jù)的分布式Top-k查詢方法,其特征在于:所 述步驟(12)中,所述支配信息以列表形式存儲階段存儲被支配節(jié)點一跳、兩跳及三跳范圍 內(nèi)支配節(jié)點信息;所述連接節(jié)點選擇階段選擇能量代價較小的節(jié)點,使每個節(jié)點都有一條 到達最其近支配節(jié)點的代價最小路徑。
6. 根據(jù)權(quán)利要求1所述的面向物聯(lián)網(wǎng)數(shù)據(jù)的分布式Top-k查詢方法,其特征在于:所 述步驟(22)中,根節(jié)點發(fā)送探測信息過程是在k'<k成立時執(zhí)行,其中k'為根節(jié)點接收到的 更新值總數(shù),k為需要查詢數(shù)目;根節(jié)點先發(fā)送探測信息至剩余TM-node收集其top-(k-k') 值,再設(shè)置探測值probe=min(top-(k-k')),并發(fā)送給剩余F-node,F(xiàn)_node將大于探測值 的更新值發(fā)送至根節(jié)點。
【專利摘要】本發(fā)明公開一種面向物聯(lián)網(wǎng)數(shù)據(jù)的分布式Top-k查詢方法,包括以下步驟:(1)構(gòu)建最優(yōu)查詢樹,該步驟包括網(wǎng)絡(luò)骨干節(jié)點選取、連接節(jié)點選擇,以及每輪查詢各節(jié)點按ID號輪流擔任根節(jié)點三個過程;(2)基于最優(yōu)查詢樹進行Top-k查詢,該步驟包括查詢初始化、數(shù)據(jù)更新值發(fā)送、sink節(jié)點top-k查詢?nèi)齻€過程。本發(fā)明在構(gòu)建最優(yōu)查詢樹時充分考慮節(jié)點度數(shù)、自身能量以及與鄰節(jié)點通信開銷,選擇能量代價小的作為支配節(jié)點,有效均衡節(jié)點能耗,進一步解決了傳統(tǒng)查詢樹根節(jié)點唯一帶來的其附近節(jié)點過早死亡的問題,大大延長物聯(lián)網(wǎng)的生命周期,且查詢算法中通過設(shè)置過濾值來抑制每輪無效更新值的發(fā)送,有效降低平均每輪的查詢能耗。
【IPC分類】H04W40-10, H04W84-18
【公開號】CN104812015
【申請?zhí)枴緾N201510244016
【發(fā)明人】鄔海琴, 王良民, 湯金娥, 陳向益, 周從華
【申請人】江蘇大學
【公開日】2015年7月29日
【申請日】2015年5月14日