基于蟻群算法的wsan中執(zhí)行器任務調度方法
【專利摘要】本發(fā)明公開了一種基于蟻群算法的WSAN中執(zhí)行器任務調度方法,包括以下步驟:1)建立執(zhí)行器協(xié)作任務分配及調度的數學模型;2)采用分布式競拍算法對任務進行分配;3)初始化蟻群;4)各只螞蟻按概率選擇下一任務;5)各只螞蟻遍歷所有任務,并釋放信息素;6)更新信息素;7)若不滿足算法終止條件,則返回步驟4),若滿足,則返回任務調度表,即為最佳任務調度表。本方法可實現(xiàn)對WSAN中任務的合理調度,減少執(zhí)行器節(jié)點的移動距離,縮短任務完成時間,減少網絡能耗。
【專利說明】
基于蟻群算法的WSAN中執(zhí)行器任務調度方法
技術領域
[0001] 本發(fā)明涉及分布式信息處理技術、協(xié)同合作技術、智能計算技術領域,具體講是 WSAN中執(zhí)行器的任務調度問題,屬于無線傳感網技術領域。
【背景技術】
[0002] 無線傳感器/執(zhí)行器網絡(Wireless Sensor And Actor Networks,WSAN)是一種 新型無線、自組織網絡,由大量靜止的傳感器節(jié)點和少量移動的執(zhí)行器節(jié)點組成。傳感器節(jié) 點感知物理環(huán)境,執(zhí)行器節(jié)點處理感知數據,并在事件發(fā)生時進行決策并執(zhí)行相應的任務。 Akyildiz等人指出,協(xié)作性和實時性是WSAN應滿足的兩個獨特要求,協(xié)作主要包括傳感器 和執(zhí)行器節(jié)點之間的協(xié)作(Sensors to Actors Coordination, S-A)以及執(zhí)行器和執(zhí)行器 之間協(xié)作(Actor to Actor Coordination,A-A),A_A協(xié)作的主要目的是完成任務的有效分 配,及執(zhí)行器節(jié)點的任務調度。執(zhí)行器節(jié)點負責任務的執(zhí)行,因此當WSAN中有任務發(fā)生時, 對執(zhí)行器節(jié)點進行合理的任務調度可以有效地減少執(zhí)行器節(jié)點的移動距離,縮短任務完成 時間,減少能量消耗。
[0003] 針對執(zhí)行器節(jié)點的任務分配,目前已有多種解決方法,主要分為集中式和分布式 任務調度策略,集中式任務調度策略由控制中心收集所有節(jié)點的信息綜合分析做出決策, 這種方法信息包轉發(fā)的數量,能量消耗較多;分布式算法多個執(zhí)行器協(xié)同對WSAN中發(fā)生的 任務進行分配,可以有效地減少執(zhí)行器節(jié)點信息包的轉發(fā)數量,均衡網絡的能量消耗。
[0004] 然而,分布式算法和集中式算法都沒有對WSAN執(zhí)行器的任務調度問題做出深入研 究。執(zhí)行器節(jié)點負責任務的執(zhí)行,其任務執(zhí)行順序會直接影響網絡的能耗均衡性和實時性。 Lukia.Μ將任務調度問題等價為旅行商問題,求出執(zhí)行器節(jié)點的調度順序。但是執(zhí)行器節(jié)點 的任務調度問題和旅行商問題不同:TSP解決的是旅行商周游各個城市之后回到最初起點 的最短路徑,其城市數量一般較多。執(zhí)行器任務分配要解決的是執(zhí)行器執(zhí)行完當前任務隊 列中任務的最短路徑,任務數量較少且無需回到起點位置。因此有必要針對WSAN的特點提 出一種新型執(zhí)行器任務調度算法。
【發(fā)明內容】
[0005] 本發(fā)明所要解決的技術問題是提供一種WSAN中執(zhí)行器任務調度方法,使得執(zhí)行器 節(jié)點的移動距離減少,任務完成時間縮短,能量消耗減少。
[0006] 為解決上述技術問題,本發(fā)明提供一種基于蟻群算法的WSAN中執(zhí)行器任務調度方 法,包括以下步驟:
[0007] 1)建立執(zhí)行器協(xié)作任務分配及調度的數學模型;
[0008] 2)采用分布式競拍算法對任務進行分配;
[0009] 3)初始化蟻群:根據各執(zhí)行器節(jié)點任務的位置生成賦權鄰接矩陣,初始化信息素 矩陣,按照距離計算啟發(fā)因子;
[0010] 4)各只螞蟻按概率選擇下一任務;
[0011] 5)各只螞蟻遍歷所有任務,并在路徑上釋放信息素;
[0012] 6)更新信息素;
[0013] 7)若不滿足算法終止條件,則返回步驟4),若滿足,則返回任務調度表,即為最佳 任務調度表。
[0014] 上述步驟1)中,執(zhí)行器協(xié)作任務分配及調度問題的數學模型建立包括以下2個步 驟:
[0015] 11)任務分配問題:分配過程中有nt個任務,~個執(zhí)行器節(jié)點;每個任務有自己的持 續(xù)時間4^和截止時間山;每個執(zhí)行器節(jié)點有κ個可用時隙;保證任務在截止時間內完成的 前提下,一個任務只能由一個執(zhí)行器節(jié)點完成,且每個時隙內只能完成一個任務;
[0016] 保證任務的合理分配要滿足以下約束條件:
[0019] ./; V/,/ (3)
[0020] 其中值為1或0,為1時表示任務L由執(zhí)行器節(jié)點Μ執(zhí)行;
[0021] 12)任務調度問題:每個執(zhí)行器節(jié)點都有各自的任務集Sa,假設一次任務分配過程 執(zhí)行器節(jié)點移動的距離為I,則任務調度問題為求出任務的執(zhí)行順序,使得執(zhí)行器節(jié)點的 移動距離最小,即目標函數為:
[0023]上述步驟2)中,采用分布式競拍算法對任務進行分配,包括以下4個步驟:
[0024] 21)當網絡中有任務發(fā)生時,傳感器將任務信息轉發(fā)給距離任務最近的執(zhí)行器節(jié) 點,并以該節(jié)點為主決策節(jié)點發(fā)起競拍;
[0025] 22)主決策節(jié)點將任務消息轉發(fā)給5跳范圍內的鄰居執(zhí)行器節(jié)點,并由這些節(jié)點共 同組成競拍節(jié)點集;
[0026] 23)各執(zhí)行器節(jié)點計算當前任務的效用值,并將效用值轉發(fā)給主決策節(jié)點,由主決 策節(jié)點決定由哪個執(zhí)行器執(zhí)行當前的任務;
[0027] 24)任務分配結束后,各執(zhí)行器節(jié)點生成各自的任務集Sa。
[0028] 上述步驟23)中,各執(zhí)行器節(jié)點計算當前任務的效用值,并將效用值轉發(fā)給主決策 節(jié)點,包括以下2個步驟:
[0029] 231)效用值的計算:效用值受四個參數的影響,分別為:執(zhí)行器節(jié)點與當前任務的 距離時丸行器節(jié)點的剩余能量a el,執(zhí)行器節(jié)點的移動速度avl,以及執(zhí)行器節(jié)點當前的任 務數量ani,效用值的計算公式如下:
[0030] /:/,, = atavi + α~αι, -a,aih -asa:,,^ (5)
[0031 ]其中, α2, α3, α4為各參數的系數,表示選擇各個參數的重要程度;
[0032] 232)效用值返回到主決策節(jié)點,當前執(zhí)行器節(jié)點將自身效用值返回到上一級節(jié) 點,該節(jié)點將自身的效用值和收到子節(jié)點的效用值分析比較,將效用值較大的執(zhí)行器節(jié)點 信息返回給當前執(zhí)行器節(jié)點的上一級節(jié)點,以此類推,直到將效用信息傳遞到主決策節(jié)點。 上述步驟4)中,各只螞蟻按概率選擇下一任務,其概率計算公式如下:
[0034]其中:為t時刻,當前執(zhí)行器節(jié)點中任務i與任務j之間路徑上的信息素 ;rUj (t)為啟發(fā)式因子,取= 為任務i和任務j之間的距離;〇為1相對重要程度;β 為η相對重要程度;al lowedk為t時刻螞蟻k所能選擇的任務集合。
[0035]上述步驟6)中,更新信息素,信息素的更新有以下2個步驟:
[0036] 61)信息素更新公式如下:
[0037] Tij(t+l) = (l-p)Tij(t)+A Tij(t) (7)
[0038] Aiij(t) = E Aiijk(t) (8)
[0039] 其中:p為信息素的揮發(fā)程度,取值范圍為[0,1]; Δη/為螞蟻5本次循環(huán)中在路徑 [i,j]上釋放信息素量;AT^(t)為本次循環(huán)后路徑[i,j]上信息素的增量。
[0040] 62)信息素的揮發(fā)方式為蟻周模型,有:
[0042]其中:Q為信息素總量,L5為螞蟻5在本次循環(huán)中所走路徑的長度。隨著所有螞蟻完 成對執(zhí)行器路徑的構建,信息素不斷積累、揮發(fā),直到滿足終止條件為止。
[0043]上述步驟7)中,算法終止條件是指:蟻群算法的迭代次數達到50次。
[0044] 本發(fā)明所達到的有益效果:
[0045] 本發(fā)明利用分布式競拍算法和蟻群算法共同完成WSAN中執(zhí)行器的任務分配及任 務調度。其中分布式競拍算法完成執(zhí)行器節(jié)點的任務分配,蟻群算法完成執(zhí)行器節(jié)點的任 務調度。分布式競拍信息包轉發(fā)數量少,實時性好的特點,以及蟻群算法并行計算,正反饋 的特點,這些優(yōu)良特性被應用于本發(fā)明當中。在執(zhí)行器的任務分配過程中每只螞蟻朝著信 息素最多的方向移動,并且,當周圍沒有信息素指引時,螞蟻會按照慣性運動下去。所有的 螞蟻并發(fā)計算執(zhí)行器節(jié)點的移動路徑,并在每輪結束時返回執(zhí)行器節(jié)點移動路徑的最短路 徑值。直到循環(huán)結束找到每輪計算中執(zhí)行器節(jié)點的最短路徑,此時執(zhí)行器節(jié)點的執(zhí)行順序 就是執(zhí)行器所走的最短路徑時的移動順序。因此使用蟻群算法進行調度可有效地減少執(zhí)行 器節(jié)點的移動路徑。
【附圖說明】
[0046] 圖1是基于蟻群算法的WSAN中執(zhí)行器任務調度方法的步驟圖。
【具體實施方式】
[0047] 如圖1所示,一種基于蟻群算法的WSAN中執(zhí)行器任務調度方法,包括以下步驟:
[0048] 步驟1、建立執(zhí)行器協(xié)作任務分配及調度的數學模型,其數學模型的建立包括以下 兩步:
[0049] 1)任務分配問題:分配過程中有nt個任務,~個執(zhí)行器節(jié)點;每個任務有自己的持 續(xù)時間和截止時間山;每個執(zhí)行器節(jié)點有心個可用時隙;保證任務在截止時間內完成的 前提下,一個任務只能由一個執(zhí)行器節(jié)點完成,且每個時隙內只能完成一個任務;
[0050] 保證任務的合理分配要滿足以下約束條件:
[0053] = !〇JK V7,/ (12)
[0054] 其中值為1或0,為1時表示任務L由執(zhí)行器節(jié)點Μ執(zhí)行;
[0055] 2)任務調度問題:每個執(zhí)行器節(jié)點都有各自的任務節(jié)點集Sa,假設一次任務分配 過程執(zhí)行器節(jié)點移動的距離為則任務調度問題為求出任務的執(zhí)行順序,使得執(zhí)行器節(jié) 點的移動距離最小,即目標函數為:
[0057]步驟2、采用分布式競拍算法對任務進行分配,分配過程包括以下四個步驟:
[0058] 1)當網絡中有任務發(fā)生時,傳感器節(jié)點將任務信息轉發(fā)給距離最近的執(zhí)行器節(jié) 點,并以該節(jié)點為主決策節(jié)點發(fā)起競拍;
[0059] 2)主決策節(jié)點將任務消息轉發(fā)給5跳范圍內的鄰居節(jié)點,并由這些節(jié)點共同組成 競拍節(jié)點集;
[0060] 3)各執(zhí)行器節(jié)點計算當前任務的效用值,并將效用值轉發(fā)給主決策節(jié)點,由主決 策節(jié)點決定由哪個執(zhí)行器執(zhí)行當前的任務。
[0061] 效用函數的確定受四個參數的影響,分別為:執(zhí)行器節(jié)點與當前任務的距離夂 執(zhí)行器節(jié)點的剩余能量ael,執(zhí)行器節(jié)點的移動速度avl,以及執(zhí)行器節(jié)點當前的任務數量 ani,效用值的計算如下:
[0062] u,, +〇2α,; ~a( 14j
[0063]其中,α2,α3,α4為各個參數的系數,表示選擇各個參數的重要程度。
[0064] 效用值返回到主決策節(jié)點時,當前執(zhí)行器節(jié)點將自身效用值返回到上一級節(jié)點, 該節(jié)點將自身的效用值和收到子節(jié)點的效用值分析比較,并將效用值較大的執(zhí)行器節(jié)點信 息返回到當前執(zhí)行器節(jié)點的上一級節(jié)點,以此類推,直到將信息傳遞到主決策節(jié)點。
[0065] 4)任務分配結束后,各執(zhí)行器節(jié)點生成各自的任務集Sa。
[0066] 步驟3、初始化蟻群:根據各執(zhí)行器節(jié)點任務的位置生成賦權鄰接矩陣,初始化信 息素矩陣,按照距離計算啟發(fā)因子;
[0067] 步驟4、各只螞蟻按概率選擇下一任務,其概率計算公式如下:
[0069] 其中:T^(t)為t時刻,當前執(zhí)行器節(jié)點中任務i與任務j之間路徑上的信息素 ;rUj (t)為啟發(fā)式因子,取= 為任務i和任務j之間的距離;〇為1相對重要程度;β 為η相對重要程度;al lowedk為t時刻螞蟻5所能選擇的任務集合。
[0070] 步驟5、各只螞蟻遍歷所有任務,并在路徑上釋放信息素;
[0071] 步驟6、更新信息素,信息素的更新有以下2個步驟:
[0072] 1)信息素更新公式如下:
[0073] Tij(t+l) = (l-p)Tij(t)+A Tij(t) (16)
[0074] ATij(t)=E ATijk(t) (17)
[0075] 其中:P為信息素的揮發(fā)程度,取值范圍為[0,1]; Δη/為螞蟻5本次循環(huán)中在路徑 [i,j]上釋放信息素量;AT^(t)為本次循環(huán)后路徑[i,j]上信息素的增量。
[0076] 2)信息素的揮發(fā)方式為蟻周模型,有:
[0078]其中:Q為信息素總量,Lk為螞蟻k在本次循環(huán)中所走路徑的長度。隨著所有螞蟻完 成對執(zhí)行器路徑的構建,信息素不斷積累、揮發(fā)。
[0079]步驟7、若蟻群算法的迭代次數未達到50次,則返回步驟4),若達到50次,則返回任 務調度表,即為最佳任務調度表;
[0080] 實施例:
[0081 ]對WSAN中的10個執(zhí)行器節(jié)點進行200次任務調度實驗。每次實驗過程為:200個傳 感器節(jié)點隨機產生40個任務,10個執(zhí)行器節(jié)點對這40個任務進行競拍,分別得到自身的任 務集Sa;并對每個執(zhí)行器節(jié)點的任務集5 3進行調度。為驗證本方法的有效性,分別利用順序 調度、遺傳算法調度和本文的蟻群算法調度求出每個執(zhí)行器節(jié)點的任務調度表,并計算出 按此調度表執(zhí)行任務時的平均移動距離、平均執(zhí)行時間和平均能量消耗,做出對比分析。假 設執(zhí)行器節(jié)點i在第j輪實驗中的移動距離為1^,消耗能量為e^,任務執(zhí)行時間為則平均 移動距離、平均執(zhí)行時間和平均能量消耗的計算公式如下:
[0083] 求出的平均移動距離,平均能量消耗和平均任務完成時間的性能參數對比表如表 1所示:
[0084] 表1性能參數對比表
[0086]由表1中的數據可計算得出:在平均移動距離方面,本蟻群算法相比于順序調度減 少了 58.9%,相比于遺傳算法減少了 28.2%;在平均任務完成時間方面,本蟻群算法相比于 順序調度減少了 12.2%,相比于遺傳算法減少了 7.8%;在平均能量消耗方面,本蟻群算法 相比于順序調度減少了 48.1%,相比于遺傳算法減少了 32.4%。
【主權項】
1. 一種基于蟻群算法的WSAN中執(zhí)行器任務調度方法,其特征在于,包括w下步驟: 1) 建立執(zhí)行器協(xié)作任務分配及調度的數學模型; 2) 采用分布式競拍算法對任務進行分配; 3) 初始化蟻群:根據各執(zhí)行器節(jié)點任務的位置生成賦權鄰接矩陣,初始化信息素矩陣, 按照任務間的距離計算啟發(fā)因子; 4) 各只媽蟻按概率選擇下一任務; 5) 各只媽蟻遍歷所有任務,并在路徑上釋放信息素; 6) 更新信息素; 7) 若不滿足算法終止條件,則返回步驟4),若滿足,則返回任務調度表,即為最佳任務 調度表。2. 根據權利要求1所述的基于蟻群算法的WSAN中執(zhí)行器任務調度方法,其特征在于:在 所述步驟1)中,執(zhí)行器協(xié)作任務分配及調度問題的數學模型建立包括W下2個步驟: 11) 任務分配問題:在分配過程中有nt個任務,na個執(zhí)行器節(jié)點;每個任務有自己的持續(xù) 時間成j和截止時間山;每個執(zhí)行器節(jié)點有Ni個可用時隙;保證任務在截止時間內完成的前 提下,一個任務只能由一個執(zhí)行器節(jié)點完成,且每個時隙內只能完成一個任務。 任務分配過程中要滿足的約束條件如下:其中fu值為1或0,為1時表示任務L由執(zhí)行器節(jié)點Ai執(zhí)行; 12) 任務調度問題:任務分配結束后每個執(zhí)行器節(jié)點有各自的任務集Sa假設一次任務分 配過程中每個執(zhí)行器節(jié)點的移動距離為4。,任務調度問題為:求出任務的執(zhí)行順序,使得執(zhí) 行器節(jié)點的移動距離最小,即目標函數為:3. 根據權利要求1所述的基于蟻群算法的WSAN中執(zhí)行器任務調度方法,其特征在于:在 所述步驟2)中,采用分布式競拍算法對任務進行分配,包括W下4個步驟: 21) 當網絡中有任務發(fā)生時,傳感器將任務信息轉發(fā)給距離任務最近的執(zhí)行器節(jié)點,并 W該節(jié)點為主決策節(jié)點發(fā)起競拍; 22) 主決策節(jié)點將任務消息轉發(fā)給5跳范圍內的其他鄰居執(zhí)行器節(jié)點,運些節(jié)點共同組 成競拍節(jié)點集; 23) 各執(zhí)行器節(jié)點計算當前任務的效用值,并將效用值轉發(fā)給主決策節(jié)點,由主決策節(jié) 點決定哪個執(zhí)行器執(zhí)行當前的任務; 24) 任務分配結束后,各執(zhí)行器節(jié)點生成各自的任務集Sa。4. 根據權利要求3所述的基于蟻群算法的WSAN中執(zhí)行器任務調度方法,其特征在于:在 所述步驟23)中,各執(zhí)行器節(jié)點計算當前任務的效用值,并將效用值轉發(fā)給主決策節(jié)點,包 括W下2個步驟: 231) 效用值的計算:效用值受四個參數的影響,分別為:執(zhí)行器節(jié)點與當前任務的距離 "嗎;'執(zhí)行器節(jié)點的剩余能量aei,執(zhí)行器節(jié)點的移動速度avi,W及執(zhí)行器節(jié)點當前的任務數 量ani,效用值的計算公式如下: =?I",,' + 化:"。--化i(5) 其中αι,02,03,04為各個參數的系數,表示選擇各個參數的重要程度; 232) 效用值返回到主決策節(jié)點,當前執(zhí)行器節(jié)點將自身效用值返回到上一級節(jié)點,該 節(jié)點將自身的效用值和收到子節(jié)點的效用值分析比較,將效用值較大的執(zhí)行器節(jié)點信息返 回給當前執(zhí)行器節(jié)點的上一級節(jié)點,W此類推,直到將效用信息傳遞到主決策節(jié)點。5. 根據權利要求1所述的基于蟻群算法的WSAN中執(zhí)行器任務調度方法,其特征在于:在 所述步驟4)中,各只媽蟻按概率選擇下一任務,其概率計算公式如下:其中:Tu(t)為t時刻,當前執(zhí)行器節(jié)點中任務i與任務j之間路徑上的信息素;riu(t)為 啟發(fā)式因子,取化(*) = 1/相,相為任務巧日任務j之間的距離;α為τ相對重要程度;β為η相 對重要程度;allowedk為t時刻媽蟻k所能選擇的任務集合。6. 根據權利要求1所述的基于蟻群算法的WSAN中執(zhí)行器任務調度方法,其特征在于:在 所述步驟6)中,信息素的更新有W下2個步驟: 61) 信息素更新公式如下: Tij (t+1) = (1 ~p)Xij(t)+A Tij(t) (7) Δ Tij(t)= Σ Δ Tijk(t)(8) 其中:Ρ為信息素的揮發(fā)程度,取值范圍為[〇,1]; A τι/為媽蟻k本次循環(huán)在路徑[i,j] 上釋放的信息素量;A Tu(t)為本次循環(huán)后路徑[i J]上信息素的增量; 62) 信息素的揮發(fā)方式為蟻周模型,為:其中:Q為信息素總量,Lk為媽蟻k在本次循環(huán)中所走路徑的長度,隨著所有媽蟻完成對 執(zhí)行器路徑的構建,信息素不斷積累、揮發(fā)。7. 根據權利要求1所述的基于蟻群算法的WSAN中執(zhí)行器任務調度方法,其特征在于:在 所述步驟7)中,算法終止條件為:蟻群算法的迭代次數超過50次。
【文檔編號】G06N3/00GK106095555SQ201610440742
【公開日】2016年11月9日
【申請日】2016年6月17日
【發(fā)明人】齊本勝, 苗雪嬌, 苗紅霞, 韓燕 , 蕭旋旋, 賈瀾, 孫寧
【申請人】河海大學常州校區(qū)