專利名稱:用于無線傳感器網絡的任務容錯分配方法
技術領域:
本發明涉及無線傳感器技術領域,特別是一種用于無線傳感器網絡的任務容錯分配方法。
背景技術:
無線傳感器網絡是任務型網絡,任務管理作為無線傳感器網絡中一個重要管理模塊,它與移動管理和能量管理一起承擔監控整個網絡中傳感器節點的能量消耗、動態變化以及任務分配的角色,對于合理分配任務、平衡網絡中節點開銷、延長網絡生命周期并最大限度發揮網絡作用具有重要意義。通常無線傳感器網絡所面對的都是計算密集型任務,由于網絡節點的能量以及計算和存儲能力有限,單個節點往往不能獨立完成任務,脫離整個 無線傳感器網絡單獨討論傳感器節點是毫無意義的,因此需要多個傳感器節點采用一定的算法通過交換信息協作完成指定任務。另外,由于其外在環境要求、多變的網絡狀況、不穩定和不十分可靠的無線鏈路,相比于傳統的Internet,無線傳感器網絡存在著更大的脆弱性,網絡中的節點更加容易受到各種安全威脅,更容易遭受環境的破壞而失效,這就要求了無線傳感器網絡需要帶有容錯機制,并具有自組織的能力,能夠自動組網運行、自我配置維護和適時轉發監測數據,并采取自適應機制使任務調度更加適應于無線傳感器網絡的實時應用需求,因此需要傳感器網絡任務分配從實時性、經濟性、節能性、容錯性及動態協調性等方面改善和滿足無線傳感器網絡對實時任務調度系統的性能要求。圍繞這一中心問題,目前已經開展了許多研究工作,經對現有技術的文獻檢索發現,大部分的研究工作僅僅停留在無線傳感器網絡的靜態分配上,雖然有些工作考慮到動態性并提出了一些動態任務分配方法,然而大多在任務分配的初始階段就設定了節點及網絡的狀態,并沒有真正結合無線傳感器網絡的動態性來設計真正適用于無線傳感器網絡的任務分配算法,現有的這些算法還很可能造成某些高密度地區的節點始終處于工作狀態,造成節點的能量消耗不均衡,長期處于工作狀態的節點能量很快消耗完,影響網絡整體的壽命,并且已有的任務分配算法都未采用容錯技術,無法提供有效的任務容錯分配機制。
發明內容
本發明的目的在于提供一種用于無線傳感器網絡的任務容錯分配方法,該方法有利于在保證實時任務按期完成的同時,提高任務調度的成功率及可靠性,降低節點能耗,減少任務執行時間,均衡網絡負載,進而延長網絡的生命周期。本發明采用的技術方案是一種用于無線傳感器網絡的任務容錯分配方法,包括以下步驟
步驟I :根據各個任務截止期的先后順序,對各個任務賦予不同優先級;
步驟2 :采用交叉聯盟模型在網絡中生成多個動態聯盟,并將任務分配給各個聯盟若干個節點組成一個聯盟,且同時允許一個節點加入多個聯盟,一個聯盟具有多個任務待分配執行,同一個聯盟內的節點相互合作共同完成任務,聯盟由匯聚節點強制生成,無需成員節點協商與交流,且不采用聯盟最終確認的機制,當聯盟負責的任務執行完畢,聯盟隨即解散;
步驟3 :聯盟的匯聚節點以任務優先級為序,采用主副版本容錯技術對聯盟內的各個任務進行容錯分配
匯聚節點對各個任務做冗余備份形成任務主副版本,然后分別計算任務主版本在各成員節點上的最早開始時間及任務副版本在各成員節點上的最遲開始時間,對于任務主版本,在滿足任務截止期約束的前提下,通過數據標準化函數將成員節點的時間負載、能耗及失效率量化并加權累加計算各個成員節點的效能值,將任務主版本優先分配給具有較優效能值的成員節點執行;如果任務主版本執行成功且對應的任務副版本為主動執行模式,則通知所述任務副版本取消執行,如果任務主版本執行成功且對應的任務副版本為被動執行模式,則不發出需要所述任務副版本執行的通知,如果任務主版本執行失敗且對應的任務副版本采用主動執行模式,則所述任務副版本不會收到要求其取消執行的通知,因而繼續執行,以通過任務副版本的成功執行而實現容錯;如果任務主版本執行失敗且對應的任務 副版本采用被動執行模式,則由匯聚節點或執行任務主版本的節點通知執行任務副版本的節點需要執行任務副版本,以通過任務副版本的成功執行而實現容錯;對于主動執行模式的任務副版本,在滿足任務截止期約束的前提下,通過數據標準化函數將成員節點的時間負載、能耗及失效率量化并加權累加計算各個成員節點的效能值,將主動執行模式的任務副版本優先分配給具有較優效能值的成員節點執行,對于被動執行模式的任務副版本,在滿足任務截止期約束的前提下,通過數據標準化函數將成員節點的時間負載及失效率量化并加權累加計算各個成員節點的效能值,將被動執行模式的任務副版本優先分配給具有較優效能值的成員節點執行;對普通節點而言,若當前時間下有任務需要執行,則不加區別地執行,如果執行的是任務主版本,在執行過程中不會收到取消執行的命令,執行到最后,如果執行的是主動執行模式的任務副版本,接到通知則取消執行,否則執行到最后,如果執行的是被動執行模式的任務副版本,接到通知才開始執行,否則不執行。在步驟2中,采用粒子群優化方法,以最小化任務執行時間、節約節點能耗、均衡網絡負載、提升任務的調度成功率及網絡可靠性為優化目標,并行生成動態聯盟
粒子采用矩陣的二進制編碼方式,用二維數組X表示,粒子總共具有《*/7個元素,《表示當前有 個并行任務需要分配,任務的編號從I到 ,n表示一局部區域有個節點供選擇,節點的編號從I到《 ;每個元素的取值為0或1,如果元素的值為1,則表示第J個節點加入了第i個任務所對應的聯盟;如果元素的值為0,則表示第j 個節點未加入第i個任務所對應的聯盟;
綜合考慮任務調度成功率、任務執行時間、節點能耗、網絡負載及網絡可靠性開銷,定義適應值函數/7Ztoe1S1S如下
權利要求
1.一種用于無線傳感器網絡的任務容錯分配方法,其特征在于包括以下步驟 步驟I:根據各個任務截止期的先后順序,對各個任務賦予不同優先級; 步驟2 :采用交叉聯盟模型在網絡中生成多個動態聯盟,并將任務分配給各個聯盟若干個節點組成一個聯盟,且同時允許一個節點加入多個聯盟,一個聯盟具有多個任務待分配執行,同一個聯盟內的節點相互合作共同完成任務,聯盟由匯聚節點強制生成,無需成員節點協商與交流,且不采用聯盟最終確認的機制,當聯盟負責的任務執行完畢,聯盟隨即解散; 步驟3 :聯盟的匯聚節點以任務優先級為序,采用主副版本容錯技術對聯盟內的各個任務進行容錯分配 匯聚節點對各個任務做冗余備份形成任務主副版本,然后分別計算任務主版本在各成員節點上的最早開始時間及任務副版本在各成員節點上的最遲開始時間,對于任務主版 本,在滿足任務截止期約束的前提下,通過數據標準化函數將成員節點的時間負載、能耗及失效率量化并加權累加計算各個成員節點的效能值,將任務主版本優先分配給具有較優效能值的成員節點執行;如果任務主版本執行成功且對應的任務副版本為主動執行模式,則通知所述任務副版本取消執行,如果任務主版本執行成功且對應的任務副版本為被動執行模式,則不發出需要所述任務副版本執行的通知,如果任務主版本執行失敗且對應的任務副版本采用主動執行模式,則所述任務副版本不會收到要求其取消執行的通知,因而繼續執行,以通過任務副版本的成功執行而實現容錯;如果任務主版本執行失敗且對應的任務副版本采用被動執行模式,則由匯聚節點或執行任務主版本的節點通知執行任務副版本的節點需要執行任務副版本,以通過任務副版本的成功執行而實現容錯;對于主動執行模式的任務副版本,在滿足任務截止期約束的前提下,通過數據標準化函數將成員節點的時間負載、能耗及失效率量化并加權累加計算各個成員節點的效能值,將主動執行模式的任務副版本優先分配給具有較優效能值的成員節點執行,對于被動執行模式的任務副版本,在滿足任務截止期約束的前提下,通過數據標準化函數將成員節點的時間負載及失效率量化并加權累加計算各個成員節點的效能值,將被動執行模式的任務副版本優先分配給具有較優效能值的成員節點執行;對普通節點而言,若當前時間下有任務需要執行,則不加區別地執行,如果執行的是任務主版本,在執行過程中不會收到取消執行的命令,執行到最后,如果執行的是主動執行模式的任務副版本,接到通知則取消執行,否則執行到最后,如果執行的是被動執行模式的任務副版本,接到通知才開始執行,否則不執行。
2.根據權利要求I所述的用于無線傳感器網絡的任務容錯分配方法,其特征在于在步驟2中,采用粒子群優化方法,以最小化任務執行時間、節約節點能耗、均衡網絡負載、提升任務的調度成功率及網絡可靠性為優化目標,并行生成動態聯盟 粒子采用矩陣的二進制編碼方式,用二維數組X表示,粒子總共具有個元素,《表示當前有 個并行任務需要分配,任務的編號從I到 ,n表示一局部區域有個節點供選擇,節點的編號從I到《 ;每個元素的取值為O或1,如果元素的值為1,則表示第J個節點加入了第i個任務所對應的聯盟;如果元素的值為O,則表示第j 個節點未加入第i個任務所對應的聯盟; 綜合考慮任務調度成功率、任務執行時間、節點能耗、網絡負載及網絡可靠性開銷,定義適應值函數/7Ztoe1S1S如下
3.根據權利要求2所述的用于無線傳感器網絡的任務容錯分配方法,其特征在于在步驟3中,任務主版本在成員節點上的最早開始時間的計算方法如下 依次對各成員節點由前往后掃描節點的空閑時間槽[O,豸]L ^,筆],[/;,4], ,[ ,+OD ],其中,攻表示節點任務隊列下的第i個任務的開始時間,J表示節點任務隊列的第i個任務的預計完成時間,為表述的一致性,令/ ; = 0,找到第一個符合條件max(a} j'k) + %玄 < 的空閑時間槽[/丨,4+1 ],則任務在節盧,上的最早開始時間estjj記為
4.根據權利要求3所述的用于無線傳感器網絡的任務容錯分配方法,其特征在于在步驟3中,任務副版本在成員節點上的最遲開始時間的計算方法如下 步驟3. 2. I :針對一個承擔任務0的成員節點%,初始化時間槽=[七-氣;:i,記slot的開始時間為洗紀運衫,結束時間為send ; 步驟3. 2. 2 :掃描. 的任務隊列,slot處于任務隊列的空閑時間槽,則記%尸—啊并轉步驟3. 2. 3,否則表示sfol與隊列中已有的任務發生重疊,選中發生重疊的任務,記為^ ;若任務力被動執行模式的任務副版本,則記H/J = sbe&n并轉步驟3. 2. 3 ;若任務^為主動執行模式的任務副版本,且重疊發生在碼2部分,則也記&= 并轉步驟3.2. 3,否則更新slot ,令send為h的開始執行時間,sbeSm = send _ sU ;如果send小于0,記 =+oo ,否則重復步3. 2. 2 ; 步驟3. 2.3 :若還存在指定的任務在其上的最遲開始時間未被計算的成員節點,則重復步3. 2. 1,否則結束。
5.根據權利要求4所述的用于無線傳感器網絡的任務容錯分配方法,其特征在于在步驟3中,任務主版本的分配方法具體如下步驟3. 3. I :選中尚未被分配且具有最早截止期的任務針對聯盟內的成員節點,計算該任務在節點A上的與這u之和,預測任務在節點上的完成時間,如能滿足任務截止期約束,則根據數據標準化函數護 = wllXXC/£(0 +WtSxURm計算節點的效能值( ,否則記效能值?為無窮大,直至所有節點判斷完畢;數據標準化函數是通過Sigmoid函數分別將第J'個節點當前時間負載巧,能耗及節點失效率h映射到區間
,具體計算公式如下所示
6.根據權利要求5所述的用于無線傳感器網絡的任務容錯分配方法,其特征在于在步驟3中,任務副版本的分配方法具體如下步驟3. 4. I :選中尚未非被分配且具有最早截止期的任務O ,針對聯盟內的成員節點,計算該任務在節點上的&&與 之和,其中,|#於/),預測任務在節點上的完成時間,如能滿足任務截止期約束,則根據數據標準化函數
全文摘要
本發明涉及無線傳感器技術領域,特別是一種用于無線傳感器網絡的任務容錯分配方法,包括以下步驟步驟1根據各個任務截止期的先后順序,對各個任務賦予不同優先級;步驟2采用交叉聯盟模型在網絡中生成多個動態聯盟,并將任務分配給各個聯盟;步驟3聯盟的匯聚節點以任務優先級為序,采用主副版本容錯技術對聯盟內的各個任務進行容錯分配。該方法有利于在保證實時任務按期完成的同時,提高任務調度的成功率及可靠性,降低節點能耗,減少任務執行時間,均衡網絡負載,進而延長網絡的生命周期。
文檔編號H04W72/12GK102655685SQ201210169689
公開日2012年9月5日 申請日期2012年5月29日 優先權日2012年5月29日
發明者郭文忠, 陳國龍, 陳澄宇 申請人:福州大學