基于層次聚類的數(shù)據(jù)匯聚方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及無線傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別是涉及一種基于層次聚類的數(shù)據(jù)匯聚 方法和基于層次聚類的數(shù)據(jù)匯聚系統(tǒng)。
【背景技術(shù)】
[0002] 隨著傳感器技術(shù)、嵌入式計算技術(shù)、通信技術(shù)、分布式信息處理技術(shù)、微電子制造 技術(shù)以及軟件編程技術(shù)的發(fā)展,促成了無線傳感器網(wǎng)絡(luò)的迅速興起。無線傳感器可以感知 一定網(wǎng)絡(luò)范圍內(nèi)的監(jiān)測對象的狀態(tài),并把收集到的數(shù)據(jù)進行處理和轉(zhuǎn)發(fā)。無線傳感器網(wǎng)絡(luò) 需要周期性的采集數(shù)據(jù)轉(zhuǎn)發(fā)到數(shù)據(jù)處理中心,為了保證實時性,數(shù)據(jù)轉(zhuǎn)發(fā)的周期很短,因此 在無線傳感器網(wǎng)絡(luò)中,存在大量的數(shù)據(jù)需要傳輸,可能會造成數(shù)據(jù)傳輸擁塞。同時,由于距 離近的傳感器之間數(shù)據(jù)的相似性,會造成數(shù)據(jù)的冗余。另外,傳感器一般采用電池供電,能 量有限,不易補充。為了改善無線傳感器網(wǎng)絡(luò),下面兩種技術(shù)方案做了相關(guān)改進。
[0003] 第一種主要通過四步完成:第一、各錨節(jié)點進行第一次廣播,通過泛洪的方式向整 個網(wǎng)絡(luò)傳遞錨節(jié)點的坐標及跳數(shù)信息,每個錨節(jié)點獲取其他錨節(jié)點的坐標及跳數(shù)信息,每 個未知節(jié)點獲取距離最短的錨節(jié)點的坐標及跳數(shù)信息;第二、根據(jù)每個錨節(jié)點與其它錨節(jié) 點位置和相隔跳數(shù)計算網(wǎng)絡(luò)中平均每跳距離,并將平均每跳距離作為一個校正值廣播至網(wǎng) 絡(luò)中;第三、各錨節(jié)點進行第二次廣播,將校正值繼續(xù)以泛洪的方式在網(wǎng)絡(luò)中傳遞,未知節(jié) 點獲取距離最短的錨節(jié)點的校正值作為該未知節(jié)點的平均每跳距離,并計算未知節(jié)點到錨 節(jié)點的距離;第四、通過最小二乘法計算未知節(jié)點的坐標。該技術(shù)方案采用洪泛的方式進行 數(shù)據(jù)采集,因此效率比較低,會造成較高的網(wǎng)絡(luò)負載。
[0004] 第二種主要通過三步完成:第一、網(wǎng)絡(luò)初始化階段,匯聚節(jié)點在整個網(wǎng)絡(luò)中發(fā)送廣 播消息,所有節(jié)點根據(jù)接收到的信號強度RSSI(ReceivedSignalStrengthIndication, 接收的信號強度指示)計算出其到匯聚節(jié)點的近似距離并放在緩存中;第二、輪簇過程,節(jié) 點根據(jù)自身的剩余能量和每一輪的能量采集速率每周期時間進行一次輪簇過程,每個節(jié)點 根據(jù)自身的剩余能量和能量采集速率值競爭簇頭,每一輪包括成簇階段和簇間路由階段; 第三、成簇階段:節(jié)點根據(jù)自身剩余能量和能量采集速率進行分簇和競選簇頭。該算法雖然 可以盡可能延長網(wǎng)絡(luò)的壽命,但是效率較低,不適用于大規(guī)模網(wǎng)絡(luò)。
[0005]綜上所述,現(xiàn)有的無線傳感器網(wǎng)絡(luò),由于距離近的傳感器之間數(shù)據(jù)的相似性,會造 成數(shù)據(jù)的冗余,傳輸效率較低。
【發(fā)明內(nèi)容】
[0006] 基于此,有必要針對現(xiàn)有的無線傳感器網(wǎng)絡(luò)傳輸效率較低的問題,提供一種基于 層次聚類的數(shù)據(jù)匯聚方法和系統(tǒng)。
[0007]-種基于層次聚類的數(shù)據(jù)匯聚方法,包括以下步驟:
[0008] (1)根據(jù)層次聚類算法將所有節(jié)點中兩兩之間的距離最短的兩個節(jié)點合并為一 類,根據(jù)合并的類以及其他節(jié)點重新進行合并,直到將所有節(jié)點合并為一個類;
[0009] (2)對合并的類進行分組,計算將節(jié)點分為不同組數(shù)時所有節(jié)點的總開銷,獲取總 開銷最小的分組數(shù);根據(jù)總開銷最小的分組數(shù)將合并的類的所有節(jié)點進行分組;
[0010] (3)根據(jù)每個分組的節(jié)點尋找各個分組的聚合節(jié)點,組成第一層聚合節(jié)點,對第 一層聚合節(jié)點依據(jù)步驟(1)和(2)的方式進行重新分組,并以分組的第一層聚合節(jié)點尋找 下一層的聚合節(jié)點,直到最后一層的聚合節(jié)點少于設(shè)定的個數(shù)時,確定最后一層的聚合節(jié) 占.
[0011] 其中,尋找分組的聚合節(jié)點方法包括:
[0012] si、選擇本組中的一個節(jié)點,以該節(jié)點為初始聚合節(jié)點;
[0013]s2、計算本組中其他節(jié)點到所述初始聚合節(jié)點的鏈路總開銷;
[0014]s3、從本組中剩下的節(jié)點中選擇一個節(jié)點,并以該節(jié)點為初始聚合節(jié)點,計算本組 中其他節(jié)點到該初始聚合節(jié)點的鏈路總開銷;
[0015]s4、判斷是否選擇所有節(jié)點,若是,選擇鏈路總開銷最小對應(yīng)的節(jié)點作為匯聚組內(nèi) 節(jié)點數(shù)據(jù)的第一層聚合節(jié)點,否則返回S3;
[0016] (4)將最后一層的聚合節(jié)點對應(yīng)的節(jié)點數(shù)據(jù)發(fā)送至數(shù)據(jù)處理中心。
[0017] 一種基于層次聚類的數(shù)據(jù)匯聚系統(tǒng),包括:
[0018] 合并模塊,用于根據(jù)層次聚類算法將所有節(jié)點中兩兩之間的距離最短的兩個節(jié)點 合并為一類,根據(jù)合并的類以及其他節(jié)點重新進行合并,直到將所有節(jié)點合并為一個類;
[0019] 分組模塊,用于對合并的類進行分組,計算將節(jié)點分為不同組數(shù)時所有節(jié)點的總 開銷,獲取總開銷最小的分組數(shù);根據(jù)總開銷最小的分組數(shù)將合并的類的所有節(jié)點進行分 組;
[0020] 尋找模塊,用于根據(jù)每個分組的節(jié)點尋找各個分組的聚合節(jié)點,組成第一層聚合 節(jié)點,對第一層聚合節(jié)點依據(jù)所述合并模塊和分組模塊的方式進行重新分組,并以分組的 第一層聚合節(jié)點尋找下一層的聚合節(jié)點,直到最后一層的聚合節(jié)點少于設(shè)定的個數(shù)時,確 定最后一層的聚合節(jié)點;
[0021] 其中,尋找模塊執(zhí)行所述尋找各個分組的聚合節(jié)點的過程包括:
[0022] si、選擇本組中的一個節(jié)點,以該節(jié)點為初始聚合節(jié)點;
[0023]s2、計算本組中其他節(jié)點到所述初始聚合節(jié)點的鏈路總開銷;
[0024]s3、從本組中剩下的節(jié)點中選擇一個節(jié)點,并以該節(jié)點為初始聚合節(jié)點,計算本組 中其他節(jié)點到該初始聚合節(jié)點的鏈路總開銷;
[0025]s4、判斷是否選擇所有節(jié)點,若是,選擇鏈路總開銷最小對應(yīng)的節(jié)點作為匯聚組內(nèi) 節(jié)點數(shù)據(jù)的第一層聚合節(jié)點,否則返回S3;
[0026] 發(fā)送模塊,用于將最后一層的聚合節(jié)點對應(yīng)的節(jié)點數(shù)據(jù)發(fā)送至數(shù)據(jù)處理中心。
[0027] 上述基于層次聚類的數(shù)據(jù)匯聚方法和系統(tǒng),通過層次聚類算法將所有節(jié)點中兩兩 之間的距離最短的兩個節(jié)點合并為一類,距離最短的兩個節(jié)點之間的鏈路開銷相對較小, 根據(jù)合并的類以及其他節(jié)點重新進行合并,直到將所有節(jié)點合并為一個類,然后按照總開 銷最小的分組數(shù)對類的節(jié)點進行分組,并尋找各個分組的聚合節(jié)點,通過聚合節(jié)點匯聚組 內(nèi)的各個節(jié)點的數(shù)據(jù),然后將所有數(shù)據(jù)發(fā)送至數(shù)據(jù)處理中心,從而可以減少數(shù)據(jù)的冗余,傳 輸效率較高。
【附圖說明】
[0028] 圖1為一實施例基于層次聚類的數(shù)據(jù)匯聚方法流程圖;
[0029] 圖2為一實施例無線傳感器數(shù)據(jù)轉(zhuǎn)發(fā)網(wǎng)絡(luò)結(jié)構(gòu)示意圖;
[0030] 圖3為另一實施例基于層次聚類的數(shù)據(jù)匯聚方法流程圖;
[0031] 圖4為一實施例節(jié)點第一次合并示意圖;
[0032] 圖5為一實施例節(jié)點第二次合并示意圖;
[0033] 圖6為一實施例層次聚類分組示意圖;
[0034] 圖7為一實施例異步分布式算法流程示意圖;
[0035] 圖8為一實施例層次聚類分組結(jié)果示意圖;
[0036] 圖9為一實施例分組性能隨分組數(shù)的變化關(guān)系圖;
[0037] 圖10為一實施例異步分布式算法產(chǎn)生的樹形結(jié)構(gòu)示意圖;
[0038] 圖11為一實施例基于層次聚類的數(shù)據(jù)匯聚系統(tǒng)結(jié)構(gòu)示意圖。
【具體實施方式】
[0039] 下面結(jié)合附圖對本發(fā)明的基于層次聚類的數(shù)據(jù)匯聚方法和系統(tǒng)的【具體實施方式】 作詳細描述。
[0040] 一種基于層次聚類的數(shù)據(jù)匯聚方法,包括以下步驟:
[0041] (1)根據(jù)層次聚類算法將所有節(jié)點中兩兩之間的距離最短的兩個節(jié)點合并為一 類,根據(jù)合并的類以及其他節(jié)點重新進行合并,直到將所有節(jié)點合并為一個類;
[0042] (2)對合并的類進行分組,計算將節(jié)點分為不同組數(shù)時所有節(jié)點的總開銷,獲取總 開銷最小的分組數(shù);根據(jù)總開銷最小的分組數(shù)將合并的類的所有節(jié)點進行分組;
[0043] (3)根據(jù)每個分組的節(jié)點尋找各個分組的聚合節(jié)點,組成第一層聚合節(jié)點,對第 一層聚合節(jié)點依據(jù)步驟(1)和(2)的方式進行重新分組,并以分組的第一層聚合節(jié)點尋找 下一層的聚合節(jié)點,直到最后一層的聚合節(jié)點少于設(shè)定的個數(shù)時,確定最后一層的聚合節(jié) 占.
[0044] 其中,尋找分組的聚合節(jié)點方法包括:
[0045]si、選擇本組中的一個節(jié)點,以該節(jié)點為初始聚合節(jié)點;
[0046]s2、計算本組中其他節(jié)點到所述初始聚合節(jié)點的鏈路總開銷;
[0047] s3、從本組中剩下的節(jié)點中選擇一個節(jié)點,并以該節(jié)點為初始聚合節(jié)點,計算本組 中其他節(jié)點到該初始聚合節(jié)點的鏈路總開銷;
[0048]s4、判斷是否選擇所有節(jié)點,若是,選擇鏈路總開銷最小對應(yīng)的節(jié)點作為匯聚組內(nèi) 節(jié)點數(shù)據(jù)的第一層聚合節(jié)點,否則返回S3;
[0049] (4)將最后一層的聚合節(jié)點對應(yīng)的節(jié)點數(shù)據(jù)發(fā)送至數(shù)據(jù)處理中心。
[0050] 請參閱圖1,圖1為一實施例基于層次聚類的數(shù)據(jù)匯聚方法流程圖。
[0051] 一種基于層次聚類的數(shù)據(jù)匯聚方法,包括以下步驟:
[0052] 步驟S101 :根據(jù)層次聚類算法將所有節(jié)點中兩兩之間的距離最短的兩個節(jié)點合 并為一類,根據(jù)合并的類以及其他節(jié)點重新進行合并,直到將所有節(jié)點合并為一個類;
[0053] 在步驟S101