本發(fā)明涉及可充電無線傳感器領(lǐng)域,具體涉及一種可充電無線傳感器網(wǎng)絡(luò)中最大化異常事件捕捉率的方法。
背景技術(shù):
通過部署無線傳感器節(jié)點(diǎn)來監(jiān)測特定區(qū)域是無線傳感器網(wǎng)絡(luò)中一個重要的應(yīng)用。傳統(tǒng)的傳感器節(jié)點(diǎn)受限于節(jié)點(diǎn)電池容量,無法滿足一些需要長期監(jiān)測的應(yīng)用場景的需求。一個可行的方法是部署可充電的傳感器節(jié)點(diǎn),這類節(jié)點(diǎn)可以通過捕獲環(huán)境或者專用能量源來提供自身的工作能量消耗。此外,由于單個節(jié)點(diǎn)監(jiān)測一個目標(biāo)點(diǎn)存在不確定性,因此需要增大對目標(biāo)點(diǎn)的節(jié)點(diǎn)覆蓋密度來保證事件監(jiān)測的可靠性。為了得到更好的事件監(jiān)測效率,可以考慮讓多個節(jié)點(diǎn)協(xié)同工作來監(jiān)測同一目標(biāo)點(diǎn)。
但目前而言,可充電傳感器節(jié)點(diǎn)的能量捕獲效率都是比較弱的,高效的能量管理策略是更好發(fā)揮可充電無線傳感器網(wǎng)絡(luò)(wirelessrechargeablesensornetworks,wrsn)優(yōu)勢的至關(guān)重要的因素。
技術(shù)實(shí)現(xiàn)要素:
為了克服已有無線傳感器網(wǎng)絡(luò)的能量捕獲效率較低、復(fù)雜度較大、節(jié)能性較差的不足,本發(fā)明提供一種復(fù)雜度較小、節(jié)能性較好、能量捕獲效率較高的可充電無線傳感器網(wǎng)絡(luò)中最大化異常事件捕捉率的方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種可充電無線傳感器網(wǎng)絡(luò)中最大化異常事件捕捉率的方法,所述方法包括以下步驟:
s1、視基站為超級節(jié)點(diǎn),各個傳感器節(jié)點(diǎn)的工作狀態(tài)由基站統(tǒng)一調(diào)度,將多對一問題簡化成一對一問題;
s2、根據(jù)能耗價值比計(jì)算每個周期的最優(yōu)任務(wù)分配方案;
s3、基站根據(jù)各個節(jié)點(diǎn)能量信息選擇節(jié)點(diǎn)集完成所分配的任務(wù);
s4、任務(wù)周期結(jié)束后,各個節(jié)點(diǎn)向基站上傳自身能量信息,基站根據(jù)能量信息重新選擇節(jié)點(diǎn)集準(zhǔn)備進(jìn)入下一任務(wù)周期。
進(jìn)一步,所述步驟s1包括以下步驟:
1.1)所述的異常事件監(jiān)測場景是通過部署多個可充電傳感器節(jié)點(diǎn)來監(jiān)測一個目標(biāo)點(diǎn)的異常事件發(fā)生,該異常事件的發(fā)生無法直接由單個傳感器數(shù)據(jù)進(jìn)行判斷,而需要有多種不同類型的傳感數(shù)據(jù)聯(lián)合來進(jìn)行推斷;
1.2)每個傳感器節(jié)點(diǎn)上集成了多種類型的傳感器,節(jié)點(diǎn)的采集數(shù)據(jù)及能量狀態(tài)信息以單跳方式直接上傳至基站。
再進(jìn)一步,所述的步驟s2包括以下步驟:
2.1)定義傳感器節(jié)點(diǎn)的能量消耗和與之產(chǎn)生的價值的比值為能耗價值比。
2.2)不失一般性,假設(shè)事件的發(fā)生服從泊松分布,推導(dǎo)出性質(zhì):打開傳感器個數(shù)與能耗價值比成反比;
2.3)根據(jù)性質(zhì)一基于貪心算法得到每個周期的最優(yōu)任務(wù)分配方案。
更進(jìn)一步,所述的步驟s3包括以下步驟:
3.1)基站在每個工作周期開始前周期性的盤詢各個節(jié)點(diǎn)的能量狀態(tài)信息;
3.2)根據(jù)各個節(jié)點(diǎn)的能量狀態(tài)信息,選擇首次能滿足工作任務(wù)的節(jié)點(diǎn)集;
3.3)處在工作集中的節(jié)點(diǎn)按照基站分配的工作任務(wù)打開相應(yīng)類型的傳感器,開始工作至該周期結(jié)束。
本發(fā)明的技術(shù)構(gòu)思為:本發(fā)明考慮通過部署多個可充電的傳感器節(jié)點(diǎn)來監(jiān)測特定區(qū)域的隨機(jī)異常事件,不同于其他研究大多考慮隨機(jī)事件的發(fā)生是基于單一因素的,例如在監(jiān)測森林火災(zāi)的場景中,僅僅通過溫度超過閾值這一單一因素來代表隨機(jī)事件火災(zāi)的發(fā)生。在實(shí)際場景中,溫度的驟變并不能確定一定是火災(zāi)發(fā)生,也可能是監(jiān)測區(qū)域正好遭遇瞬間雷擊。為了更加準(zhǔn)確的預(yù)測異常事件的發(fā)生,需要有能反應(yīng)異常事件發(fā)生的多種類型的傳感數(shù)據(jù)來綜合參考。而為了獲取不同類型的傳感數(shù)據(jù),可以考慮部署具有不同感知功能的節(jié)點(diǎn),但隨著節(jié)點(diǎn)數(shù)量的增多,部署成本以及網(wǎng)絡(luò)規(guī)模也會隨之增加。因此給每個節(jié)點(diǎn)配置多種類型的傳感器是必要的,這樣一來既可以減小網(wǎng)絡(luò)規(guī)模又一定程度上降低了部署成本。這種可充電節(jié)點(diǎn)在實(shí)際應(yīng)用中也有現(xiàn)實(shí)模型的。例如由英特爾西雅圖研究院推出的wisp(wirelessidentificationandsensingplatform)節(jié)點(diǎn)可以通過捕獲射頻能來提供自身的工作能耗,該節(jié)點(diǎn)內(nèi)置加速度傳感器、溫度傳感器和光照傳感器,并且還可以根據(jù)實(shí)際需求配置其他類型的低功耗傳感器。
本發(fā)明的有益效果主要表現(xiàn)在:利用貧瘠的能量來最大化異常事件的成功捕捉率,復(fù)雜度較小、節(jié)能性較好。
附圖說明
圖1為異常事件監(jiān)測模型。
圖2為傳感器節(jié)點(diǎn)的能量模型。
圖3為求解總?cè)蝿?wù)算法流程圖。
圖4為節(jié)點(diǎn)任務(wù)分配算法流程圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步描述。
參照圖1~圖4,一種可充電無線傳感器網(wǎng)絡(luò)中最大化異常事件捕捉率的方法,所述方法包括以下步驟:
s1、視基站為超級節(jié)點(diǎn),各個傳感器節(jié)點(diǎn)的工作狀態(tài)由基站統(tǒng)一調(diào)度,將多對一問題簡化成一對一問題;
s2、根據(jù)能耗價值比計(jì)算每個周期的最優(yōu)任務(wù)分配方案;
s3、基站根據(jù)各個節(jié)點(diǎn)能量信息選擇節(jié)點(diǎn)集完成所分配的任務(wù);
s4、任務(wù)周期結(jié)束后,各個節(jié)點(diǎn)向基站上傳自身能量信息,基站根據(jù)能量信息重新選擇節(jié)點(diǎn)集準(zhǔn)備進(jìn)入下一任務(wù)周期。
進(jìn)一步,所述步驟s1包括以下步驟:
1.1)所述的異常事件監(jiān)測場景是通過部署多個可充電傳感器節(jié)點(diǎn)來監(jiān)測一個目標(biāo)點(diǎn)的異常事件發(fā)生,該異常事件的發(fā)生無法直接由單個傳感器數(shù)據(jù)進(jìn)行判斷,而需要有多種不同類型的傳感數(shù)據(jù)聯(lián)合來進(jìn)行推斷;
1.2)每個傳感器節(jié)點(diǎn)上集成了多種類型的傳感器,節(jié)點(diǎn)的采集數(shù)據(jù)及能量狀態(tài)信息以單跳方式直接上傳至基站。
再進(jìn)一步,所述的步驟s2包括以下步驟:
2.1)定義傳感器節(jié)點(diǎn)的能量消耗和與之產(chǎn)生的價值的比值為能耗價值比。
2.2)不失一般性,假設(shè)事件的發(fā)生服從泊松分布,推導(dǎo)出性質(zhì):打開傳感器個數(shù)與能耗價值比成反比;
2.3)根據(jù)性質(zhì)一基于貪心算法得到每個周期的最優(yōu)任務(wù)分配方案。
更進(jìn)一步,所述的步驟s3包括以下步驟:
3.1)基站在每個工作周期開始前周期性的盤詢各個節(jié)點(diǎn)的能量狀態(tài)信息;
3.2)根據(jù)各個節(jié)點(diǎn)的能量狀態(tài)信息,選擇首次能滿足工作任務(wù)的節(jié)點(diǎn)集;
3.3)處在工作集中的節(jié)點(diǎn)按照基站分配的工作任務(wù)打開相應(yīng)類型的傳感器,開始工作至該周期結(jié)束。
本發(fā)明所涉及到的無線傳感器網(wǎng)絡(luò)異常事件捕獲場景是在一個確定區(qū)域內(nèi)隨機(jī)部署了n個傳感器節(jié)點(diǎn),它們共同來監(jiān)測1個目標(biāo)點(diǎn)的異常事件,該異常事件后稱混合型事件,包含k個原子事件(即混合型事件發(fā)生時一定會伴隨有k個原子事件的發(fā)生)如圖1所示。為不失一般性,本發(fā)明假設(shè)隨機(jī)事件的發(fā)生服從泊松分布。每個可充電傳感器節(jié)點(diǎn)上裝配有k個不同類型的傳感器分別用來監(jiān)測這k個原子事件,節(jié)點(diǎn)可以通過捕獲周圍環(huán)境能量來提供自身工作的能量消耗。當(dāng)某一類型的傳感器采集值超過一定閾值時即認(rèn)為該類型原子事件發(fā)生。各種原子事件的發(fā)生情況共同決定混合型事件是否發(fā)生,我們用權(quán)值關(guān)系來反應(yīng)這種相關(guān)性:
π=ω1p1+ω2p2+…+ωkpk(1)
其中ωi表示第k類型事件發(fā)生可以預(yù)測混合型事件發(fā)生的權(quán)重,pi表示第k類型事件發(fā)生后,在該時隙所有的傳感器節(jié)點(diǎn)能夠聯(lián)合捕獲到該事件的概率,pi的具體表達(dá)式為:
pd=1-(1-p)m(2)
其中m是同時打開捕獲該類型原子事件傳感器的個數(shù)。
受限于可充電傳感器節(jié)點(diǎn)的能量捕捉速率,無法一直保證節(jié)點(diǎn)的各個傳感都處于工作狀態(tài),這樣就會導(dǎo)致異常事件漏捕。為了獲得最大的混合型(異常)事件捕捉率,需要以最優(yōu)的方法對各個節(jié)點(diǎn)的能耗情況進(jìn)行管理。
由于每個節(jié)點(diǎn)是監(jiān)測同一個目標(biāo)點(diǎn),所以各個節(jié)點(diǎn)之間的工作存在關(guān)聯(lián)性。為獲取總的最優(yōu),需要各個節(jié)點(diǎn)之間采用合理的協(xié)同工作策略。下面,我們給出異常事件成功捕捉率的數(shù)學(xué)模型u(θ):
其中xt取值0或1,表示t時隙混合型事件是否發(fā)生,ai,j,t取值0和1,表示第i個節(jié)點(diǎn)在t時隙是否開啟第j類型傳感器,wj表示第j類事件的權(quán)值,p表示某個原子事件發(fā)生后被捕獲到的概率。
考慮到實(shí)際情況,當(dāng)預(yù)測混合型事件發(fā)生的概率需要超過一定閾值時,采集數(shù)據(jù)才是具有價值的,即:
其中0<ε<1,取值由人為經(jīng)驗(yàn)確定。由于是可充電傳感器節(jié)點(diǎn),每個節(jié)點(diǎn)的能量模型可由如圖2所示。其中假設(shè)在t時隙內(nèi),節(jié)點(diǎn)從環(huán)境中能夠捕獲的能量為he,其中h為不小于0的整數(shù),e為單位能量,b為電池容量。節(jié)點(diǎn)的耗能情況可分為二種情況,第一種是當(dāng)節(jié)點(diǎn)關(guān)閉傳感器時,這時的能耗主要來自于保持節(jié)點(diǎn)自身不復(fù)位和必要的信息同步耗能,用δ0表示。第二種是節(jié)點(diǎn)開啟傳感器的情況,此時節(jié)點(diǎn)的能耗除了自身的工作耗能,還有開啟傳感器采集數(shù)據(jù)耗能和傳遞數(shù)據(jù)耗能,用δ+δ0表示。其中δ表示節(jié)點(diǎn)開啟傳感器采集數(shù)據(jù)的能耗和將數(shù)據(jù)上傳給基站的能耗總和,它與開啟的傳感器數(shù)量和種類有關(guān)。
每個時隙傳感器節(jié)點(diǎn)的剩余能量可以用下式表示:
那么上述的問題轉(zhuǎn)換成下面的最優(yōu)化問題:
maxu(θ)
0≤p≤1
(4)and(5)
從總的周期t上看,節(jié)點(diǎn)i開啟傳感器的行為可以用如下矩陣a表示,其中axy取值0或1分別表示節(jié)點(diǎn)i在第x時隙關(guān)閉或打開第y種類型的傳感器,i=1,2,3…n,x=1,2,…t,y=1,2,…k:
為了滿足(4)式約束條件,一般需要在同一時隙內(nèi)同時開啟多個傳感器節(jié)點(diǎn)。這樣各個節(jié)點(diǎn)之間需要協(xié)同工作,每個節(jié)點(diǎn)需要掌握其他節(jié)點(diǎn)的工作狀態(tài),將帶來比較大的通信和計(jì)算開銷。而考慮到每個節(jié)點(diǎn)是以單跳的方式直接將傳感數(shù)據(jù)上傳給同一個基站進(jìn)行處理,我們可以依賴基站對各個節(jié)點(diǎn)進(jìn)行統(tǒng)一管理?;臼怯性吹模恍枰紤]能量不足問題,它負(fù)責(zé)對各個節(jié)點(diǎn)的傳感數(shù)據(jù)進(jìn)行統(tǒng)一收集并做出異常處理?;诘刃枷?,我們可以假設(shè)基站是一個超級節(jié)點(diǎn),那么對于多個節(jié)點(diǎn)監(jiān)測一個目標(biāo)點(diǎn)的問題可以轉(zhuǎn)化為一個節(jié)點(diǎn)監(jiān)測一個目標(biāo)點(diǎn)的問題。類似的,超級傳感器節(jié)點(diǎn)開啟傳感器的行為就可以用矩陣a*表示,其中
記μ=1-p,用ctj表示在第t個時隙超級節(jié)點(diǎn)打開第j類型傳感器的個數(shù),那么u(θ)的表達(dá)式變成:
考慮到泊松過程的特征,數(shù)據(jù)與動態(tài)事件發(fā)生沒有內(nèi)在聯(lián)系。由于超級節(jié)點(diǎn)的電池容量b是有限的,當(dāng)超級節(jié)點(diǎn)在保證每個決策時隙產(chǎn)生的數(shù)據(jù)都可能帶來價值(π>ε)的情況下,以最優(yōu)的能量分配方案(即每次捕獲的能量都能收獲最大價值)進(jìn)行調(diào)度將會得到總的最大事件捕捉率。我們引入一個變量γ來反應(yīng)耗能與產(chǎn)生價值的關(guān)系,后稱能耗價值比。
計(jì)
同時需滿足:
注意到
本發(fā)明提出一種高效的任務(wù)分配方案。方案分為兩步:
第一步是得到滿足閾值條件的總?cè)蝿?wù),即通過貪心算法尋找出每種傳感器至少需要打開的數(shù)量。
第二步是將總?cè)蝿?wù)分配給滿足任務(wù)需求的節(jié)點(diǎn)集,即確定該任務(wù)周期各個節(jié)點(diǎn)需要開啟的傳感器種類。
首先,得到每個工作周期總?cè)蝿?wù)的算法步驟如下:
步驟1:判斷超級節(jié)點(diǎn)的能量捕捉速率是否大于開啟所有傳感器的能量消耗速率,若大于則開啟所有傳感器,并一直保持該工作方式。若小于,進(jìn)入步驟2。
步驟2:計(jì)算打開每種傳感器的能耗價值比,并遞減排序。將遞減序列記錄在一個隊(duì)列q中。
步驟3:每種傳感器的打開數(shù)量初始化為0,記錄在一個傳感器打開數(shù)量數(shù)組a=[0,0,…,0]中。
步驟4:選擇當(dāng)前隊(duì)列q中能得到能耗價值比最大的傳感器類型i,并對該傳感器類型的打開數(shù)量加1(a[i]++),該傳感器類型從q先出隊(duì)后入隊(duì)。
步驟5:判斷當(dāng)前達(dá)到的預(yù)測概率π,若π>ε,進(jìn)行下一步。否則,重復(fù)步驟4。
步驟6:輸出a,即為滿足閾值條件下,每種類型的傳感器需要打開的數(shù)量。
接下來是尋找能滿足任務(wù)a的節(jié)點(diǎn)集??紤]到各個節(jié)點(diǎn)的電池容量是有限的,為了避免過充導(dǎo)致的能量浪費(fèi),每個任務(wù)周期結(jié)束后,各個節(jié)點(diǎn)的剩余能量需要比較均衡?,F(xiàn)提出一種算法步驟如下:
步驟1:將a內(nèi)元素a[i]整理成具有傳感器名稱,打開數(shù)量和耗能速率三個屬性的數(shù)據(jù)結(jié)構(gòu)類型,即a[i]={傳感器名稱:name,打開數(shù)量:count,耗能數(shù)率:ratio}。根據(jù)耗能速率對a進(jìn)行遞減排序。
步驟2:初始化索引值loop=0。
步驟3:初始化各個傳感器節(jié)點(diǎn)的任務(wù)分配向量wi=[0,0,…,0]。
步驟4:開始迭代。
步驟5:選擇當(dāng)前剩余能量最多的節(jié)點(diǎn)si。
步驟6:若a[loop].count>0,即該類型傳感器任務(wù)未分配完,進(jìn)行步驟7。否則loop+=1,重復(fù)步驟6。
步驟7:若si未分配過該任務(wù),根據(jù)a[loop].name找到該傳感器索引值j,賦值wi[j]=1。進(jìn)行步驟8。否則,找到剩余能量次之的節(jié)點(diǎn)重復(fù)步驟7。
步驟8:loop+=1,若loop=傳感器類型數(shù)k,進(jìn)行步驟9,否則更新分配后的能量信息,進(jìn)行步驟5。
步驟9:判斷總?cè)蝿?wù)是否分配完,即a[i].count=0,(i=0,…,k-1)。若是進(jìn)行步驟11,否則進(jìn)行步驟10。
步驟10:loop=0,更新分配后的能量信息,進(jìn)行步驟5。
步驟11:輸出每個傳感器節(jié)點(diǎn)任務(wù)分配向量wi。
通過上面的方法,根據(jù)各個傳感器當(dāng)前時隙的能量剩余情況,計(jì)算出了下一個時隙每個節(jié)點(diǎn)將會分得的任務(wù)。接下來就是關(guān)閉所有節(jié)點(diǎn)的傳感器和通信模塊,使各個節(jié)點(diǎn)以最大的能量補(bǔ)充速率進(jìn)行蓄電。等到每個節(jié)點(diǎn)的能量情況都能滿足下一時隙的工作能耗時,啟動任務(wù)。具體步驟如下:
步驟1:初始化變量t=1。
步驟2:基站基于上一工作時隙各個節(jié)點(diǎn)能量剩余情況計(jì)算下一工作時隙各個節(jié)點(diǎn)的任務(wù)。
步驟3:基站判斷每個節(jié)點(diǎn)的能量情況是否都滿足工作能耗,若是,進(jìn)行步驟4.否則,重復(fù)步驟2。
步驟4:基站以廣播的方式通知各個傳感器節(jié)點(diǎn)啟動各自任務(wù)。
步驟5:當(dāng)前時隙結(jié)束,t+=1,重復(fù)進(jìn)行步驟2
通過以上操作,經(jīng)過一個較長的時間t后,可以統(tǒng)計(jì)無線傳感器網(wǎng)絡(luò)對異常事件的成功捕捉率: