本發(fā)明屬于無線傳感器網(wǎng)絡(luò)數(shù)據(jù)收集領(lǐng)域,尤其涉及一種基于增強(qiáng)學(xué)習(xí)算法的移動(dòng)sink數(shù)據(jù)收集方法。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)是由部署在監(jiān)測(cè)區(qū)域內(nèi)大量的廉價(jià)微型傳感器節(jié)點(diǎn)組成,通過無線通信方式形成的一個(gè)多跳自組織的網(wǎng)絡(luò)系統(tǒng),其目的是協(xié)作地感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中被感知對(duì)象的信息,并發(fā)送給觀察者。
通常情況下,將傳感器采集的數(shù)據(jù)傳輸給基站有兩種方式:傳感器之間多跳傳輸和采用移動(dòng)數(shù)據(jù)收集器(簡稱移動(dòng)sink)。多跳傳輸即傳感器節(jié)點(diǎn)監(jiān)測(cè)的數(shù)據(jù)借助其他傳感器節(jié)點(diǎn)逐跳地進(jìn)行傳輸,在傳輸過程中監(jiān)測(cè)數(shù)據(jù)可能被多個(gè)節(jié)點(diǎn)處理,經(jīng)過多跳后最終路由轉(zhuǎn)發(fā)到基站。采用移動(dòng)sink的方式即安排一個(gè)移動(dòng)節(jié)點(diǎn),按照規(guī)劃好的路徑或者在數(shù)據(jù)收集過程中動(dòng)態(tài)的選擇訪問目標(biāo),移動(dòng)到傳感器節(jié)點(diǎn)附近,通過高帶寬通信方式(如光波通信)收集傳感器節(jié)點(diǎn)的數(shù)據(jù),然后返回基站。在無線傳感器網(wǎng)絡(luò)數(shù)據(jù)收集方面,這兩種數(shù)據(jù)收集方式各有利弊。在傳感器多跳傳輸方式中,如果采集的數(shù)據(jù)量比較小,那么在帶寬滿足的情況下采集到的數(shù)據(jù)傳輸給基站的延時(shí)會(huì)很短,能夠方便決策人員盡快地利用數(shù)據(jù);但是如果數(shù)據(jù)量較大,同時(shí)由于傳感器自身能量和帶寬的限制,數(shù)據(jù)傳輸?shù)男示蜁?huì)很低,甚至在某些情況下可能會(huì)導(dǎo)致靠近基站的節(jié)點(diǎn)能量過快耗盡從而減少傳感器網(wǎng)絡(luò)的存活時(shí)間。移動(dòng)sink收集數(shù)據(jù)在一定程度上增大了數(shù)據(jù)收集延遲,但是可以避免某些傳感器節(jié)點(diǎn)能量消耗過度而死亡的情況,從而有利于從整體上延長傳感器網(wǎng)絡(luò)的存活時(shí)間。此外,使用單跳的移動(dòng)sink收集數(shù)據(jù)會(huì)簡化傳感器節(jié)點(diǎn)的硬件設(shè)計(jì)和軟件構(gòu)造,減少整個(gè)網(wǎng)絡(luò)的部署成本。
在通過移動(dòng)sink收集數(shù)據(jù)的無線傳感網(wǎng)中,移動(dòng)sink的路徑規(guī)劃是影響數(shù)據(jù)收集性能的重要因素。在網(wǎng)絡(luò)時(shí)延給定的前提下,如何有效地規(guī)劃數(shù)據(jù)收集路徑從而使得傳感器數(shù)據(jù)能夠?qū)崟r(shí)、充分地傳輸?shù)交臼窃O(shè)計(jì)無線傳感器網(wǎng)絡(luò)數(shù)據(jù)收集算法的關(guān)鍵。本發(fā)明提出了一種新的基于增強(qiáng)學(xué)習(xí)算法的sink路徑規(guī)劃方法,能夠有效地收集傳感器數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是針對(duì)背景技術(shù)的不足提供一種基于增強(qiáng)學(xué)習(xí)算法的移動(dòng)sink數(shù)據(jù)收集方法。
本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案
一種基于增強(qiáng)學(xué)習(xí)算法的移動(dòng)sink數(shù)據(jù)收集方法,具體包含如下步驟:
步驟1:根據(jù)傳感器節(jié)點(diǎn)的通信半徑將監(jiān)測(cè)區(qū)域劃分成若干個(gè)正方形區(qū)域;
步驟2:移動(dòng)sink在內(nèi)存中構(gòu)建一個(gè)m行n列的動(dòng)作價(jià)值評(píng)價(jià)矩陣q,其中m為狀態(tài)數(shù),n為行為數(shù);
步驟3:移動(dòng)sink以洪泛方式向鄰近區(qū)域發(fā)送探測(cè)報(bào)文,請(qǐng)求查詢鄰近區(qū)域的數(shù)據(jù)價(jià)值;
步驟4:在各個(gè)鄰近區(qū)域內(nèi),各傳感器節(jié)點(diǎn)根據(jù)自身剩余能量由大到小排序選出簇頭節(jié)點(diǎn),將感知數(shù)據(jù)多跳傳輸給簇頭節(jié)點(diǎn),各個(gè)簇頭節(jié)點(diǎn)根據(jù)價(jià)值公式計(jì)算出數(shù)據(jù)價(jià)值;
步驟5:各個(gè)簇頭節(jié)點(diǎn)將數(shù)據(jù)價(jià)值回傳給移動(dòng)sink;
步驟6:移動(dòng)sink在收到鄰近狀態(tài)的數(shù)據(jù)價(jià)值后,根據(jù)增強(qiáng)學(xué)習(xí)算法公式更新矩陣q,然后計(jì)算出剩余時(shí)間所能夠訪問的鄰近區(qū)域集合,最后根據(jù)ε-greedy策略,以ε概率選擇矩陣q中當(dāng)前狀態(tài)對(duì)應(yīng)的一行中元素值最大的行為,以1-ε概率隨機(jī)選擇其他(n-1)種行為;
步驟7:當(dāng)移動(dòng)sink到達(dá)一個(gè)新區(qū)域時(shí),收集簇頭節(jié)點(diǎn)所感知的數(shù)據(jù);
步驟8:計(jì)算移動(dòng)sink的可用剩余時(shí)間,如果能夠支持下一輪訪問則轉(zhuǎn)步驟3,否則移動(dòng)sink回到基站回收所收集的數(shù)據(jù),并結(jié)束本輪數(shù)據(jù)收集過程。
作為本發(fā)明一種基于增強(qiáng)學(xué)習(xí)算法的移動(dòng)sink數(shù)據(jù)收集方法的進(jìn)一步優(yōu)選方案,在步驟1中,規(guī)劃的區(qū)域是邊長為
作為本發(fā)明一種基于增強(qiáng)學(xué)習(xí)算法的移動(dòng)sink數(shù)據(jù)收集方法的進(jìn)一步優(yōu)選方案,在步驟4中,價(jià)值公式為fvoi(t)=ae-bt,其中a表示數(shù)據(jù)初始價(jià)值,b表示價(jià)值衰減速率,t表示數(shù)據(jù)從收集開始經(jīng)過的時(shí)間。
作為本發(fā)明一種基于增強(qiáng)學(xué)習(xí)算法的移動(dòng)sink數(shù)據(jù)收集方法的進(jìn)一步優(yōu)選方案,在步驟2中,矩陣q為動(dòng)作價(jià)值評(píng)價(jià)矩陣。
作為本發(fā)明一種基于增強(qiáng)學(xué)習(xí)算法的移動(dòng)sink數(shù)據(jù)收集方法的進(jìn)一步優(yōu)選方案,在步驟6中,增強(qiáng)學(xué)習(xí)算法公式為
其中,s表示當(dāng)前的狀態(tài),a表示當(dāng)前的行為;α表示學(xué)習(xí)速率;r(s,a)表示當(dāng)移動(dòng)sink處于狀態(tài)s時(shí)采取動(dòng)作a會(huì)取得的立即獎(jiǎng)勵(lì);
本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
本發(fā)明提出的移動(dòng)sink路徑規(guī)劃方法有助于提升數(shù)據(jù)收集質(zhì)量,克服了傳統(tǒng)的無線傳感網(wǎng)數(shù)據(jù)收集方案只關(guān)注收集數(shù)據(jù)的量,而忽視了采集數(shù)據(jù)的質(zhì)量問題,通過引入了價(jià)值函數(shù)公式,從初始價(jià)值和衰減速率兩個(gè)方面綜合考慮傳感器感應(yīng)數(shù)據(jù),可以在時(shí)延固定的前提下,提高數(shù)據(jù)收集的質(zhì)量,最大化數(shù)據(jù)的利用率。
附圖說明
圖1是本發(fā)明網(wǎng)絡(luò)區(qū)域劃分圖。
圖2是本發(fā)明的實(shí)現(xiàn)模型圖。
圖3是本發(fā)明基于增強(qiáng)學(xué)習(xí)的路徑規(guī)劃算法流程圖。
具體實(shí)施方式
下面結(jié)合說明書附圖及具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)說明。具體實(shí)施方式描述如下:
增強(qiáng)學(xué)習(xí)算法中有狀態(tài)、動(dòng)作和獎(jiǎng)賞這三個(gè)要素。智能體需要根據(jù)當(dāng)前狀態(tài)來采取動(dòng)作,獲得相應(yīng)的獎(jiǎng)賞之后,再去改進(jìn)這些動(dòng)作,使得下次再到相同狀態(tài)時(shí),智能體能做出更優(yōu)的動(dòng)作。本發(fā)明將移動(dòng)sink類比為智能體,下面對(duì)各要素在以無線傳感器網(wǎng)絡(luò)為背景的條件下進(jìn)行具體說明:
狀態(tài):將整個(gè)傳感器網(wǎng)絡(luò)區(qū)域根據(jù)節(jié)點(diǎn)通信半徑劃分為若干個(gè)相同的正方形區(qū)域,每個(gè)區(qū)域內(nèi)包含數(shù)量近似的傳感器節(jié)點(diǎn),則每個(gè)區(qū)域就等價(jià)于一個(gè)狀態(tài)。
動(dòng)作:當(dāng)移動(dòng)sink處于某個(gè)狀態(tài)收集完該區(qū)域內(nèi)的數(shù)據(jù)時(shí),它需要決定下一個(gè)訪問的區(qū)域或者停留在原地,這將導(dǎo)致狀態(tài)的轉(zhuǎn)變即動(dòng)作。
獎(jiǎng)賞:當(dāng)移動(dòng)sink有多個(gè)動(dòng)作可考慮的時(shí)候,選擇哪一個(gè)動(dòng)作的依據(jù)就是獎(jiǎng)賞,在傳感器網(wǎng)絡(luò)背景中,我們將量化的傳感器數(shù)據(jù)價(jià)值類比為獎(jiǎng)賞。
對(duì)應(yīng)于智能體的狀態(tài)和動(dòng)作,增強(qiáng)學(xué)習(xí)算法有一個(gè)動(dòng)作效用函數(shù),用于評(píng)價(jià)在特定狀態(tài)下智能體采取某個(gè)動(dòng)作的優(yōu)劣。通常情況下,當(dāng)智能體處于某個(gè)狀態(tài)時(shí)會(huì)采用效用最優(yōu)的動(dòng)作,但是這樣會(huì)導(dǎo)致移動(dòng)sink一直會(huì)被桎梏在以往的經(jīng)驗(yàn)之中而不能探索到某些更好的選擇。
本發(fā)明使用ε-greedy策略來決定移動(dòng)sink的動(dòng)作,ε-greedy策略即除了根據(jù)最優(yōu)效用值來決定下一步動(dòng)作,還會(huì)以某種概率考慮隨機(jī)動(dòng)作,這樣可以保持一個(gè)探索未知狀態(tài)與利用之前經(jīng)驗(yàn)之間的平衡。
每當(dāng)移動(dòng)sink到達(dá)某一狀態(tài),在該區(qū)域收集完數(shù)據(jù)后,就根據(jù)增強(qiáng)學(xué)習(xí)公式更新移動(dòng)sink的效用函數(shù)。然后再判斷剩余時(shí)間能否支持下一區(qū)域訪問,如果可以則繼續(xù)迭代,否則終止訪問回到基站傳輸數(shù)據(jù)。增強(qiáng)學(xué)習(xí)公式為:
其中s和a分別表示當(dāng)前的狀態(tài)和動(dòng)作;q(s,a)表示在狀態(tài)s下采取動(dòng)作a得到的效用評(píng)價(jià);α表示學(xué)習(xí)速率,學(xué)習(xí)速率越大,保留之前學(xué)習(xí)的效果就越少;r(s,a)表示當(dāng)移動(dòng)sink處于狀態(tài)s時(shí)采取動(dòng)作a會(huì)取得的立即獎(jiǎng)勵(lì);
為了方便描述,我們假定有如下應(yīng)用實(shí)例,如圖2所示。基站位于監(jiān)測(cè)區(qū)域邊緣,初始時(shí)移動(dòng)sink從基站出發(fā),假設(shè)一趟收集時(shí)間定為t,移動(dòng)sink沒有能量和數(shù)據(jù)容量限制,其移動(dòng)速度恒定為v,通信范圍和傳感器節(jié)點(diǎn)相同且移動(dòng)sink可以通過定位技術(shù)計(jì)算出其和終點(diǎn)基站的距離從而能夠計(jì)算某一時(shí)刻其返回基站所需時(shí)間。
如圖3所示,一種基于增強(qiáng)學(xué)習(xí)算法的移動(dòng)sink數(shù)據(jù)收集方法的過程如下:
步驟1:為了覆蓋監(jiān)測(cè)區(qū)域,將部署的傳感器網(wǎng)絡(luò)劃分成若干個(gè)邊長為
步驟2:移動(dòng)sink在其內(nèi)存中構(gòu)建一個(gè)m行n列的矩陣q(m為狀態(tài)數(shù),n為行為數(shù)),并初始化為零矩陣。q為動(dòng)作價(jià)值評(píng)價(jià)矩陣,用于評(píng)價(jià)在特定狀態(tài)下采取某個(gè)動(dòng)作的優(yōu)劣,可以將之理解為移動(dòng)sink的知識(shí)庫。
步驟3:移動(dòng)sink以洪泛方式向鄰近區(qū)域發(fā)送探測(cè)報(bào)文,請(qǐng)求查詢節(jié)點(diǎn)的數(shù)據(jù)價(jià)值。
步驟4:在各個(gè)鄰近區(qū)域內(nèi),各傳感器節(jié)點(diǎn)向鄰近節(jié)點(diǎn)發(fā)送剩余能量查詢數(shù)據(jù)請(qǐng)求包,然后根據(jù)剩余能量由大到小排序,剩余能量最大的被選為該區(qū)域的簇頭節(jié)點(diǎn),負(fù)責(zé)收集區(qū)域內(nèi)所有數(shù)據(jù);同時(shí),各個(gè)簇頭節(jié)點(diǎn)根據(jù)價(jià)值公式計(jì)算出該區(qū)域內(nèi)數(shù)據(jù)在t時(shí)刻的價(jià)值。其中,價(jià)值公式為fvoi(t)=ae-bt,a表示數(shù)據(jù)初始價(jià)值,b表示價(jià)值衰減速率,t表示數(shù)據(jù)從收集開始經(jīng)過的時(shí)間。
步驟5:各個(gè)簇頭節(jié)點(diǎn)將數(shù)據(jù)價(jià)值回傳給移動(dòng)sink。
步驟6:移動(dòng)sink在收到鄰近狀態(tài)的數(shù)據(jù)價(jià)值后,根據(jù)增強(qiáng)學(xué)習(xí)算法公式更新矩陣q。然后根據(jù)內(nèi)置的計(jì)時(shí)器計(jì)算出本次收集過程剩余時(shí)間,利用定位技術(shù)計(jì)算獲得移動(dòng)sink和終點(diǎn)之間的距離,結(jié)合速度v從而計(jì)算出所能夠訪問的鄰近區(qū)域集合,然后根據(jù)ε-greedy策略,以ε概率選擇q值最大的區(qū)域進(jìn)行訪問,以1-ε概率隨機(jī)訪問其他的鄰近區(qū)域。
步驟7:移動(dòng)sink到達(dá)新區(qū)域中心位置,收集簇頭節(jié)點(diǎn)所感知的數(shù)據(jù)。
步驟8:移動(dòng)sink根據(jù)內(nèi)置的計(jì)時(shí)器計(jì)算剩余收集時(shí)間,如果所剩時(shí)間能夠支持下一輪鄰近區(qū)域數(shù)據(jù)收集則轉(zhuǎn)步驟3,否則移動(dòng)sink回到基站回收所收集的數(shù)據(jù),并結(jié)束本輪數(shù)據(jù)收集過程。