一種基于改進(jìn)免疫算法的pid主動(dòng)隊(duì)列管理方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及到計(jì)算機(jī)網(wǎng)絡(luò)管理領(lǐng)域,具體的說(shuō)是一種基于改進(jìn)免疫算法的PID主 動(dòng)隊(duì)列管理方法。
【背景技術(shù)】
[0002] 網(wǎng)絡(luò)用戶(hù)、網(wǎng)絡(luò)應(yīng)用,以及網(wǎng)絡(luò)類(lèi)型的日益增多,導(dǎo)致網(wǎng)絡(luò)流量的急劇增加,網(wǎng)絡(luò) 擁塞現(xiàn)象越來(lái)越嚴(yán)重,網(wǎng)絡(luò)性能明顯劣化,如何保證服務(wù)質(zhì)量并降低數(shù)據(jù)包丟失的概率成 為Internet的關(guān)鍵問(wèn)題。當(dāng)前路由器上常采用的網(wǎng)絡(luò)擁塞避免方法中主動(dòng)隊(duì)列管理 (ActiveQueueManagement,AQM)機(jī)制是其中主流方法,其基本思想是通過(guò)平均隊(duì)列長(zhǎng)度 來(lái)平滑網(wǎng)絡(luò)突發(fā)流量,主動(dòng)隊(duì)列管理算法的主要代表有耶1)、此現(xiàn)、?1、?10等,針對(duì)1?0、80? 等算法存在參數(shù)設(shè)置敏感、缺乏公平性和隊(duì)列長(zhǎng)度波動(dòng)較大的缺點(diǎn),一些基于PI控制器的 主動(dòng)隊(duì)列管理算法被提出,雖然此類(lèi)方法解決了傳統(tǒng)主動(dòng)隊(duì)列管理算法的公平性和隊(duì)列波 動(dòng)問(wèn)題,但是PI控制器存在響應(yīng)遲緩問(wèn)題,因此,研究人員又提出了基于PID控制器的主動(dòng) 隊(duì)列管理方法。
[0003] PID主動(dòng)隊(duì)列管理方法的主要目標(biāo)是:快速地穩(wěn)定隊(duì)列長(zhǎng)度在期望隊(duì)列長(zhǎng)度值附 近,保證隊(duì)列長(zhǎng)度波動(dòng)最小,以減低網(wǎng)絡(luò)丟包率并使網(wǎng)絡(luò)系統(tǒng)達(dá)到穩(wěn)定狀態(tài)。許多學(xué)者對(duì) PID參數(shù)整定方法進(jìn)行了深入研究,提出了很多參數(shù)整定方法,Ziegler-Nichols頻率響應(yīng) 法的參數(shù)整定方法是其中代表性的一種。但是在動(dòng)態(tài)變化的網(wǎng)絡(luò)環(huán)境中,很難根據(jù)經(jīng)驗(yàn)確 切得到網(wǎng)絡(luò)系統(tǒng)的臨界放大倍數(shù)和臨界震蕩周期,也就無(wú)法使用該方法整定PID控制器的 參數(shù)?;诜€(wěn)定裕度的參數(shù)整定方法被提出。該方法的不足是監(jiān)控網(wǎng)絡(luò)系統(tǒng)幅值裕度和相 角裕度的計(jì)算公式非常復(fù)雜,難以得到最佳的優(yōu)化效果。最小平方誤差積分的PID參數(shù)優(yōu)化 方法被提出,這些PID參數(shù)整定方法在確定被控對(duì)象的對(duì)象的前提下,尋找某個(gè)指標(biāo)使得系 統(tǒng)狀態(tài)最佳的PID參數(shù),只能達(dá)到PID控制器的其中一個(gè)參數(shù)最優(yōu),無(wú)法對(duì)PID的參數(shù)進(jìn)行組 合優(yōu)化,也就難以達(dá)到最優(yōu)的網(wǎng)絡(luò)狀態(tài)。
【發(fā)明內(nèi)容】
[0004] 為解決現(xiàn)有主動(dòng)管理算法中存在的PID控制器參數(shù)設(shè)置困難的問(wèn)題,本發(fā)明提出 了一種基于改進(jìn)免疫算法的PID主動(dòng)隊(duì)列管理方法,首先,將生物免疫系統(tǒng)中的免疫記憶機(jī) 制和濃度抑制機(jī)制引入免疫算法,以及采用精英交叉策略和小波變異算子改善了算法的尋 優(yōu)能力和收斂性,隨后,將改進(jìn)的免疫算法用于PID控制器參數(shù)的優(yōu)化,將PID控制器的性能 指標(biāo)函數(shù)作為免疫算法的目標(biāo)函數(shù),PID控制器的系數(shù)組合作為抗體,在給定的參數(shù)空間內(nèi) 進(jìn)行組合優(yōu)化搜索,快速求得使得PID控制器指標(biāo)函數(shù)值最小的一組PID控制器參數(shù),并將 該P(yáng)ID控制器應(yīng)用于網(wǎng)絡(luò)主動(dòng)隊(duì)列管理系統(tǒng),使得改進(jìn)的PID主動(dòng)隊(duì)列管理方法具有更快的 響應(yīng)速度,以此快速穩(wěn)定隊(duì)列長(zhǎng)度,優(yōu)化丟包率。
[0005] 本發(fā)明為解決上述技術(shù)問(wèn)題所采用的技術(shù)方案為:一種基于改進(jìn)免疫算法的PID 主動(dòng)隊(duì)列管理方法,首先將生物免疫系統(tǒng)中的免疫記憶機(jī)制和濃度抑制機(jī)制引入免疫算 法,并采用精英交叉策略和小波變異算子改善免疫算法的尋優(yōu)能力和收斂性,然后將改進(jìn) 的免疫算法用于PID控制器參數(shù)的優(yōu)化,并將優(yōu)化后的參數(shù)應(yīng)用于網(wǎng)絡(luò)主動(dòng)隊(duì)列管理系統(tǒng), 使得改進(jìn)的PID主動(dòng)隊(duì)列具有更快的響應(yīng)速度,從而快速穩(wěn)定隊(duì)列長(zhǎng)度、優(yōu)化丟包率,所述 PID控制器參數(shù)的優(yōu)化是指:將PID控制器的性能指標(biāo)函數(shù)作為免疫算法的目標(biāo)函數(shù),PID控 制器的系數(shù)組合作為抗體,在給定的參數(shù)空間內(nèi)進(jìn)行組合優(yōu)化搜索,快速求得使得PID控制 器指標(biāo)函數(shù)值最小的一組PID控制器參數(shù),具體操作如下: 1) 確定免疫算法的抗原與抗體 將PID控制器的性能指標(biāo)函數(shù)J作為免疫算法的目標(biāo)函數(shù),視為抗原,將PID控制器的系 數(shù)KP,Ki,Kd視為抗體; 其中,PID控制器的性能指標(biāo)函數(shù)J為
式中,e(t)為系統(tǒng)誤差,U(t)為控制器的輸出,tu為上升時(shí)間,'\¥1,'\¥2,'?3,'?4為權(quán)值,且¥4 遠(yuǎn)遠(yuǎn)大于W1,yE(t) =ymjt(t)-ymjt(t-1),ymjt(t)為T(mén)CP/AQM模型被控對(duì)象的當(dāng)前時(shí)刻的輸出, y〇ut(t-Ι)為T(mén)CP/AQM模型被控對(duì)象的上一時(shí)刻的輸出; 2) 產(chǎn)生初始抗體群 采用浮點(diǎn)數(shù)編碼方案,將PID控制器參數(shù)(KP,Ki,Kd)組合在一起,根據(jù)其參數(shù)范圍將編 碼的長(zhǎng)度1限定為3位,隨機(jī)產(chǎn)生pop個(gè)抗體X= (XI,X2,X3)構(gòu)成初始群體,并從pop個(gè)抗體中 隨機(jī)選取N個(gè)抗體組成記憶庫(kù); 設(shè)定三個(gè)參數(shù)的的取值范圍是[a,b],則編碼方法如下: Xi=a+rX(b~a) 1= 1,2,3 式中,r為[0,1]之間的隨機(jī)數(shù); 設(shè)定抗體完成一次交叉、變異、選擇操作為一次迭代,當(dāng)前的迭代次數(shù)為g; 設(shè)定免疫算法進(jìn)行交叉、變異、選擇操作的最大次數(shù)為最大迭代次數(shù)為gmax,gmax由多 次試驗(yàn)進(jìn)行確定,其值為200~400; 3) 采用系統(tǒng)的誤差評(píng)估抗原和抗體之間的親和度 利用親密度函數(shù)fitk=l/(B+J(ITAE))計(jì)算系統(tǒng)在每一個(gè)KP,Ki,Kd組合下的系統(tǒng)響應(yīng), 式中,B表示大于0的常量,通過(guò)加入B值來(lái)避免分母接近于0出現(xiàn)溢出的情況,免疫算法的目 標(biāo)函數(shù)J越小,則適應(yīng)度函數(shù)fitk越大,表示產(chǎn)生的抗體親和度越高; 4) 對(duì)抗體群中的抗體按照步驟3)的方法依次進(jìn)行親和度計(jì)算,并按照親和度大小進(jìn)行 降序排列,將親和度高的前N個(gè)抗體放入記憶庫(kù)中進(jìn)行更新,算法運(yùn)行結(jié)束后,記憶庫(kù)中親 和度最高的抗體即為所求的最優(yōu)參數(shù)組合; 5) 判斷算法當(dāng)前的迭代次數(shù)g是否達(dá)到最大進(jìn)化代數(shù)gmax,如果滿(mǎn)足,則終止算法,將 記憶庫(kù)中親和度最大的抗體進(jìn)行輸出,即得到最優(yōu)的PID控制器參數(shù)組合;如果算法未達(dá)到 gmax,則執(zhí)行步驟6); 6) 利用精英交叉策略和給定的交叉概率Pc使產(chǎn)生的精英個(gè)體與初始種群中的每一個(gè) 抗體進(jìn)行交叉,以改善種群結(jié)構(gòu),提高算法的收斂速度,式中Pc為經(jīng)驗(yàn)值,取0.5~0.99,交 叉之后得到新的抗體群; 7) 為了保持抗體多樣性,對(duì)步驟6)得到的新抗體群中每一個(gè)抗體進(jìn)行自適應(yīng)變異概率 計(jì)算,自適應(yīng)變異概率函數(shù)為
., 式中,1?,1^4<1.0,匕^表示當(dāng)前種群最大適應(yīng)度,7表示種群的平均親和度4表示參 與變異的個(gè)體的親和度; 將計(jì)算出的每個(gè)抗體的自適應(yīng)變異概率pm與r進(jìn)行比較,r為[0,1]之間的隨機(jī)數(shù),若pm >r,則按照以下自適應(yīng)小波變異算子變異公式對(duì)該抗體進(jìn)行變異操作得到新的抗體:
式中,函數(shù)= 為基于時(shí)間的變尺度,Xmax和Χ_分別a為變量的最 大值和最小值,供為[_3a(g),3a(g)]之間的隨機(jī)數(shù),〇(g)為小波變異函數(shù),其計(jì)算公式為:
而函數(shù)a(g)的計(jì)算公式如下:</丨=e-ln(ii+hlW,這樣,c為a(g)為上限,設(shè)為 10000,a(g)的取值隨著g的增加在1和10000之間增大,而a(g)的取值隨著g的增加取值不斷 減??; 將經(jīng)過(guò)變異操作之后得到抗體組合成新一代的抗體群; 8) 按照公i1
f算步驟7)得到的抗體群中每一個(gè)抗體的選擇概 率,并進(jìn)行輪盤(pán)賭選擇操作從而得到更新后的抗體群,并返回步驟3); 式中,0 = 2,(1 = 〇.95,;^1(;〇為抗體與抗原間的親和力,(^為抗體濃度; 抗體濃度Ci是群體中相似抗體所占的比例,S卩
^在該公式中,
Γ為抗體的親和度閾值,T= 0.9,Si,」為抗體與抗體之間的親和度,Si,j= 1 / (1+dij),dij為抗體Xi(Xil,Xi2,Xi3)和Xj(Xjl,Xj2,Xj3)之間的歐式距離,dij的計(jì)算公式如下:
9) 根據(jù)步驟5)中得到的最優(yōu)的PID控制器參數(shù)組合,對(duì)PID主動(dòng)隊(duì)列管理模型進(jìn)行整 定; 10) 初始化改進(jìn)免疫算法中的參數(shù):抗體種群規(guī)模pop,當(dāng)前迭代次數(shù)g,最大迭代次數(shù) gmax和記憶庫(kù)大小N; 11) 啟動(dòng)隊(duì)列管理模塊,令當(dāng)前采樣時(shí)刻k=l,實(shí)時(shí)對(duì)當(dāng)前隊(duì)列長(zhǎng)度q(k)進(jìn)行采樣; 12) 利用公式e(k)=q(k)-qQ計(jì)算輸入變量偏差,其中