專利名稱:一種面向節(jié)能的移動Agent多步協(xié)商任務(wù)分配方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種移動Agent的多步協(xié)商任務(wù)分配方法,特別涉及一種 基于Ad hoc網(wǎng)絡(luò)面向節(jié)能的移動Agent多步協(xié)商任務(wù)分配方法。
背景技術(shù):
移動自組網(wǎng)(Mobile Ad hoc Network, MANET)是一種無基礎(chǔ)設(shè)施的移 動網(wǎng)絡(luò),也被稱為多跳無線網(wǎng)。由于在MANET中大部分設(shè)備都是無線設(shè)備, 它們的網(wǎng)絡(luò)傳輸能力、計算能力以及電量都有一定的限制,因此如何保證 在有限的能力情況下讓這些設(shè)備完成更多的任務(wù)成為了一個研究的熱點。
移動Agent (Mobile Agent,簡稱MA)技術(shù)是分布式技術(shù)和人工智能發(fā) 展的結(jié)果。MA能在一個復(fù)雜的網(wǎng)絡(luò)環(huán)境中自動地從一個節(jié)點移動到另一個 節(jié)點。當它移動的時候,它能暫停自己的執(zhí)行過程并移動到另一個節(jié)點來 重新啟動或者繼續(xù)執(zhí)行過程。并且MA能夠在很大程度上減少網(wǎng)絡(luò)的負荷 并且能夠適應(yīng)無線網(wǎng)絡(luò)隨時斷連等正常狀態(tài)(這些狀態(tài)在有線網(wǎng)絡(luò)是非正 常的,但在無線網(wǎng)絡(luò)中這些情況卻是經(jīng)常發(fā)生的)。MA有移動性、自主性、 合作、安全以及智能這些特點。所以,MA和畫ET具有自然的共性。
在MANET網(wǎng)中采用MA技術(shù),通過MA的合作,使每個移動設(shè)備可以盡 可能少的發(fā)送數(shù)據(jù),并且使用盡可能少的電量來維持路由。通過合作,使 每個移動設(shè)備在盡可能少的完成任務(wù)并消耗電量的情況下得到自己所需 的相應(yīng)任務(wù)的完成結(jié)果,也能夠延長無線網(wǎng)絡(luò)的生存時間。
現(xiàn)有的MA協(xié)商策略往往是一步協(xié)商,也有多步協(xié)商,但協(xié)商之后的任務(wù)分配或資源分配的結(jié)果往往是相對固定的,在固定網(wǎng)絡(luò)中,這些協(xié)商
方法得到較好應(yīng)用,但在MANET網(wǎng)絡(luò)中,由于網(wǎng)絡(luò)拓撲結(jié)構(gòu)的動態(tài)變化, MA完成任務(wù)所要消耗的資源也應(yīng)該是動態(tài)變化的,因此基于固定網(wǎng)絡(luò)或者 資源消耗固定的任務(wù)分配策略并不適合基于MANET網(wǎng)絡(luò)中的MA的任務(wù)分 配。
而且,在一般的協(xié)商策略后得到的任務(wù)分配結(jié)果中,某些MA會分配 到相對多的任務(wù),而另一些MA會分配到相對少的任務(wù),如果以時間指標來 看,整個合作團體合作完成的時間應(yīng)該是所有MA完成任務(wù)的時間,也就 是分配任務(wù)數(shù)量最多的MA完成分配任務(wù)的時間,這樣會大大地增加系統(tǒng) 的執(zhí)行時間,對于某些對時間有要求的情況,這種分配無疑有一定的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有MA協(xié)商方法的不足,提出了一種能夠保 證每個MA在每一步協(xié)商中只分配到一個任務(wù),從而減少整個合作系統(tǒng)的 時間消耗,減少設(shè)備電量消耗,從而延長網(wǎng)絡(luò)生存時間的面向節(jié)能的移動 Agent多步協(xié)商任務(wù)分配方法。
為達到上述目的,本發(fā)明采用的技術(shù)方案是
1)定義消耗函數(shù)矩陣
在某一時刻,每個Agent對每個相應(yīng)任務(wù)的消耗可以建立一個矩陣,
稱為消耗函數(shù)矩陣,矩陣形式如下
挑)……
……
因為在ad hoc網(wǎng)絡(luò)中,網(wǎng)絡(luò)拓撲結(jié)構(gòu)不停地進行動態(tài)變化,所以上述矩陣中每個元素的值也是在不停地變化中;矩陣中Si (tj)表示Agent Ai
完成任務(wù)Tj的代價;
2)定義Agent消耗差
<formula>formula see original document page 6</formula>
對于上述等式<formula>formula see original document page 6</formula>
&,是Agents的任務(wù)中有次小消耗的任務(wù)與最小消耗任務(wù)的系統(tǒng)消 耗的差值,這個定義保證了整個系統(tǒng)的消耗盡可能的?。?br>
—4)= min{《("l"T}表示Agent 4的任務(wù)中具有最小消耗的 任務(wù)消耗;
= min{S(。.)|&(。.) ^ 0} (/ = 1…w)表示完成任務(wù)^.的最小消耗; 分e/ s:表示每個算法中一個Agent最多需要完成任務(wù)的數(shù)量,這個 指標也間接表示了整個系統(tǒng)完成所有任務(wù)所需的時間; 3)算雜征
將Agent聚集在一起,對比任務(wù)并確定它們之間能否合作,確定任務(wù) 集合r,并確定公共任務(wù)和私有任務(wù);
根據(jù)集合r,為合作Agent建立消耗函數(shù)矩陣,為每個Agent分配任
務(wù);
計算出矩陣中每個元素的值、每個Agent的^并找到具有最小^的 Agent 4,將滿足(^e7;n^.(G)二脂'fl(A》的任務(wù)4分配給Agent ^,如 果氣=0 ,將滿足(e r7 n )=附/fl(么)n ( ^具有最小的S; (,4) — —4) 值)的任務(wù)"分配給Agent 4,如果有多個Agent具有相同的&,首先 將任務(wù)分配給具有最小/m'"M,.)的Agent;計算每個任務(wù)的《,找到具有最小《的任務(wù)^,將任務(wù)^分配給與它
相應(yīng)的并且具有曲(U的Agent,如果有多個任務(wù)具有相同的d ,則首先 將具有最小m/5(")的任務(wù)分配相應(yīng)的Agent;
每個Agent執(zhí)行分配到的任務(wù),再進行下一輪的任務(wù)分配,直到所有 任務(wù)都完成。
本發(fā)明與一般的多步協(xié)商機制不同的是,本發(fā)明的多步協(xié)商任務(wù)分配 方法所得到的任務(wù)分配結(jié)果是不固定的,而且會隨著MANET網(wǎng)絡(luò)拓撲結(jié)構(gòu) 的動態(tài)變化而變化。在本發(fā)明提出的方法中,每個MA與其他MA在基于當 時的系統(tǒng)消耗下進行協(xié)商,并且在一次協(xié)商中, 一個MA只分配到一個任 務(wù)。當它們完成各自分配的任務(wù)后,它們重新以當前時間的任務(wù)消耗為基 礎(chǔ)再次進行協(xié)商,每個MA分配到下一個任務(wù),直到所有任務(wù)都完成。該 方法保證了每個MA在每一步協(xié)商中只分配到一個任務(wù),這樣做能減少整 個合作系統(tǒng)的時間消耗,減少設(shè)備電量消耗,從而延長網(wǎng)絡(luò)的生存時間。
具體實施例方式
定義1)對于一組Agents...《,每個Agent都有自己的任務(wù)集7;, 7; = i~.是4.的子任務(wù)},如果有V7;,,37;, 7; nr, = - <> = l.』and f#力,
稱這組Agent能夠相互合作,這組Agent的任務(wù)集為r = [jz;. lr卜". 定義2)任務(wù)完成的花銷函數(shù)Agent J,完成任務(wù)。的花銷函數(shù)為
如果g gr〃 s鳥)-o.
定義3)任務(wù)完成如果Agent^收到其所有任務(wù)執(zhí)行完成所得到的
結(jié)果,則稱4的任務(wù)被完全完成。
定義4)私有任務(wù)和私有任務(wù)集合任務(wù)^滿足下列條件就可以被稱為私有任務(wù),而t;,就是這些私有任務(wù)的集合。
r n"37;",. eT,), (7^ g rn7; g Tn/W, / = 1.』,,/ = l...w) =仏h e r n 是私有任務(wù),/ = 1..."} 定義5)公共任務(wù)和公共任務(wù)集合任務(wù)z,滿足下列條件稱為公共 任務(wù),而7_就是這些公共任務(wù)的集合。
(。er》(r乂 ^rn ; sr .",z、i…附,/,/ = 1...")
7_ =億hern 是公共任務(wù),/ = 1…"}
定義6)分配的公共任務(wù)數(shù)對于Agent4來說,分配給它的公共
任務(wù)數(shù)量為 );
定義7)消耗函數(shù)矩陣在某一時刻,每個Agent對每個相應(yīng)任務(wù)的
消耗可以建立一個矩陣,稱為消耗函數(shù)矩陣。矩陣形式如下
柳……跳)
S"0…...W 因為在ad hoc網(wǎng)絡(luò)中,網(wǎng)絡(luò)拓撲結(jié)構(gòu)不停地進行動態(tài)變化,所以上 述矩陣中每個元素地值也是在不停地變化中。在某一時刻很小的一段間隔
中,我們可以認為矩陣中的值是固定的。矩陣中Si(tj)表示Agent Ai完成 任務(wù)Tj的代價(消耗)。
定義8 ) Agent消耗差 V7;. e T , tto < = & (f) - & 0,)
對于上述等式,S々)二 min{&(0|~e7;}
&= min {S,.(X) I" 7; f}
一是Agents的任務(wù)中有次小消耗的任務(wù)與最小消耗任務(wù)的系統(tǒng)消 耗的差值。這個定義保證了整個系統(tǒng)的消耗盡可能的小;照》(4)= min{&(X)|r e7;}表示Agent 4的任務(wù)中具有最小消耗的 任務(wù)消耗。
m&(。.) = min{S(。)|S,(。 # 0} (z' = 1…w)表示完成任務(wù)^的最小消耗。
表示每個算法中一個Agent最多需要完成任務(wù)的數(shù)量。這個 指標也間接表示了整個系統(tǒng)完成所有任務(wù)所需的時間。
假設(shè)1對比于移動Agent的大小和完成任務(wù)的消耗,從一個Agent 傳輸任務(wù)完成結(jié)果到另一個Agent的消耗可以被忽略。 算法描述
1) Agent聚集在一起,對比任務(wù)并確定它們之間能否合作并確定任務(wù) 集合r。如果它們之間不能合作,則丟棄Agent 4(v7;,nry.=0)"_/ )
并重新確定能否合作和任務(wù)集合r ,最后再確定公共任務(wù)和私有任務(wù);
2) |7>",」={4,.."v4m} (Agent的集合)|+m;
3) 開始一步任務(wù)分配,如果"》m,轉(zhuǎn)到第4步;否則轉(zhuǎn)到第8步;
4) 設(shè)置SA為Agent集合;
5) 如果W * - ,轉(zhuǎn)到第6步;否則每個Agent開始執(zhí)行并完成分配給 它們的任務(wù)。當每個Agent完成分配給它們的任務(wù)后,轉(zhuǎn)到第3步并開始 下一步的任務(wù)分配;
6) 根據(jù)集合r和&4建立消耗函數(shù)矩陣。計算出矩陣中每個元素的值、 每個Agent的d"并找到具有最小&的Agent ^ 。將滿足
e n^(/t) = /m'fl(A))的任務(wù)"分配給Agent ^ 。如果d =0 ,將滿足 (^ e n & )=) n 具有最小的& ) - m/《)值)的任務(wù)^分配 給Agent 4。如果有多個Agent具有相同的&,首先將任務(wù)分配給具有 最小脂' )的Agent;這里的da是每個Agent的任務(wù)中有次小消耗的任務(wù)與最小消耗任務(wù)的系統(tǒng)消耗的差值。
7) r = r_^,&4 = &4 —^,轉(zhuǎn)至ij第5步;
8) 設(shè)置&4 =爿;
9) 如果r *0,轉(zhuǎn)到第10步;否則每個Agent開始執(zhí)行并完成分配給 它們的任務(wù),當這些任務(wù)被執(zhí)行完成后,算法結(jié)束;
10) 根據(jù)集合r和&4建立當前的消耗函數(shù)矩陣,計算每個任務(wù)的《,
找到具有最小《的任務(wù)^ ,將任務(wù)^分配給與它相應(yīng)的并且具有mW"的 Agent。如果有多個任務(wù)具有相同的",則首先將具有最小m&(U的任務(wù)分 配相應(yīng)的Agent ,這里的dk是指公共任務(wù)tk的任務(wù)消耗差;mis(tk)表示完成 任務(wù)tk的最小消耗。
11) r = r-^&4 = &4-一 U,就是上一步任務(wù)^的相對應(yīng)的Agent),
轉(zhuǎn)到第9步。
權(quán)利要求
1、一種面向節(jié)能的移動Agent多步協(xié)商任務(wù)分配方法,其特征在于1)定義消耗函數(shù)矩陣在某一時刻,每個Agent對每個相應(yīng)任務(wù)的消耗可以建立一個矩陣,稱為消耗函數(shù)矩陣,矩陣形式如下因為在ad hoc網(wǎng)絡(luò)中,網(wǎng)絡(luò)拓撲結(jié)構(gòu)不停地進行動態(tài)變化,所以上述矩陣中每個元素的值也是在不停地變化中;矩陣中Si(tj)表示Agent Ai完成任務(wù)Tj的代價;2)定義Agent消耗差 dai=Si(t)-Si(tl)對于上述等式,Si(t)=min{Si(tr)|tr∈Ti}Si(tl)=min{Si(tr)|tr∈Ti∩tr≠t}dai是Agent Ai的任務(wù)中有次小消耗的任務(wù)與最小消耗任務(wù)的系統(tǒng)消耗的差值,這個定義保證了整個系統(tǒng)的消耗盡可能的??;mia(Ai)=min{Si(tr)|tr∈Ti}表示Agent Ai的任務(wù)中具有最小消耗的任務(wù)消耗;mis(tj)=min{Si(tj)|Si(tj)≠0}(i=1...m)表示完成任務(wù)tj的最小消耗;Steps表示每個算法中一個Agent最多需要完成任務(wù)的數(shù)量,這個指標也間接表示了整個系統(tǒng)完成所有任務(wù)所需的時間;3)算法特征將Agent聚集在一起,對比任務(wù)并確定它們之間能否合作,確定任務(wù)集合T,并確定公共任務(wù)和私有任務(wù);根據(jù)集合T,為合作Agent建立消耗函數(shù)矩陣,為每個Agent分配任務(wù);計算出矩陣中每個元素的值、每個Agent的da并找到具有最小da的Agent Aj,將滿足(tk∈Tj∩Sj(tk)=mia(Aj))的任務(wù)tk分配給Agent Aj,如果daj=0,將滿足(tk∈Tj∩Sj(tk)=mia(Aj)∩(tk具有最小的Sj(tk)-mis(tk)值)的任務(wù)tk分配給Agent Aj,如果有多個Agent具有相同的da,首先將任務(wù)分配給具有最小mia(Aj)的Agent;計算每個任務(wù)的dk,找到具有最小dk的任務(wù)tk,將任務(wù)tk分配給與它相應(yīng)的并且具有mis(tk)的Agent,如果有多個任務(wù)具有相同的d,則首先將具有最小mis(tk)的任務(wù)分配相應(yīng)的Agent;每個Agent執(zhí)行分配到的任務(wù),再進行下一輪的任務(wù)分配,直到所有任務(wù)都完成。
全文摘要
一種面向節(jié)能的移動Agent多步協(xié)商任務(wù)分配方法,以MA的任務(wù)消耗為基礎(chǔ)進行多次協(xié)商,所得到的任務(wù)分配結(jié)果是不固定的,而且會隨著MANET網(wǎng)絡(luò)拓撲結(jié)構(gòu)的動態(tài)變化而變化。在本發(fā)明提出的方法中,每個MA與其他MA在基于當時的系統(tǒng)消耗下進行協(xié)商,并且在一次協(xié)商中,一個MA只分配到一個任務(wù)。當它們完成各自分配的任務(wù)后,它們重新以當前時間的任務(wù)消耗為基礎(chǔ)再次進行協(xié)商,每個MA分配到下一個任務(wù),直到所有任務(wù)都完成。該方法保證了每個MA在每一步協(xié)商中只分配到一個任務(wù),這樣做能減少整個合作系統(tǒng)的時間消耗,減少設(shè)備電量消耗,從而延長網(wǎng)絡(luò)的生存時間。
文檔編號H04W28/16GK101448285SQ20081023655
公開日2009年6月3日 申請日期2008年12月31日 優(yōu)先權(quán)日2008年12月31日
發(fā)明者暉 何, 迪 侯, 凡 衛(wèi), 勇 齊 申請人:西安交通大學(xué)