本發(fā)明涉及一種與無線傳感器網(wǎng)絡(luò)擁塞控制相關(guān)的管理方法,更具體地說,本發(fā)明涉及一種無線傳感器網(wǎng)絡(luò)擁塞控制方法。
背景技術(shù):
近年來,無線傳感器網(wǎng)絡(luò)技術(shù)得到了飛速發(fā)展,應(yīng)用領(lǐng)域越來越廣,對于無線傳感器網(wǎng)絡(luò)的要求也越來越高。隨之而來的無線傳感器網(wǎng)絡(luò)擁塞問題也日益突出。無線傳感器網(wǎng)絡(luò)擁塞主要存在以下幾個問題:
(1)節(jié)點級的擁塞:即節(jié)點需要發(fā)送的分組流量超過節(jié)點的發(fā)送能力,導(dǎo)致節(jié)點隊列緩存溢出,造成數(shù)據(jù)分組的丟失和網(wǎng)絡(luò)排隊延遲的增加。
(2)無線鏈路級的擁塞:無線信道是共享信道,在同一時刻相鄰節(jié)點只能有一個節(jié)點使用無線信道,當多個相鄰節(jié)點同時競爭使用無線信道時便會產(chǎn)生訪問沖突引起鏈路級擁塞,增加分組的服務(wù)時間,降低鏈路利用率和網(wǎng)絡(luò)的吞吐量。
本發(fā)明主要關(guān)注節(jié)點級的擁塞問題。節(jié)點需要發(fā)送的分組流量超過節(jié)點的發(fā)送能力,導(dǎo)致了無線傳感器網(wǎng)絡(luò)擁塞現(xiàn)象的發(fā)生。一般來說,當節(jié)點隊列緩存中存在過多的數(shù)據(jù)分組時,會產(chǎn)生擁塞。在網(wǎng)絡(luò)發(fā)生擁塞時,會導(dǎo)致丟包率和延時增加,吞吐量下降,嚴重時會發(fā)生“擁塞崩潰”現(xiàn)象。
為了解決這種擁塞現(xiàn)象所帶來的丟包率和延時增加,吞吐量急劇下降等網(wǎng)絡(luò)性能的問題,現(xiàn)在無線傳感器網(wǎng)絡(luò)節(jié)點隊列中普遍采用“棄尾方法”。當路由器因緩沖區(qū)不能及時處理接收的數(shù)據(jù)包時,會對暫時未能處理的數(shù)據(jù)包進行排隊。按照棄尾方法將隊列長度相關(guān)的參數(shù)進行預(yù)先設(shè)定,并將隊列長度的參數(shù)與預(yù)定的閾值進行比較,若大于閾值,則開始丟棄大于閾值之后的數(shù)據(jù)包。“棄尾”的意思即從隊列尾部開始丟棄。
但是棄尾方法中存在兩個嚴重缺點:持續(xù)的滿隊列和業(yè)務(wù)流對緩存的死鎖。而主動隊列管理(aqm)方法在有線網(wǎng)絡(luò)擁塞控制中的研究已經(jīng)很成熟,它在擁塞之前采用預(yù)見式的提前丟包的思想,能夠有效地控制隊列長度,避免網(wǎng)絡(luò)發(fā)生擁塞,解決滯后性和能量的不必要耗費問題。尤其是主動隊列管理方法當中的pi方法,能夠?qū)⒕彌_中的隊列控制在一個不依賴于負載的水平,其實現(xiàn)的基本思想是對于一個新到達的包,通過比較緩沖隊列長度與目標隊列長度,記錄其誤差,通過對誤差進行比例積分控制來確定新到達包的丟棄概率。
但pi方法也有很多不完善之處,所以針對pi方法的改進方法也有很多。
中國專利公開號cn102821001a,公開日為2012年12月12日,專利申請?zhí)枮閏n201210344427.4,專利名稱為“模糊神經(jīng)元主動隊列管理方法在ipcop中實現(xiàn)的方法”。描述了一種模糊神經(jīng)元主動隊列管理方法在ipcop中實現(xiàn)的方法,該方法步驟如下:1.相關(guān)參數(shù)的定義及初始化;2.等待新的數(shù)據(jù)包到達;3采用有導(dǎo)的hebb學(xué)習(xí)算法對神經(jīng)元加權(quán)系數(shù)動態(tài)調(diào)節(jié);包括對當前時刻瞬時隊列長度q(k)進行采樣,并計算神經(jīng)元方法輸入量x1(k),x2(k),x3(k)的值;4.采用模糊控制方法動態(tài)調(diào)整神經(jīng)元增益k,包括以x1(k)和x2(k)為輸入量,神經(jīng)元增益k的變化量δk為輸出量,對輸入量x1(k)和x2(k)進行模糊化;5.計算丟棄概率p(k)并以丟棄概率p(k)對數(shù)據(jù)包進行丟棄,包括計算丟棄概率p(k),最后將數(shù)據(jù)包以丟棄概率p(k)進行丟棄。
中國專利公開號cn102129259a,公開日為2011年7月20日,專利申請?zhí)枮閏n201010034360.5,專利名稱為“用于砂塵環(huán)境試驗風(fēng)洞的基于神經(jīng)網(wǎng)絡(luò)pi的智能溫度控制系統(tǒng)和方法”。描述了基于神經(jīng)網(wǎng)絡(luò)pi的砂塵環(huán)境試驗風(fēng)洞的智能溫度控制系統(tǒng),其特征在于:(1)建立神經(jīng)網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu),(2)神經(jīng)網(wǎng)絡(luò)參數(shù)的混合學(xué)習(xí)訓(xùn)練,(3)pi控制,(4)限幅處理。本發(fā)明把pi控制器和神經(jīng)網(wǎng)絡(luò)結(jié)合起來,利用神經(jīng)網(wǎng)絡(luò)的自適應(yīng),離線學(xué)習(xí)和在線學(xué)習(xí)的能力得出控制變量協(xié)調(diào)控制因子,有效的確定主控設(shè)備和輔控設(shè)備。然后再通過pi控制器進行對被控對象溫度的協(xié)調(diào)有效控制,當pi控制器輸出控制變量之后,再進行對被控變量利用s函數(shù)進行限幅處理,使控制變量最優(yōu)化。本發(fā)明克服了現(xiàn)有技術(shù)在控制上協(xié)調(diào)性差的影響,提高了控制的可靠性與協(xié)調(diào)性,拓展了其應(yīng)用范圍,也可用于其它感應(yīng)器輸出信號的協(xié)調(diào)性控制。
中國專利公開號cn105281615a,公開日為2016年1月27日,專利申請?zhí)枮閏n201510771820.5,專利名稱為“一種基于改進粒子群算法優(yōu)化無刷直流電機模糊控制器的方法”。本發(fā)明公開了一種基于改進粒子群算法優(yōu)化無刷直流電機模糊控制器的方法,步驟包括:將整個解空間劃分為七個區(qū)域;根據(jù)目標函數(shù)計算每個粒子的適應(yīng)度;根據(jù)其適應(yīng)度,更新粒子的個體極值和全局極值;將所更新的個體極值和全局極值賦值給量化因子ka、kb和比例因子kp、ki、kd;對輸入輸出的性能指標進行評估,如果滿足目標函數(shù)則結(jié)束,如果不滿足則應(yīng)用改進粒子群算法將pi、pg代入量子粒子群公式,粒子在空間區(qū)域不斷尋優(yōu),直到粒子滿足目標函數(shù),生成新的粒子群體。本發(fā)明基于改進粒子群算法能以最快的速度找出全局最優(yōu)解,電機在額定轉(zhuǎn)速下運行平穩(wěn),響應(yīng)迅速,基本無超調(diào)出現(xiàn),具有良好的隨動性和動靜態(tài)特性。
中國專利公開號cn101119281,公開日為2008年2月6日,專利號申請?zhí)枮閏n200710120757.4,專利名稱為“一種傳感器網(wǎng)絡(luò)擁塞控制方法”。公開了一種傳感器網(wǎng)絡(luò)擁塞控制方法,應(yīng)用于無線傳感器網(wǎng)絡(luò)中的網(wǎng)絡(luò)節(jié)點,包括:步驟1)、網(wǎng)絡(luò)節(jié)點對本節(jié)點的節(jié)點門限值和報文周期數(shù)的值做初始化;步驟2)、網(wǎng)絡(luò)節(jié)點開始一個報文周期,生成一個新的本地數(shù)據(jù)報文,并得到它的報文優(yōu)先級;步驟3)、對新生成的本地數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷,在發(fā)生網(wǎng)絡(luò)擁塞的前提下,將本節(jié)點的報文周期數(shù)清零,增加本節(jié)點的門限值,調(diào)整發(fā)送隊列,并向鄰居節(jié)點廣播新的門限值;步驟4)、對網(wǎng)絡(luò)節(jié)點是否收到其他網(wǎng)絡(luò)節(jié)點所發(fā)送的數(shù)據(jù)報文進行判斷,如果收到數(shù)據(jù)報文,執(zhí)行下一步,否則,執(zhí)行步驟6);步驟5)、對所收到的數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷,在發(fā)生網(wǎng)絡(luò)擁塞的前提下,將本節(jié)點的報文周期數(shù)清零,增加本節(jié)點的門限值,調(diào)整發(fā)送隊列,并向鄰居節(jié)點廣播新的門限值;步驟6)、判斷是否收到了鄰居節(jié)點所發(fā)送的廣播消息,若收到了廣播消息且廣播消息中所包含的節(jié)點門限值高于本節(jié)點的門限值,則按照廣播消息中的節(jié)點門限值調(diào)高本節(jié)點的門限值,調(diào)整發(fā)送隊列,然后將本節(jié)點的報文周期數(shù)清零,并廣播新的節(jié)點門限值;步驟7)、判斷本輪報文周期的終止時刻是否已經(jīng)到達,如果已經(jīng)到達,則執(zhí)行下一步,否則重新執(zhí)行步驟4);步驟8)、判斷本節(jié)點的報文周期數(shù)是否低于一個規(guī)定值,如果低于則增加報文周期數(shù)后,重新執(zhí)行步驟2)。否則將報文周期數(shù)清零后,降低節(jié)點門限值,然后重新執(zhí)行步驟2)。
通過分析發(fā)現(xiàn),傳統(tǒng)pi方法設(shè)定參數(shù)主要依靠經(jīng)驗,并且設(shè)置為靜態(tài)參數(shù),這并不有利于pi方法應(yīng)對不同的網(wǎng)絡(luò)環(huán)境實施良好的網(wǎng)絡(luò)擁塞控制。所以,本發(fā)明結(jié)合pi方法來控制無線傳感器網(wǎng)絡(luò)節(jié)點隊列中包的丟棄概率,并且通過單神經(jīng)元控制技術(shù)和粒子群算法對pi方法中的參數(shù)進行在線調(diào)整和優(yōu)化。從而完善了pi方法存在參數(shù)固定的不足。解決網(wǎng)絡(luò)擁塞所帶來的中間節(jié)點隊列不穩(wěn)定、吞吐量急劇下降、丟包率和延時高等網(wǎng)絡(luò)性能下降的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是克服了現(xiàn)有技術(shù)存在的持續(xù)的滿隊列和業(yè)務(wù)流對緩存的死鎖問題以及傳統(tǒng)pi方法參數(shù)固定、不能很好適應(yīng)無線傳感器網(wǎng)絡(luò)環(huán)境的問題,提供了一種無線傳感器網(wǎng)絡(luò)擁塞控制方法。
為解決上述技術(shù)問題,本發(fā)明是采用如下技術(shù)方案實現(xiàn)的:所述的一種無線傳感器網(wǎng)絡(luò)擁塞控制方法包括步驟如下:
1)相關(guān)參數(shù)的定義:
2)pi方法的實現(xiàn):
將pi方法加載到ns2軟件中,并且將pi方法應(yīng)用于無線傳感器網(wǎng)絡(luò)節(jié)點的隊列管理中;
3)采用單神經(jīng)元控制技術(shù)對pi方法的改進:
采用單神經(jīng)元控制技術(shù)對pi方法的參數(shù)kp、ki進行在線調(diào)整,其中,將此步驟采用單神經(jīng)元控制技術(shù)對pi方法的改進命名為npi方法;
4)改進的粒子群算法對npi方法的參數(shù)進行在線尋優(yōu):
改進的粒子群算法對npi方法中的固定參數(shù)kp、ki的初始值和學(xué)習(xí)速率η1、η2進行在線尋優(yōu),通過實時矯正來在線調(diào)整單神經(jīng)元的權(quán)值,其中,將此步驟采用改進的粒子群算法對npi方法的參數(shù)進行在線尋優(yōu)命名為pnpi方法;
5)以丟棄概率p(k)進行主動丟包:
按照pnpi方法得到的丟棄概率p(k)進行主動丟包。
技術(shù)方案中所述的相關(guān)參數(shù)的定義是指:
1)kp0、ki0為pi方法中的兩個固定參數(shù)kp、ki的初始值;
2)k為單神經(jīng)元系數(shù),其值為0.12;
3)wi(k)為神經(jīng)元權(quán)值,i=1,2,初始值分別為2.58392e-6與98290e-6;
4)節(jié)點緩存隊列長度為40packets;
5)q0為期望隊列長度,其值為20packets;
6)q為瞬時隊列長度,其初始值為0;
7)p(k)為丟棄概率;
8)粒子群的規(guī)模為n=30;
9)粒子的維數(shù)d=4;
10)粒子群慣性權(quán)重最大值w_max=0.9;
11)粒子群慣性權(quán)重最小值w_min=0.4;
12)pi方法的兩個固定參數(shù)的最小值kp_min=ki_min=0.0000001;
13)pi方法的兩個固定參數(shù)的最大值kp_max=ki_max=10;
14)η1、η2為神經(jīng)元學(xué)習(xí)速率,設(shè)置最小值為η1_min=η2_min=0.0000001,最大值為η1_max=η2_max=10;
15)v_min、v_max為粒子群速度的最小值和最大值,其值分別為v_min=10,v_max=10;
16)c1、c2為粒子群算法學(xué)習(xí)因子,其中c1=0.95+0.1*rand,c2=c1。
技術(shù)方案中所述的pi方法的實現(xiàn)的步驟如下:
1)將pi方法加載到ns2軟件中:
(1)將傳統(tǒng)pi方法所包含的文件pi.h和pi.cc加載到ns2仿真軟件中,其中pi.h和pi.cc為pi方法實現(xiàn)的代碼;
(2)在ns2.35文件夾下修改makefile和makefile.vc文件,在這兩個文件的obj_cc=\tools/random.otools/rng.otools/ranvar.ocommon/misc.ocommon/下加入代碼queue/red-pd.oqueue/pi.oqueue\,其中ns2.35為ns2軟件的版本;
(3)在lib文件夾下修改ns-lib.tcl文件,在lib文件的if{[stringfirst"red"$qtype]!=-1||下加入代碼if{[stringfirst"pi"$qtype]?。?1||;
(4)在lib文件夾下的ns-default文件中對pi參數(shù)進行初始化;
(5)對ns2進行重新編譯,至此,把pi方法加載到了ns2軟件中;
2)將pi方法應(yīng)用于無線傳感器網(wǎng)絡(luò)節(jié)點的隊列管理中:
(1)編寫tcl腳本文件,模擬無線傳感器網(wǎng)絡(luò)環(huán)境;
(2)將pi方法加載到tcl腳本文件中,其中tcl腳本為ns2軟件的模擬腳本。
技術(shù)方案中所述的采用單神經(jīng)元控制技術(shù)對pi方法的改進的步驟如下:
1)設(shè)置pi方法的輸入量x1(k)、x2(k);
其中:x1(k)為瞬時隊列長度q與期望隊列長度q0的誤差,x2(k)為誤差的一次差分;單神經(jīng)元控制技術(shù)的輸入輸出關(guān)系為:
其中,k為單神經(jīng)元的系數(shù),并且保證k>0,xi(k)為單神經(jīng)元的輸入,wi(k)為xi(k)的權(quán)重,u(k)為單神經(jīng)元的輸出;
2)本技術(shù)方案采用有導(dǎo)的hebb學(xué)習(xí)算法來調(diào)節(jié)加權(quán)系數(shù)wi(k),其表達式為:
wi(k+1)=wi(k)+ηiz(k)u(k)xi(k)
其中:z(k)為輸出誤差信號z(k)=e(k),η1、η2為不同的學(xué)習(xí)速率系數(shù);
3)單神經(jīng)元控制技術(shù)是通過調(diào)整輸入變量xi(k)的權(quán)重wi(k)來實現(xiàn)自適應(yīng)調(diào)整的,其中wi(k)分別對應(yīng)于pi方法的ki、kp;為了實現(xiàn)算法的收斂性和魯棒性,采用規(guī)范化學(xué)習(xí)算法進行處理,則表達式可以寫成下式:
其中,wi'(k)可表示為:
為了依據(jù)無線傳感器網(wǎng)絡(luò)環(huán)境的實時變化來調(diào)整方法的參數(shù),所述的pnpi方法將pi方法的參數(shù)進行自適應(yīng)調(diào)整,已有pi方法的兩個固定參數(shù)通過專家經(jīng)驗得出,不具有動態(tài)調(diào)整的特性;所以通過上述步驟對神經(jīng)元權(quán)值進行在線調(diào)整,即對pi兩個固定參數(shù)進行在線調(diào)整。
技術(shù)方案中所述的改進的粒子群算法對npi方法的參數(shù)進行在線尋優(yōu)的步驟如下:
1)對粒子群中粒子的位置和速度進行隨機初始化,假設(shè)一個粒子群的種群規(guī)模為n,每個粒子代表d維搜索空間中的一個解,其中粒子i在求解空間中的位置和速度分別表示為:
xi=(xi1,xi2,...,xid),vi=(vi1,vi2,...,vid)
其中:粒子群神經(jīng)元初始化參數(shù)為4個,所以d=4,種群規(guī)模n=30;
2)計算每個粒子的適應(yīng)度:本技術(shù)方案中選定的適應(yīng)度為
3)計算粒子所經(jīng)歷的最好位置和全局最好位置:其中粒子所經(jīng)歷的最好位置為pi=(pi1,pi2,...,pid),群體中所有粒子經(jīng)歷過最好位置,即全局最好位置為g=(pg1,pg2,...,pgd);粒子所經(jīng)歷的最好位置由式(1)決定:
群體的全局最好位置g=(pg1,pg2,...,pgd)中的下標g由式(2)確定:
式中:
4)對粒子的速度vid(t)和位置xid(t)進行進化,在標準pso模型中,粒子在每一維上的速度和位置更新公式如下:
vid(t+1)=ωvid(t)+c1r1id(t)(pid(t)-xid(t))+c2r2id(t)(pgd(t)-xid(t))
xid(t+1)=xid(t)+vid(t+1)
式中:vid和xid定義分別表示第i個粒子第d維的速度分量與位置分量;
pid為第i個粒子所經(jīng)歷的歷史最佳位置分量;
pgd為群體所經(jīng)過的歷史最佳位置分量;
w為慣性權(quán)重,決定了粒子對當前速度的繼承度;
r1和r2為[0,1]區(qū)間內(nèi)均勻分布且相互獨立的隨機數(shù),稱為隨機因子;
c1為個體認知加速系數(shù),表示粒子對自己經(jīng)歷過的歷史最佳位置的記憶;
c2為群體認知加速系數(shù),表示粒子對整個種群所經(jīng)歷過的歷史最佳位置的記憶能力,學(xué)習(xí)因子的存在使得粒子具有自我總結(jié)和向群體中最優(yōu)個體學(xué)習(xí)的能力,通過兩種能力的相互補充協(xié)調(diào),粒子不斷向著全局最優(yōu)位置或局部最優(yōu)位置靠近;
5)判斷結(jié)束條件,如果進化到預(yù)先設(shè)定的代數(shù),繼續(xù)往下進行,否則返回步驟2)即計算每個粒子的適應(yīng)度步驟。
技術(shù)方案中所述的以丟棄概率p(k)進行主動丟包的步驟如下:
1)本發(fā)明所述的pnpi方法需要按照采用單神經(jīng)元控制技術(shù)對pi方法的改進步驟中公式
2)得到丟棄概率后,以丟棄概率p(k)進行主動丟包,在隊列緩沖區(qū)溢出之前,提前主動丟包,避免擁塞發(fā)生。
與現(xiàn)有技術(shù)相比本發(fā)明的有益效果是:
1.本發(fā)明所述的一種無線傳感器網(wǎng)絡(luò)擁塞控制方法解決了棄尾方法中持續(xù)的滿隊列和業(yè)務(wù)流對緩存的死鎖;
2.對比pi方法,本發(fā)明所述的一種無線傳感器網(wǎng)絡(luò)擁塞控制方法,解決了pi方法因參數(shù)固定不能很好的適應(yīng)無線傳感器網(wǎng)絡(luò)動態(tài)環(huán)境而導(dǎo)致的隊列長度不穩(wěn)定的缺點,使隊列長度穩(wěn)定在期望值附近;
3.對比pi方法和采用單神經(jīng)元控制技術(shù)對pi方法的改進(命名為npi方法),本發(fā)明所述的一種無線傳感器網(wǎng)絡(luò)擁塞控制方法,在自適應(yīng)調(diào)整固定參數(shù)的同時對一些參數(shù)進行了在線尋優(yōu),防止npi方法的局部優(yōu)化問題。從而更好的適應(yīng)無線傳感器網(wǎng)絡(luò)環(huán)境;
4.本發(fā)明所述的一種無線傳感器網(wǎng)絡(luò)擁塞控制方法(命名為pnpi方法)在沒有影響實際到達數(shù)據(jù)包的情況下,與pi方法,npi方法比較,提高了吞吐量和分組投遞率,降低了丟包率和時延,節(jié)約了網(wǎng)絡(luò)資源,改善了網(wǎng)絡(luò)通信質(zhì)量。
附圖說明
下面結(jié)合附圖對本發(fā)明作進一步的說明:
圖1為本發(fā)明所述的一種無線傳感器網(wǎng)絡(luò)擁塞控制方法(pnpi方法)的功能流程示意框圖;
圖2為本發(fā)明所述的pnpi方法的結(jié)構(gòu)原理圖;
圖3為本發(fā)明所述的一種無線傳感器網(wǎng)絡(luò)擁塞控制方法中的對于采用單神經(jīng)元控制技術(shù)對pi方法的改進(命名為npi方法)步驟的分解功能控制原理圖;
圖4為本發(fā)明所述的pnpi方法中的用改進的粒子群算法對npi方法的初始參數(shù)(kp0、ki0)、神經(jīng)元學(xué)習(xí)速率(η1、η2)進行在線尋優(yōu)步驟的分解功能流程示意框圖;
圖5為本發(fā)明所述的pnpi方法在ns-2網(wǎng)絡(luò)仿真平臺下的網(wǎng)絡(luò)拓撲圖;
圖6為本發(fā)明實施例中的pi方法中間節(jié)點隊列長度曲線圖;
圖7為本發(fā)明實施例中的npi方法中間節(jié)點隊列長度曲線圖;
圖8為本發(fā)明實施例中的pnpi方法中間節(jié)點隊列長度曲線圖;
圖9為本發(fā)明實施例中的pi、npi方法與本發(fā)明所述的pnpi方法中間節(jié)點隊列長度均值對比圖;
圖10為本發(fā)明實施例中的pi、npi方法與本發(fā)明所述的pnpi方法中間節(jié)點隊列長度方差對比圖;
圖11為本發(fā)明實施例中的pi、npi方法與本發(fā)明所述的pnpi方法中吞吐量對比曲線圖;
圖12為本發(fā)明實施例中的pi、npi、pnpi方法與本發(fā)明所述的pnpi方法中瓶頸節(jié)點1的丟包率對比曲線圖;
圖13為本發(fā)明實施例中的pi、npi、pnpi方法與本發(fā)明所述的pnpi方法中延時對比曲線圖;
圖14為本發(fā)明實施例中的pi、npi、pnpi方法與本發(fā)明所述的pnpi方法中分組投遞率對比曲線圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明作詳細的描述:
參閱圖1、圖2,本發(fā)明提供了一種無線傳感器網(wǎng)絡(luò)擁塞控制方法,盡管pi方法是一種有效的擁塞控制機制和擁塞避免機制,但其仍然存在下面一些不足。
1.pi方法的參數(shù)固定,不能適應(yīng)于無線傳感器網(wǎng)絡(luò)技術(shù)(wirelesssensornetwork,wsn)的動態(tài)變化;
2.根據(jù)無線傳感器網(wǎng)絡(luò)結(jié)構(gòu),端到端的擁塞控制方法已無法有效地解決擁塞問題,因此,需要考慮將中間節(jié)點與源端配合來設(shè)計擁塞控制策略,而主動隊列管理方法滿足了這一點要求,所以將pi方法應(yīng)用到無線傳感器網(wǎng)絡(luò)中非常有價值。
3.對傳統(tǒng)pi方法改進的過程中,npi方法雖然對pi方法的兩個固定參數(shù)kp、ki進行了自適應(yīng)調(diào)整,但單神經(jīng)元控制技術(shù)有其自身增加延時的缺陷。
為了解決上述問題,產(chǎn)生了一些用于無線傳感器網(wǎng)絡(luò)的改進的pi擁塞控制策略方法。這些方法結(jié)合了無線傳感器網(wǎng)絡(luò)的特點,對參數(shù)進行了調(diào)整,但其參數(shù)調(diào)整的效果并不十分理想,仍需有待加強。
本發(fā)明提供了一種能夠依據(jù)無線傳感器網(wǎng)絡(luò)環(huán)境,自適應(yīng)調(diào)整、計算pi方法固定參數(shù)kp、ki,并且對一些參數(shù)進行在線尋優(yōu)的一種無線傳感器擁塞控制方法(pnpi),該方法依次含有如下步驟:
1.相關(guān)參數(shù)的定義
1)kp0、ki0為pi方法中的兩個固定參數(shù)kp、ki的初始值;
2)k為單神經(jīng)元系數(shù),其值為0.12;
3)wi(k)為神經(jīng)元權(quán)值,i=1,2,初始值分別為2.58392e-6和98290e-6;
4)節(jié)點緩存隊列長度為40packets;
5)q0為期望隊列長度,其值為20packets;
6)q為瞬時隊列長度,其初始值為0;
7)p(k)為丟棄概率;
8)粒子群的規(guī)模為n=30;
9)粒子的維數(shù)d=4;
10)粒子群慣性權(quán)重最大值wmax=0.9;
11)粒子群慣性權(quán)重最小值wmin=0.4;
12)pi方法的兩個固定參數(shù)的最小值kp_min=ki_min=0.0000001;
13)pi方法的兩個固定參數(shù)的最大值kp_max=ki_max=10;
14)η1、η2為神經(jīng)元學(xué)習(xí)速率,設(shè)置最小值為η1_min=η2_min=0.0000001,最大值為η1_max=η2_max=10;
15)v_min、v_max為粒子群速度的最小值和最大值,其值分別為v_min=10,v_max=10;
16)c1、c2為粒子群算法學(xué)習(xí)因子,其中c1=0.95+0.1*rand,c2=c1。
2.pi方法的實現(xiàn)
設(shè)置pi方法兩個固定參數(shù)kp0、ki0初始值,神經(jīng)元系數(shù)k,期望隊列長度q0,粒子群的規(guī)模為n=30,粒子的維數(shù)d=4,粒子群慣性權(quán)重最大值wmax=0.9,粒子群慣性權(quán)重最小值wmin=0.4,pi方法的兩個參數(shù)的最小值kp_min=ki_min=0.0001和最大值kp_max=ki_max=10:
1)將pi方法加載到ns2軟件中的步驟如下:
其中ns2是指networksimulatorversion2,ns(networksimulator)是一種針對網(wǎng)絡(luò)技術(shù)的源代碼公開的、免費的軟件模擬平臺。
(1)將傳統(tǒng)pi方法所包含的文件pi.h和pi.cc加載到ns2仿真軟件中,其中pi.h和pi.cc為pi方法實現(xiàn)的代碼;
(2)在ns2.35文件夾下修改makefile和makefile.vc文件,在這兩個文件obj_cc=\tools/random.otools/rng.otools/ranvar.ocommon/misc.ocommon/下加入代碼queue/red-pd.oqueue/pi.oqueue\,其中ns2.35為ns2軟件的版本;
(3)在lib文件夾下修改ns-lib.tcl文件,在lib文件的if{[stringfirst"red"$qtype]?。?1||下加入代碼if{[stringfirst"pi"$qtype]!=-1||;
(4)在lib文件夾下的ns-default文件中對pi參數(shù)進行初始化;
(5)對ns2進行重新編譯,至此,把pi方法加載到了ns2軟件中。
2)將pi方法應(yīng)用于無線傳感器網(wǎng)絡(luò)節(jié)點的隊列管理中的步驟如下:
(1)編寫tcl腳本文件,模擬無線傳感器網(wǎng)絡(luò)環(huán)境;其中tcl腳本為ns2軟件的模擬腳本;
(2)將pi方法加載到tcl腳本文件中的代碼:setval(ifq)queue/droptail/priqueue;#interfacequeuetype改為setval(ifq)queue/pi;#interfacequeuetype。
3.采用單神經(jīng)元控制技術(shù)對pi方法的改進
參閱圖3,因pi方法的兩個固定參數(shù)kp、ki非常重要,對于無線傳感器網(wǎng)絡(luò)擁塞控制的效果有很大影響,所以采用單神經(jīng)元控制技術(shù)對pi方法的兩個固定參數(shù)kp、ki進行在線調(diào),得到的方法命名為npi方法,本發(fā)明所述的pnpi方法采用有監(jiān)督的hebb學(xué)習(xí)方法對pi方法的參數(shù)進行自適應(yīng)調(diào)整,根據(jù)無線傳感器網(wǎng)絡(luò)動態(tài)變化情況,調(diào)整當前pi方法的兩個固定參數(shù)kp、ki。
采用單神經(jīng)元控制技術(shù)對pi方法的改進包括如下步驟:
1)設(shè)置pi方法的輸入量x1(k)、x2(k),其中,x1(k)為瞬時隊列長度q與期望值q0的誤差,x2(k)為誤差的一次差分;單神經(jīng)元控制技術(shù)的輸入輸出關(guān)系為:
其中,k為單神經(jīng)元的系數(shù),并且保證k>0,xi(k)為單神經(jīng)元的輸入,wi(k)為xi(k)的權(quán)重,u(k)為單神經(jīng)元的輸出;
2)在單神經(jīng)元控制技術(shù)中,根據(jù)學(xué)習(xí)信號的不同將學(xué)習(xí)算法分為3種:無導(dǎo)的hebb學(xué)習(xí)算法、有導(dǎo)的delta學(xué)習(xí)算法和有導(dǎo)的hebb學(xué)習(xí)算法。根據(jù)需要,本技術(shù)方案采用有導(dǎo)的hebb學(xué)習(xí)算法來調(diào)節(jié)加權(quán)系數(shù)wi(k),其表達式為:
wi(k+1)=wi(k)+ηiz(k)u(k)xi(k)
其中,z(k)為輸出誤差信號z(k)=e(k),η1、η2為不同的學(xué)習(xí)速率系數(shù);
3)單神經(jīng)元控制技術(shù)是通過調(diào)整輸入變量xi(k)的權(quán)重wi(k)來實現(xiàn)自適應(yīng)調(diào)整的,其中wi(k)分別對應(yīng)于pi方法的ki、kp;為了實現(xiàn)算法的收斂性和魯棒性,采用規(guī)范化學(xué)習(xí)算法進行處理,則表達式可以寫成下式:
其中,wi'(k)可表示為:
為了依據(jù)無線傳感器網(wǎng)絡(luò)環(huán)境的實時變化來調(diào)整方法的參數(shù),本發(fā)明所述的pnpi方法將pi方法的兩個固定參數(shù)kp、ki進行自適應(yīng)調(diào)整,已有pi方法的兩個固定參數(shù)kp、ki通過專家經(jīng)驗得出,不具有動態(tài)調(diào)整的特性;所以通過上述步驟對神經(jīng)元權(quán)值進行在線調(diào)整,即對pi方法兩個固定參數(shù)進行在線調(diào)整,得到的方法命名為npi方法;準備進行下一步計算的步驟。
4.改進的粒子群算法對npi方法的參數(shù)進行在線尋優(yōu)
根據(jù)期望隊列長度和瞬時隊列長度的誤差來調(diào)整自適應(yīng)函數(shù),達到反饋的目的。參閱圖4,通過改進的粒子群算法對npi方法的參數(shù)進行在線尋優(yōu),步驟如下:
1)對粒子群中粒子的位置和速度進行隨機初始化,假設(shè)一個粒子群的種群規(guī)模為n,每個粒子代表d維搜索空間中的一個解,其中粒子i在求解空間中的位置和速度分別表示為:
xi=(xi1,xi2,...,xid),vi=(vi1,vi2,...,vid)
其中:粒子群神經(jīng)元初始化參數(shù)為4個,所以d=4,種群規(guī)模n=30;
2)計算每個粒子的適應(yīng)度:本技術(shù)方案中選定的適應(yīng)度為
3)計算粒子所經(jīng)歷的最好位置和全局最好位置:其中粒子所經(jīng)歷的最好位置為pi=(pi1,pi2,...,pid),群體中所有粒子經(jīng)歷過最好位置,即全局最好位置為g=(pg1,pg2,...,pgd);其中粒子所經(jīng)歷的最好位置由式(1)決定:
群體的全局最好位置g=(pg1,pg2,...,pgd)中的下標g由式(2)確定:
式中:
4)對粒子的速度vid(t)和位置xid(t)進行進化,在標準pso模型中,粒子在每一維上的速度和位置更新公式如下:
vid(t+1)=ωvid(t)+c1r1id(t)(pid(t)-xid(t))+c2r2id(t)(pgd(t)-xid(t))
xid(t+1)=xid(t)+vid(t+1)
式中:vid和xid定義分別表示第i個粒子第d維的速度分量與位置分量;
pid為第i個粒子所經(jīng)歷的歷史最佳位置分量;
pgd為群體所經(jīng)過的歷史最佳位置分量;
w為慣性權(quán)重,決定了粒子對當前速度的繼承度;
r1和r2為[0,1]區(qū)間內(nèi)均勻分布且相互獨立的隨機數(shù),稱為隨機因子;
c1為個體認知加速系數(shù),表示粒子對自己經(jīng)歷過的歷史最佳位置的記憶,
c2為群體認知加速系數(shù),表示粒子對整個種群所經(jīng)歷過的歷史最佳位置的記憶能力,學(xué)習(xí)因子的存在使得粒子具有自我總結(jié)和向群體中最優(yōu)個體學(xué)習(xí)的能力,通過兩種能力的相互補充協(xié)調(diào),粒子不斷向著全局最優(yōu)位置或局部最優(yōu)位置靠近;
5)判斷結(jié)束條件,如果進化到預(yù)先設(shè)定的代數(shù),繼續(xù)往下進行,否則返回步驟2)即計算每個粒子的適應(yīng)度步驟。
5.以丟棄概率p(k)進行主動丟包的步驟如下:
1)本發(fā)明所述的pnpi方法需要按照步驟3即采用單神經(jīng)元控制技術(shù)對pi方法的改進步驟中公式
2)得到丟棄概率后,以丟棄概率p(k)進行主動丟包,在隊列緩沖區(qū)溢出之前,提前主動丟包,避免擁塞發(fā)生。
實施例
仿真條件如下:
參閱圖5,為了檢驗本發(fā)明所述的一種無線傳感器網(wǎng)絡(luò)擁塞控制方法(命名為pnpi方法)的性能,把本發(fā)明所述的pnpi方法加載到ns-2仿真平臺上,仿真使用2.35版本的ns-2平臺,操作系統(tǒng)為ubuntu10.04。圖中所表示的為在ns-2仿真平臺上搭建的模擬無線傳感器網(wǎng)絡(luò)環(huán)境,其中節(jié)點數(shù)為14個,節(jié)點的傳輸范圍250m,無線傳感器網(wǎng)絡(luò)的媒體訪問控制(mediaaddresscontrol,mac)層采用802.11協(xié)議,路由協(xié)議采用aodv,節(jié)點的初始能量默認值,節(jié)點緩存隊列長度為40packets,初始源節(jié)點向匯聚節(jié)點以200kb/s的速率發(fā)送數(shù)據(jù),包的大小為128b,采樣頻率w=100hz,仿真時間50s,從0s源節(jié)點開始發(fā)送數(shù)據(jù)包到50s停止發(fā)送。
使用以下一系列的實驗來說明本發(fā)明所述的pnpi方法,對于提高隊列穩(wěn)定程度、提高吞吐量和分組投遞率、降低丟包率和時延具有一定的改善,實驗的前提為:傳統(tǒng)pi方法中固定參數(shù)值kp=0.0000475,ki=0.0000174。npi方法和提出的pnpi方法中,單神經(jīng)元系數(shù)為k=0.12。
pi方法、npi方法與本發(fā)明所述的pnpi方法的網(wǎng)絡(luò)性能比較。
參數(shù)設(shè)置:傳統(tǒng)pi方法中期望隊列長度為20packets,固定參數(shù)值kp=0.0000475,ki=0.0000174,采樣頻率w=100hz,npi方法和提出的pnpi方法中期望隊列長度為20packets,單神經(jīng)元系數(shù)為k=0.12。
由實驗可以得到圖6、圖7與圖8,分別是pi方法、npi方法與本發(fā)明所述的pnpi方法的瞬時隊列長度的變化曲線,可以發(fā)現(xiàn)本發(fā)明所述的pnpi方法的隊列長度曲線震蕩幅度明顯減小,并且保持較低的隊列長度,而且在接下來的仿真時間里本發(fā)明所述的pnpi方法的隊列長度更為平滑,幾乎沒有強烈的抖動。
由實驗組可以得到圖9和圖10,分別是pi方法、npi方法與本發(fā)明所述的pnpi方法的隊列長度均值和方差的對比圖。從圖中可以看出pi方法均值最大,npi和pnpi方法的均值幾乎相等,而pi方法的方差遠遠大于其他兩種方法,并且pnpi方法的方差小于npi方法。所以pnpi方法更加穩(wěn)定。
由實驗組可以得到圖11,是pi方法、npi方法與本發(fā)明所述的pnpi方法的吞吐量變化的對比曲線,可以發(fā)現(xiàn)本發(fā)明所述的pnpi方法吞吐量幾乎在每一時刻都高于pi方法和npi方法,說明pnpi方法明顯提高了無線傳感器網(wǎng)絡(luò)性能。
由實驗可以得到圖12,是pi方法、npi方法與本發(fā)明所述的pnpi方法的瓶頸節(jié)點1的丟包率對比,可以發(fā)現(xiàn)本發(fā)明所述的pnpi方法的丟包率明顯低于其他兩種方法。
由實驗可以得到圖13,是pi方法、npi方法與本發(fā)明所述的pnpi方法的延時對比,可以發(fā)現(xiàn)本發(fā)明所述的pnpi方法,其延時在仿真時間里大多數(shù)時刻都低于其他兩種方法。
由實驗組可以得到圖14,是pi方法、npi方法與本發(fā)明所述的pnpi方法的分組投遞率對比,可以發(fā)現(xiàn)本發(fā)明所述的pnpi方法,其分組投遞率在仿真時間里大多數(shù)時刻都高于其他兩種方法。
上述實驗分別檢驗了本發(fā)明所述的pnpi方法的性能,通過上述實驗可以得出在相同的網(wǎng)絡(luò)環(huán)境和相同的仿真條件下,本發(fā)明所述的pnpi方法取得了穩(wěn)定隊列長度、提高吞吐量和分組投遞率、降低丟包率和延時等無線傳感器網(wǎng)絡(luò)性能。
本發(fā)明所述的pnpi方法達到了本發(fā)明的設(shè)計目標,該方法的參數(shù)根據(jù)網(wǎng)絡(luò)環(huán)境自適應(yīng)調(diào)整參數(shù)設(shè)置,而不是像其他方法由靜態(tài)參數(shù)配置調(diào)節(jié)方法控制網(wǎng)絡(luò)擁塞,并取得了良好的效果,可以證明本發(fā)明所述的pnpi方法具有自適應(yīng)、動態(tài)調(diào)整的能力,且其性能優(yōu)良。