一種基于免疫算法的網(wǎng)絡(luò)吞吐量?jī)?yōu)化參數(shù)獲取方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及到計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體的說(shuō)是一種基于免疫算法的網(wǎng)絡(luò)吞吐量 優(yōu)化參數(shù)獲取方法。
【背景技術(shù)】
[0002] 無(wú)線通信技術(shù)的快速發(fā)展極大促進(jìn)了各種無(wú)線網(wǎng)絡(luò)部署與應(yīng)用,目前比較常見(jiàn)的 無(wú)線網(wǎng)絡(luò)包括衛(wèi)星網(wǎng)絡(luò)、Ad hoc網(wǎng)絡(luò)、蜂窩網(wǎng)絡(luò)等,無(wú)線網(wǎng)絡(luò)具有部署靈活方便、覆蓋范圍 廣、維護(hù)簡(jiǎn)單易行、通信不受時(shí)間和空間限制、兼容性高、互操作能力強(qiáng)等優(yōu)點(diǎn),因此常常作 為網(wǎng)絡(luò)不可或缺的一部分與有線網(wǎng)絡(luò)共同進(jìn)行部署,W達(dá)到更廣的覆蓋范圍和更好的服務(wù) 質(zhì)量。運(yùn)種包含了有線網(wǎng)絡(luò)與無(wú)線網(wǎng)絡(luò)技術(shù)的網(wǎng)絡(luò)稱(chēng)為異構(gòu)網(wǎng)絡(luò),由于無(wú)線鏈路傳輸錯(cuò)誤、 無(wú)線干擾等因素的影響,異構(gòu)網(wǎng)絡(luò)很容易發(fā)生誤碼丟包,而經(jīng)典的TCP協(xié)議即使在網(wǎng)絡(luò)發(fā)生 誤碼丟包時(shí)也會(huì)啟動(dòng)擁塞控制機(jī)制,錯(cuò)誤地減小窗口大小,造成網(wǎng)絡(luò)性能急劇降低,考慮到 異構(gòu)網(wǎng)絡(luò)的混合組網(wǎng)、多種通信方式共存導(dǎo)致數(shù)據(jù)丟包差異的特性,TCP Veno協(xié)議被提出。
[0003] TCP Veno協(xié)議針對(duì)異構(gòu)網(wǎng)絡(luò)存在無(wú)線誤碼丟包問(wèn)題提出了基于丟包區(qū)分的AIMD 策略:數(shù)據(jù)發(fā)送端根據(jù)當(dāng)前擁塞窗口cwnd和往返時(shí)延RTT(IX)Und-化ip time)計(jì)算出當(dāng)前隊(duì) 列中積壓的包數(shù)N,由于N能夠反映通信鏈路的狀況,當(dāng)N值較大,隊(duì)列中排隊(duì)等待的數(shù)據(jù)包 較多,丟包由擁塞引起;而當(dāng)N值較小,隊(duì)列中數(shù)據(jù)包能盡快的傳輸,不會(huì)發(fā)生擁塞,丟包可 認(rèn)為是無(wú)線鏈路的隨機(jī)誤碼引起,從而區(qū)分出擁塞丟包和無(wú)線誤碼丟包。N的計(jì)算公式為:
若N值小于口限值0,則可判斷網(wǎng)絡(luò)中發(fā)生誤碼丟包,cwnd降低為原來(lái)的4/5,若N值超過(guò) 口限值e,則可判斷網(wǎng)絡(luò)中發(fā)生擁塞,cwnd減半;為進(jìn)一步分析TCP Veno協(xié)議的性能,在考慮 了3個(gè)重復(fù)ack和重傳定時(shí)器超時(shí)兩種丟包事件的情況下,基于TCP Veno的網(wǎng)絡(luò)吞吐量方程 如下式所示
其中,丫 e[0.5,0.引,擁塞丟包時(shí)丫 =0.5,誤碼丟包時(shí)丫 =0.8,p為網(wǎng)絡(luò)的總丟包率, 包含擁塞丟包和無(wú)線誤碼丟包事件,To為超時(shí)重傳定時(shí)器的初始值; 因?yàn)門(mén)CP Veno實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)中丟包事件類(lèi)型的區(qū)分,該吞吐量方程能夠較準(zhǔn)確地預(yù)測(cè) 異構(gòu)網(wǎng)絡(luò)吞吐量的變化。
[0004] 而在網(wǎng)絡(luò)吞吐量方程中,當(dāng)網(wǎng)絡(luò)延時(shí)變大時(shí),數(shù)據(jù)包在隊(duì)列中等待時(shí)間過(guò)長(zhǎng),容易 導(dǎo)致丟包,而往返時(shí)延也會(huì)同步增大,單位時(shí)間內(nèi)接收到的數(shù)據(jù)包數(shù)反而減少,降低了網(wǎng)絡(luò) 吞吐量;此外,在異構(gòu)網(wǎng)絡(luò)中存在的無(wú)線信道衰落、鏈路質(zhì)量、往返時(shí)延、誤碼率均存在明顯 的不確定性和動(dòng)態(tài)變化性,因而異構(gòu)網(wǎng)絡(luò)是一個(gè)復(fù)雜的非線性時(shí)變系統(tǒng),對(duì)于運(yùn)樣一個(gè)非 線性復(fù)雜系統(tǒng),W模擬生物種群進(jìn)化策略為出發(fā)點(diǎn)的人工免疫算法因具有收斂性好、尋優(yōu) 能力強(qiáng)等優(yōu)點(diǎn),適合于求解此類(lèi)系統(tǒng)的優(yōu)化問(wèn)題。目前已經(jīng)在網(wǎng)絡(luò)擁塞控制、無(wú)線頻譜分 配、網(wǎng)絡(luò)基站選址優(yōu)化、多信道聯(lián)合感知、網(wǎng)絡(luò)認(rèn)知引擎優(yōu)化等通信網(wǎng)絡(luò)優(yōu)化相關(guān)領(lǐng)域得到 了廣泛應(yīng)用,然而,目前并沒(méi)有將該算法用于研究異構(gòu)網(wǎng)絡(luò)的吞吐量?jī)?yōu)化問(wèn)題。
[0005] 異構(gòu)網(wǎng)絡(luò)吞吐量?jī)?yōu)化問(wèn)題可W描述為:在往返時(shí)延RTT,丟包率P分別滿足約束條 件:RTT>0,0<P< 1的情況下,尋求最優(yōu)的網(wǎng)絡(luò)參數(shù)組合(RTT,P),使異構(gòu)網(wǎng)絡(luò)的吞吐量B (P)最大。
[0006] 人工免疫算法通過(guò)初始化種群、親和度評(píng)估、選擇、交叉、變異和抗體促進(jìn)和抑制 等操作,最終得到最優(yōu)解。然而,現(xiàn)有方法所用算法采用固定的變異概率,在進(jìn)化后期高親 和度的抗體W較大概率發(fā)生變異,不利于保護(hù)已有的較優(yōu)的抗體,且一般的均勻變異算子 在進(jìn)化后期變異尺度較大,導(dǎo)致后期收斂速度慢,同時(shí)僅采用基于期望繁殖率的選擇概率, 當(dāng)抗體濃度和親和度都越高時(shí),抗體被選擇的概率越大,不能保持種群的多樣性。
【發(fā)明內(nèi)容】
[0007] 為解決現(xiàn)有算法采用固定的變異概率,在進(jìn)化后期高親和度的抗體W較大概率發(fā) 生變異,不利于保護(hù)已有的較優(yōu)的抗體,且一般的均勻變異算子在進(jìn)化后期變異尺度較大, 導(dǎo)致后期收斂速度慢等問(wèn)題,本發(fā)明對(duì)人工免疫算法進(jìn)行改進(jìn),并W此為基礎(chǔ)提供了一種 基于免疫算法的網(wǎng)絡(luò)吞吐量?jī)?yōu)化參數(shù)獲取方法。
[0008] 本發(fā)明為解決上述技術(shù)問(wèn)題所采用的技術(shù)方案為:一種基于免疫算法的網(wǎng)絡(luò)吞吐 量?jī)?yōu)化參數(shù)獲取方法,包括W下步驟: 1) 設(shè)定抗體群pop的規(guī)模Siz邱op、記憶庫(kù)種群overbest,設(shè)定參數(shù)RTT和丟包率P的取 值范圍是[a, b],采用浮點(diǎn)數(shù)編碼方式,隨機(jī)產(chǎn)生M個(gè)長(zhǎng)度為2的初始抗體Pid=Ui, X2),且Xi = a+r X (b-a),i = 1,2; 其中,Xi是抗體的某個(gè)基因,Xi和X2分別表示RTT和p,M=siz邱op+overbestj為[0,1] 之間的隨機(jī)數(shù),此時(shí),每一個(gè)抗體代表一種可能的參數(shù)組合方案,從抗體種群中隨機(jī)選取 overbest個(gè)抗體組成記憶庫(kù)Abl; 設(shè)定抗體完成一次交叉、變異、選擇操作為一次迭代,當(dāng)前的迭代次數(shù)為g; 設(shè)定免疫算法進(jìn)行交叉、變異、選擇操作的最大次數(shù)為最大迭代次數(shù)為gmax,gmax由多 次試驗(yàn)進(jìn)行確定,其值為200~1000,若g = gmax,則終止算法,輸出結(jié)果; 2) 對(duì)種群中的抗體進(jìn)行親和度評(píng)估 將異構(gòu)網(wǎng)絡(luò)TCPVeno的吞吐量公式作為免疫算法的目標(biāo)函數(shù),其公式如下:
其中,丫 e[0.5,0.引,擁塞丟包時(shí)丫 =0.5,誤碼丟包時(shí)丫 =0.8,p為網(wǎng)絡(luò)的總丟包率, 包含擁塞丟包和無(wú)線誤碼丟包事件,To為超時(shí)重傳定時(shí)器的初始值; 將目標(biāo)函數(shù)B(P)作為親和度評(píng)估函數(shù)fitness,即fitness = B(p),親合度函數(shù)值越大, 親和度越高,所獲取的吞吐量也就越大; 按照上式對(duì)組成種群中M個(gè)抗體的網(wǎng)絡(luò)參數(shù)組合進(jìn)行親和度計(jì)算后,并按照親和度大 小進(jìn)行降序排列,將親和度高的前overbest個(gè)參數(shù)組合(RTT,p)放入記憶庫(kù)Abl中進(jìn)行更 新; 3) 判斷算法當(dāng)前的迭代次數(shù)g是否達(dá)到最大進(jìn)化代數(shù)gmax,若達(dá)到,則終止算法,輸出 此時(shí)記憶單元Abl中親和度最高的網(wǎng)絡(luò)參數(shù)組合(RTT,p),即為所求的最優(yōu)化網(wǎng)絡(luò)吞吐量的 網(wǎng)絡(luò)參數(shù),否則,轉(zhuǎn)入步驟4); 4) 判斷交叉概率Pc與r的關(guān)系,Pc為經(jīng)驗(yàn)值,取0.5~0.99,r為[(U]之間的隨機(jī)數(shù),若Pc >r,則由公式對(duì)抗體群pop中的隨機(jī)兩個(gè)抗體執(zhí)行交叉操作,得到新的抗 - J 化> 十 I 1 - / I.口I 體,并組成新的抗體群P〇p2;否則,保持抗體群中的兩個(gè)抗體不變,轉(zhuǎn)入步驟5); 5) 對(duì)步驟4)得到的抗體群pop2中的抗體進(jìn)行自適應(yīng)小波變異操作 采用公式Pm ( g ) = Pm( g-1 ) ( 1 -0.0 1 *g/gmax )對(duì)步驟4 )得到的抗體群pop2中的每一個(gè)抗 體進(jìn)行動(dòng)態(tài)的變異概率計(jì)算,式中Pm(g-l)為上一次迭代的變異概率,Pm(g)為當(dāng)前迭代的變 異概率,判斷交叉概率為Pm與r的關(guān)系,Pm為經(jīng)驗(yàn)值,r為[(U]之間的隨機(jī)數(shù),若pm>r,則按 照W下自適應(yīng)小波變異算子變異公式對(duì)該抗體進(jìn)行變異操作得到新的抗體: 巧' =1? + A(滬化…-C".))。似,滬。(容)> 0 式中,函數(shù)二I'';為基于時(shí)間的變尺度,Xmax和Xmin分別a為變量的最 大值和最小值,f為[-3a(g),3a(g)]之間的隨機(jī)數(shù),0(g)為小波變異函數(shù),其計(jì)算公式為:
函數(shù)a(g)的計(jì)算公式為4各;)=。-^^1-""/?"->+1"^,式中,〇為曰(旨)的上限,設(shè)為10000,曰 (g)的取值隨著g的增加在1和10000之間增大,而a(g)的取值隨著g的增加取值不斷減小; 將得到的運(yùn)些新的抗體組成新的抗體群落P〇p3; 6) 根據(jù)W下公式計(jì)算抗體群落pop3中每個(gè)抗體的被選擇概率并進(jìn)行輪盤(pán)賭選擇操作, 從而得到新的抗體群P〇p4;
式中,a = 〇.9,e為常數(shù),則抗體即網(wǎng)絡(luò)參數(shù)被選擇進(jìn)入下一代的選擇概率,fitness(i) 為抗體群中某一抗體的親和度,sizepop為種群大小,取值50~200,Ci為抗體的濃度; 抗體濃度Cl是群體中相似抗體所占的比例,即
,在該公式中, %,^='1'〇^^/,了為抗體的親和度闊值,了 = 〇.9點(diǎn),功抗體與抗體之間的親和度,51^二 l/(l+dij),di功抗體化佔(zhàn)1,化2,義13)和刮(刮1,刮2,郵)之間的歐式距離,如的計(jì)算公式如下:
7) 對(duì)步驟6)得到的抗體群pop4執(zhí)行步驟2)的操作,從中選取出親和度較高的前I個(gè)抗 體,同時(shí)采用步驟1)中的浮點(diǎn)數(shù)編碼方式重新生成Siz邱OP-I個(gè)抗體,將運(yùn)兩種方式得到的 抗體合并組成新一代抗體群P〇p5; 8) 將步驟7)得到的抗體群pop5按照步驟2)的操作執(zhí)行。
[0009] 有益效果:本發(fā)明利用免疫算法,W經(jīng)典異構(gòu)網(wǎng)絡(luò)吞吐量公式作為目標(biāo)函數(shù), (RTT,p)編碼為抗體集,提出了一種新的獲取吞吐量最優(yōu)的網(wǎng)絡(luò)參數(shù)的算法,該算法利用浮 點(diǎn)數(shù)編碼、親和度評(píng)估、免疫記憶、小波變異、濃度抑制、非均勻交叉等機(jī)制得到最優(yōu)的網(wǎng)絡(luò) 參數(shù),再結(jié)合智能控制機(jī)制將網(wǎng)絡(luò)參數(shù)穩(wěn)定在最優(yōu)值附近,可W優(yōu)化網(wǎng)絡(luò)吞吐量。
【具體實(shí)施方式】
[0010] 下面結(jié)合具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的闡述。
[0011] -種基于免疫算法的網(wǎng)絡(luò)吞吐量?jī)?yōu)化參數(shù)獲取方法,包括W下步驟: 1) 設(shè)定抗體群pop的規(guī)模Siz邱op、記憶庫(kù)種群overbest,設(shè)定參數(shù)RTT和丟包率P的取 值范圍是[a, b],采用浮點(diǎn)數(shù)編碼方式,隨機(jī)產(chǎn)生M個(gè)長(zhǎng)度為2的初始抗體Pid=Ui, X2),且Xi = a+r X (b-a),i = 1,2; 其中,Xi是抗體的某個(gè)基因,Xi和X2分別表示RTT和p,M=siz邱op+overbestj為[0,1] 之間的隨機(jī)數(shù),此時(shí),每一個(gè)抗體代表一種可能的參數(shù)組合方案,從抗體種群中隨機(jī)選取 overbe