本發(fā)明屬于網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,主要涉及一種網(wǎng)絡(luò)可靠性模型及混合智能優(yōu)化方法。
背景技術(shù):
網(wǎng)絡(luò)系統(tǒng)是現(xiàn)實生活中的重要系統(tǒng)結(jié)構(gòu),例如電力網(wǎng)、通信網(wǎng)絡(luò)、計算機網(wǎng)絡(luò)等都是關(guān)系國計民生的基礎(chǔ)設(shè)施,它們都具有網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),其可靠性性能直接影響到社會安全和人民生活。網(wǎng)絡(luò)系統(tǒng)一旦發(fā)生故障,將會對人們的生活、經(jīng)濟及社會安全等造成重大的影響。因此,網(wǎng)絡(luò)的可靠性越來越受到人們的重視。可靠性大體可從三個方面去考慮:網(wǎng)絡(luò)的生存性、有效性和抗毀性。網(wǎng)絡(luò)的生存性是指對于節(jié)點或鏈路具有一定失效概率的網(wǎng)絡(luò),在隨機性破壞作用下,網(wǎng)絡(luò)能夠保持連通的概率。網(wǎng)絡(luò)抗毀性是基于拓?fù)浣Y(jié)構(gòu)的可靠性參數(shù),不考慮網(wǎng)絡(luò)邊和節(jié)點的可靠度,衡量的是在網(wǎng)絡(luò)中的節(jié)點或邊發(fā)生自然失效或遭受惡意攻擊的條件下,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)保持連通的能力。國內(nèi)外有不少文獻(xiàn)就網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的抗毀性測度進(jìn)行了研究,主要結(jié)論有圖抵抗度、代數(shù)連通度等。有效性則是基于網(wǎng)絡(luò)性能的可靠性指標(biāo),表示網(wǎng)絡(luò)系統(tǒng)在網(wǎng)絡(luò)部件失效條件下滿足通信業(yè)務(wù)性能要求的程度。網(wǎng)絡(luò)可靠性優(yōu)化問題是一個np-hard組合問題,它包括:1)以網(wǎng)絡(luò)可靠性為約束條件,極小化投資成本;2)以投資成本為約束條件,極大化網(wǎng)絡(luò)可靠性。其中,前者是以運營商為出發(fā)點,后者是以用戶為出發(fā)點。
目前已有較多研究學(xué)者從生存性的角度對網(wǎng)絡(luò)可靠性展開研究??煽啃詥栴}已經(jīng)被證明為是np-hard問題,一般情況人們無法得到問題的最優(yōu)解。basimaelshqeirat在topologydesignwithminimalcostsubjecttonetworkreliabilityconstraint一文中基于動態(tài)規(guī)劃法解決網(wǎng)絡(luò)拓?fù)湓O(shè)計問題在可靠性限制條件下。該算法首先用三個啟發(fā)式方法產(chǎn)生k個生成樹序列,然后使用每一個啟發(fā)式方法對應(yīng)產(chǎn)生的k個生成樹序列產(chǎn)生優(yōu)化結(jié)果。bernadengiz等人在aself-tuningheuristicforthedesignofcommunicationnetworks一文中采用自調(diào)整啟發(fā)式方法解決在可靠性限制條件下極小化投資成本的網(wǎng)絡(luò)可靠性優(yōu)化問題。以上這些研究在對可靠性模型進(jìn)行優(yōu)化求解時一般采取啟發(fā)式方法或單種智能算法,但因為算法本身固有的內(nèi)在缺陷,求解結(jié)果容易陷入局部最優(yōu)解。在可靠性模型分析時以往研究都是假定節(jié)點完全可靠,進(jìn)行網(wǎng)絡(luò)可靠性拓?fù)鋬?yōu)化設(shè)計,實際上這是不符合實際情況的。除此之外,以往研究中只考慮了網(wǎng)絡(luò)的生存性問題,以全終端可靠性作為網(wǎng)絡(luò)生存性度量目標(biāo),但針對網(wǎng)絡(luò)的抗毀性問題,在模型優(yōu)化研究中未考慮相關(guān)度量指標(biāo)。
綜上所述,現(xiàn)有技術(shù)存在的問題是:目前的可靠性模型在模型建立時未考慮節(jié)點失效的情形,不符合實際情形;模型當(dāng)中限制條件單一,只是從生存性的角度進(jìn)行可靠性拓?fù)鋬?yōu)化設(shè)計,并未考慮網(wǎng)絡(luò)的抗毀性能,根據(jù)現(xiàn)有可靠性模型優(yōu)化所設(shè)計出來的網(wǎng)絡(luò)可能生存性能較好但抗毀性能較差;當(dāng)前可靠性優(yōu)化算法由于算法本身固有的內(nèi)在缺陷,所求優(yōu)化結(jié)果容易陷入局部最優(yōu)。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)存在的問題,本發(fā)明提供了一種網(wǎng)絡(luò)可靠性模型及混合智能優(yōu)化方法。
本發(fā)明是這樣實現(xiàn)的,一種網(wǎng)絡(luò)可靠性模型,所述網(wǎng)絡(luò)可靠性模型為:
s.t.r(x)≥r0(2)
aij=aji=xij(4)
di≥2,i=1,2,…,n(6)
l(g)=d(g)-a(g)(7)
λ1≤λ2≤…≤λn(8)
式(2-3)表示網(wǎng)絡(luò)的全終端可靠度不小于最低要求全終端可靠度;式(4-6)表示網(wǎng)絡(luò)拓?fù)鋱D當(dāng)中節(jié)點度都大于等于2,即網(wǎng)絡(luò)是一個滿足度2約束的連通圖;式(7-9)表示網(wǎng)絡(luò)的代數(shù)連通度不小于最低要求代數(shù)連通度;式(10-12)表示網(wǎng)絡(luò)的圖抵抗度不小于最低要求圖抵抗度;
其中,網(wǎng)絡(luò)的物理拓?fù)錇間(v,e),結(jié)點集合v={vi|i=1,2,…n}代表網(wǎng)絡(luò)設(shè)備集合;其中,n代表網(wǎng)絡(luò)中結(jié)點的個數(shù);lij表示結(jié)點vi和vj之間的鏈路,而鏈路的集合為e{lij|i,j∈n};
f(x)表示目標(biāo)函數(shù);c*表示歸一化后的圖抵抗度;
本發(fā)明的另一目的在于提供一種所述網(wǎng)絡(luò)可靠性模型的混合智能優(yōu)化方法,所述優(yōu)化方法包括以下步驟:
步驟一,初始化:初始化信息素、鏈路成本矩陣、節(jié)點信息、鏈路信息、初始解xout;給定種群規(guī)模pop、交叉概率pc、變異概率pm、遺傳最大進(jìn)化代數(shù)gmax;隨機產(chǎn)生滿足約束條件的初始種群,并令遺傳初始進(jìn)化代數(shù)g=0;
步驟二,按適值評估種群中的個體,將種群中最大的適應(yīng)度函數(shù)值與xout的適應(yīng)度函數(shù)值進(jìn)行比較,若大于,則將其對應(yīng)的x賦給xout;否則,xout保持不變;
步驟三,按最優(yōu)保存策略的輪盤賭選擇方法,進(jìn)行交叉和變異操作;
步驟四,迭代代數(shù)g=g+1;
步驟五,若g>gmax,則停止,并輸出xout,轉(zhuǎn)步驟六;否則,轉(zhuǎn)步驟二;
步驟六,根據(jù)xout的值更新信息素,并另蟻群初始進(jìn)化代數(shù)t=0;
步驟七,根據(jù)狀態(tài)轉(zhuǎn)移規(guī)則進(jìn)行蟻群搜索;
步驟八,對鏈路上的信息素進(jìn)行更新;
步驟九,迭代代數(shù)t=t+1,判斷是否滿足終止條件,若滿足,則輸出統(tǒng)計信息,程序結(jié)束;否則轉(zhuǎn)步驟七。
進(jìn)一步,對種群個體采用二進(jìn)制編碼方式,兩個節(jié)點之間存在鏈路用1表示,否則用0表示;每個x對應(yīng)一個染色體;對于節(jié)點個數(shù)為n的網(wǎng)絡(luò),其對應(yīng)網(wǎng)絡(luò)拓?fù)鋱D當(dāng)中最多有n(n-1)/2條邊,染色體定義為長度等于n(n-1)/2的二進(jìn)制位串。
進(jìn)一步,目標(biāo)函數(shù)和適應(yīng)度函數(shù)分別設(shè)計為:
目標(biāo)函數(shù):z(x)=f(x);
適應(yīng)度函數(shù):f(x)=cmax-f(x);
其中,cmax為網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)全連時鏈路總成本。
進(jìn)一步,采用最優(yōu)保存策略的輪盤賭選擇策略;首先,將當(dāng)前種群中適應(yīng)度函數(shù)值最高的個體完整地復(fù)制到下一代種群中;然后,按輪盤賭選擇策略執(zhí)行選擇操作。
進(jìn)一步,所述交叉操作采用單點交叉方式,從種群中隨機的選擇兩個父代染色體,再生成一個(0,1)區(qū)間的隨機數(shù)prandom,若prandom小于交叉概率pc,則隨機選擇一個基因位置作為交叉點位置,對兩個體進(jìn)行交叉操作,將交叉后的染色體放進(jìn)子代種群中;若prandom不小于交叉概率,則兩個體保持不變,將父代個體直接復(fù)制到子代種群中;交叉概率pc和進(jìn)化代數(shù)i相關(guān)聯(lián)的函數(shù)pc(i),計算公式:
pc(i)=pc_min+(pc_max-pc_min)×i/gmax;
其中,pc(i)表示第i代的交叉概率,pc_max表示設(shè)定的最大交叉概率,pc_min表示設(shè)定的最小交叉概率,gmax表示算法當(dāng)中遺傳部分設(shè)定的最大進(jìn)化代數(shù);
所述變異操作采用均勻變異的方法,針對染色體中的每個基因,生成一個(0,1)區(qū)間的隨機數(shù)prandom;若prandom小于變異概率pm,則將染色體中該基因位置上的值變成另一個有效值;若prandom不小于變異概率,則基因位置上的值保持不變;變異概率與遺傳進(jìn)化代數(shù)i相關(guān)聯(lián)的函數(shù)pm(i),計算公式:
pm(i)=pm_min+(pm_max-pm_min)×i/gmax;
其中,pm(i)表示第i代的變異概率,pm_max表示設(shè)定的最大變異概率,pm_min表示設(shè)定的最小變異概率,gmax表示算法當(dāng)中遺傳部分設(shè)定的最大進(jìn)化代數(shù)。
進(jìn)一步,根據(jù)公式對鏈路上信息素進(jìn)行全局更新:
τij(new)=(1-p)τij(old)+δτij;
其中m為螞蟻的數(shù)量,q表示信息素強度,δτij為本次循環(huán)中鏈路(i,j)上信息素的增量,p為信息素?fù)]發(fā)因子,τij(old)為本次循環(huán)前鏈路(i,j)上的信息素濃度,τij(new)為本次循環(huán)后鏈路(i,j)上的信息素濃度。
本發(fā)明的另一目的在于提供一種應(yīng)用所述網(wǎng)絡(luò)可靠性模型的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
本發(fā)明的優(yōu)點及積極效果為:本發(fā)明提出的網(wǎng)絡(luò)可靠性優(yōu)化模型加入了網(wǎng)絡(luò)抗毀性相關(guān)評價指標(biāo),從生存性和抗毀性兩個角度進(jìn)行優(yōu)化設(shè)計,并在優(yōu)化設(shè)計當(dāng)中允許節(jié)點以一定的概率失效,對網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進(jìn)行優(yōu)化設(shè)計,克服了現(xiàn)有可靠性模型限制條件單一的缺陷,更加完善和符合實際應(yīng)用場景。本發(fā)明提出的遺傳和蟻群混合智能算法mgaca,針對遺傳算法(geneticalgorithm,ga)的局部搜索能力較差,總體搜索能力較強,而蟻群算法(antcolonyoptimization,aco)總體搜索能力較差,局部搜索能力較強的特點,將ga和aco相結(jié)合,取長補短,克服了單種智能算法本身固有的缺陷,改進(jìn)了解的求解質(zhì)量。與現(xiàn)有的網(wǎng)絡(luò)可靠性模型的方法不同,本發(fā)明構(gòu)建了一種新的可靠性模型,并提出遺傳算法和蟻群算法相結(jié)合的混合智能算法搜索出最優(yōu)的網(wǎng)絡(luò)拓?fù)滏溌贩峙浞椒ā?/p>
附圖說明
圖1是本發(fā)明實施例提供的網(wǎng)絡(luò)可靠性模型的混合智能優(yōu)化方法流程圖。
圖2是本發(fā)明實施例提供的網(wǎng)絡(luò)可靠性模型的混合智能優(yōu)化方法實現(xiàn)流程圖。
圖3是本發(fā)明實施例提供的節(jié)點個數(shù)為10時算法性能對比。
圖4是本發(fā)明實施例提供的節(jié)點個數(shù)為15時算法性能對比。
圖5是本發(fā)明實施例提供的節(jié)點個數(shù)為14時算法性能對比。
圖6是本發(fā)明實施例提供的代數(shù)連通度變化時結(jié)果對比示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖對本發(fā)明的應(yīng)用原理作詳細(xì)的描述。
如圖1所示,本發(fā)明實施例提供的網(wǎng)絡(luò)可靠性模型的混合智能優(yōu)化方法包括以下步驟:
s101:輸入網(wǎng)絡(luò)結(jié)點總數(shù)、鏈路成本矩陣、鏈路可靠性信息、結(jié)點可靠性信息等,初始化遺傳算法參數(shù);
s102:隨機產(chǎn)生滿足約束條件的初始種群;
s103:種群中個體的適應(yīng)度函數(shù)評估;
s104:采用最優(yōu)保存策略的輪盤賭選擇方法。首先,將當(dāng)前種群中適應(yīng)度函數(shù)值最高的個體完整地復(fù)制到下一代種群中;其次,按輪盤賭選擇策略執(zhí)行選擇操作;
s105:交叉和變異;
s106:判斷當(dāng)前循環(huán)次數(shù)是否小于最大迭代次數(shù):如果當(dāng)前循環(huán)次數(shù)小于最大迭代次數(shù),則循環(huán)次數(shù)加1,并轉(zhuǎn)步驟s103;如果當(dāng)前循環(huán)次數(shù)等于最大迭代次數(shù),結(jié)束遺傳算法步驟,輸出結(jié)果,并轉(zhuǎn)步驟s107;
s107:根據(jù)遺傳算法輸出的結(jié)果更新信息素,對蟻群算法中的參數(shù)進(jìn)行初始化,參數(shù)包括蟻群最大進(jìn)化代數(shù)、全局最優(yōu)解和迭代最優(yōu)解等;
s108:螞蟻根據(jù)狀態(tài)轉(zhuǎn)移概率公式計算的概率選擇路徑;
s109:根據(jù)公式對鏈路上的信息素進(jìn)行全局更新;
s110:判斷當(dāng)前循環(huán)次數(shù)是否小于最大迭代次數(shù):如果當(dāng)前循環(huán)次數(shù)小于最大迭代次數(shù),則循環(huán)次數(shù)加1,并轉(zhuǎn)步驟s108;如果當(dāng)前循環(huán)次數(shù)等于最大迭代次數(shù),則結(jié)束蟻群搜索,輸出統(tǒng)計信息,程序結(jié)束。
下面結(jié)合附圖對本發(fā)明的應(yīng)用原理作進(jìn)一步的描述。
1.技術(shù)方案
1.1可靠性度量指標(biāo)
(1)生存性度量
網(wǎng)絡(luò)的生存性是指對于節(jié)點或鏈路具有一定失效概率的網(wǎng)絡(luò),在隨機性破壞作用下,能夠保持網(wǎng)絡(luò)連通的概率。生存性是基于概率論和圖論的知識提出來的,描述了隨機性破壞以及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)對網(wǎng)絡(luò)可靠性的影響。
本發(fā)明對于生存性的度量指標(biāo)選擇為全終端可靠度,即在概率圖當(dāng)中,任意兩節(jié)點之間均有正常運行鏈路的概率,可以衡量整個網(wǎng)絡(luò)在部件故障情況下的生存能力。
(2)抗毀性度量
網(wǎng)絡(luò)抗毀性是基于拓?fù)浣Y(jié)構(gòu)的可靠性參數(shù),不考慮網(wǎng)絡(luò)中的節(jié)點和邊的可靠度,衡量的是在網(wǎng)絡(luò)中的節(jié)點或邊發(fā)生自然失效或遭受故意攻擊的條件下,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)保持連通的能力。網(wǎng)絡(luò)的抗毀性是指至少需要破壞多少數(shù)量的關(guān)鍵節(jié)點或關(guān)鍵鏈路,導(dǎo)致整個網(wǎng)絡(luò)被分裂成數(shù)個子網(wǎng)或消失關(guān)鍵路徑,從而中斷部分節(jié)點間的通信的能力??箽缘难芯恐饕峭ㄟ^分析網(wǎng)絡(luò)固有的拓?fù)浣Y(jié)構(gòu),主要度量參數(shù)為圖抵抗度、代數(shù)連通度等。本發(fā)明采用代數(shù)連通度、圖抵抗度作為網(wǎng)絡(luò)抗毀性的度量指標(biāo)。
1)代數(shù)連通度
設(shè)g(v,e)是一個無向簡單圖。圖g的鄰接矩陣記為a(g),令d(g)是g的頂點度對角矩陣,定義g的拉普拉斯矩陣l(g)=d(g)-a(g),如果l(g)的特征值λ1,λ2,…λn滿足λ1≤λ2≤…≤λn。λ2稱為g的代數(shù)連通度,記為α(g)。
2)圖抵抗度
設(shè)g(v,e)是一個無向簡單圖。圖g的鄰接矩陣記為a(g),令d(g)是g的頂點度對角矩陣,定義g的拉普拉斯矩陣l(g)=d(g)-a(g),如果l(g)的特征值λ1,λ2,…λn滿足λ1≤λ2≤…≤λn。其中,n為網(wǎng)絡(luò)節(jié)點個數(shù),rg稱為圖抵抗度,計算公式如下。
1.2可靠性優(yōu)化模型
設(shè)給定網(wǎng)絡(luò)的物理拓?fù)錇間(v,e),結(jié)點集合v={vi|i=1,2,…n}代表網(wǎng)絡(luò)設(shè)備集合。其中,n代表網(wǎng)絡(luò)中結(jié)點的個數(shù);lij表示結(jié)點vi和vj之間的鏈路,而鏈路的集合為e{lij|i,j∈n}。
變量符號的含義如下:
f(x):目標(biāo)函數(shù);
c*:歸一化后的圖抵抗度;
cij:i和j兩點間的鏈路成本;
r(x):全終端可靠度;
r0:最低要求全終端可靠度;
rg:圖抵抗度;
xij:鏈路決策變量,xij=1表示節(jié)點i和j有直接鏈路連接,xij=0表示節(jié)點i和j無直接鏈路連接;
x:{x12,x13,…,xij,…,x(n-1)n}的一種網(wǎng)絡(luò)拓?fù)滏溌方M合;
λ0:最低要求代數(shù)連通度;
λ2:代數(shù)連通度;
a(g):圖g的鄰接矩陣;
aij:圖g的鄰接矩陣的第i行第j列元素;
d(g):圖g的節(jié)點度對角矩陣;
dij:圖g的節(jié)點度對角矩陣的第i行第j列元素;
di:節(jié)點度;
l(g):圖g的拉普拉斯矩陣;
λi:l(g)的特征值;
pe:鏈路可靠度;
pv:節(jié)點可靠度;
模型假設(shè)條件:
(1)網(wǎng)絡(luò)節(jié)點數(shù)目給定及對應(yīng)的可靠度是確定的;
(2)每條鏈路的成本和可靠度是確定的;
(3)每條鏈路是雙向的,并且節(jié)點i和節(jié)點j之間只能有一條鏈路;
(4)每條鏈路有兩種狀態(tài),即正常和故障,并且鏈路故障是統(tǒng)計獨立的;
(5)每個節(jié)點有兩種狀態(tài),即正常和故障,并且節(jié)點故障是統(tǒng)計獨立的;
(6)系統(tǒng)是不可修復(fù)的;
基于以上描述,本發(fā)明構(gòu)造下面所示的可靠性優(yōu)化模型。
s.t.r(x)≥r0式(2)
aij=aji=xij式(4)
di≥2,i=1,2,…,n式(6)
l(g)=d(g)-a(g)式(7)
λ1≤λ2≤…≤λn式(8)
式(2-3)表示網(wǎng)絡(luò)的全終端可靠度不小于最低要求全終端可靠度;式(4-6)表示網(wǎng)絡(luò)拓?fù)鋱D當(dāng)中節(jié)點度都大于等于2,即網(wǎng)絡(luò)是一個滿足度2約束的連通圖;式(7-9)表示網(wǎng)絡(luò)的代數(shù)連通度不小于最低要求代數(shù)連通度;式(10-12)表示網(wǎng)絡(luò)的圖抵抗度不小于最低要求圖抵抗度。
1.3混合智能優(yōu)化算法
本發(fā)明針對遺傳算法(geneticalgorithm,ga)的局部搜索能力差,全局搜索能力較強,而蟻群算法(antcolonyoptimizationaco)總體搜索能力較差,局部搜索能力較強的特點,將ga和aco相結(jié)合,取長補短,構(gòu)造混合智能算法mgaca(mixedgeneandantcolonyalgorithm)。其基本思路是算法前期采用遺傳算法進(jìn)行全局搜索,利用遺傳算法的全局收斂性、快速性、隨機性,其搜索結(jié)果產(chǎn)生有關(guān)問題的初始信息素分布。算法后期采用蟻群算法,在有初始信息素分布的情況下,充分利用蟻群算法正反饋性、并行性、求精解效率高等特點。
本發(fā)明網(wǎng)絡(luò)可靠性模型的優(yōu)化方法的具體實現(xiàn)步驟是:
(1)初始化:初始化信息素、鏈路成本矩陣、節(jié)點信息、鏈路信息、初始解xout等;給定種群規(guī)模pop、交叉概率pc、變異概率pm、遺傳最大進(jìn)化代數(shù)gmax;隨機產(chǎn)生滿足約束條件的初始種群,并令遺傳初始進(jìn)化代數(shù)g=0;
(2)按適值評估種群中的每個個體,將種群中最大的適應(yīng)度函數(shù)值與xout的適應(yīng)度函數(shù)值進(jìn)行比較,若大于,則將其對應(yīng)的x賦給xout;否則,xout保持不變;
(3)按最優(yōu)保存策略的輪盤賭選擇方法,進(jìn)行交叉和變異操作;
(4)迭代代數(shù)g=g+1;
(5)若g>gmax,則停止,并輸出xout,轉(zhuǎn)(6);否則,轉(zhuǎn)(2);
(6)根據(jù)xout的值更新信息素,并另蟻群初始進(jìn)化代數(shù)t=0;
(7)根據(jù)狀態(tài)轉(zhuǎn)移規(guī)則進(jìn)行蟻群搜索;
(8)信息素更新;
(9)迭代代數(shù)t=t+1,判斷是否滿足終止條件,若滿足,則輸出統(tǒng)計信息,程序結(jié)束;否則轉(zhuǎn)(7);
如圖2所示,本發(fā)明網(wǎng)絡(luò)可靠性模型的優(yōu)化方法的具體實現(xiàn)步驟如下:
步驟1:輸入網(wǎng)絡(luò)結(jié)點總數(shù)、鏈路成本矩陣、鏈路可靠性信息、結(jié)點可靠性信息等,初始化遺傳算法參數(shù)。
步驟2:隨機產(chǎn)生滿足約束條件的初始種群
本發(fā)明對種群個體采用二進(jìn)制編碼位串,兩個節(jié)點之間存在鏈路用1表示,否則用0表示。每個x對應(yīng)一個染色體,染色體采用二進(jìn)制編碼。對于節(jié)點個數(shù)為n的網(wǎng)絡(luò),其對應(yīng)網(wǎng)絡(luò)圖中最多具有n(n-1)/2條邊,故染色體定義為長度等于n(n-1)/2的二進(jìn)制位串。
表示此網(wǎng)絡(luò)的編碼形式為:
[x12x13x14x15x23x24x25x34x35x45]
[1101101101]
步驟3:種群中個體的適應(yīng)度函數(shù)評估
適應(yīng)度函數(shù)是對遺傳算法解的好壞進(jìn)行評判的一種標(biāo)準(zhǔn),適應(yīng)度函數(shù)值是遺傳進(jìn)行選擇操作的主要依據(jù),對于本發(fā)明中的極小化成本優(yōu)化模型,目標(biāo)函數(shù)和適應(yīng)度函數(shù)分別設(shè)計為:
目標(biāo)函數(shù):z(x)=f(x);
適應(yīng)度函數(shù):f(x)=cmax-f(x);
其中cmax為網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)全連時鏈路總成本。
步驟4:選擇操作
本發(fā)明采用最優(yōu)保存策略的輪盤賭選擇策略。首先,將當(dāng)前種群中適應(yīng)度函數(shù)值最高的個體完整地復(fù)制到下一代種群中;其次,按輪盤賭選擇策略執(zhí)行選擇操作;該策略的優(yōu)點是遺傳算法ga終止時得到的結(jié)果是歷代種群中出現(xiàn)過的最高適應(yīng)度的個體。
步驟5:交叉和變異
1)交叉操作
所以本發(fā)明采用單點交叉方式。其具體操作是從種群中隨機的選擇兩個父代染色體,再生成一個(0,1)區(qū)間的隨機數(shù)prandom,若prandom小于交叉概率pc,則隨機選擇一個基因位置作為交叉點位置,對兩個體進(jìn)行交叉操作,將交叉后的染色體放進(jìn)子代種群中;若prandom不小于交叉概率,則兩個體保持不變,將父代個體直接復(fù)制到子代種群中。
隨著遺傳進(jìn)化代數(shù)的逐漸增加,種群中的個體越來越好。為保持種群中個體的多樣性,避免優(yōu)化結(jié)果陷入局部最優(yōu),克服早熟收斂現(xiàn)象,使交叉概率pc具有可調(diào)節(jié)性,使pc隨著進(jìn)化代數(shù)的增加而逐漸增大。因此,算法當(dāng)中建立一個交叉概率pc和進(jìn)化代數(shù)i相關(guān)聯(lián)的函數(shù)pc(i),計算公式如下:
pc(i)=pc_min+(pc_max-pc_min)×i/gmax
其中,pc(i)表示第i代的交叉概率,pc_max表示設(shè)定的最大交叉概率,pc_min表示設(shè)定的最小交叉概率,gmax表示算法當(dāng)中遺傳部分設(shè)定的最大進(jìn)化代數(shù)。
2)變異操作
變異操作的主要作用是增加種群的個體多樣性,均勻變異能很好的增加個體多樣性,所以本發(fā)明提出的算法采用均勻變異的方法。其基本操作為:針對染色體中的每個基因,生成一個(0,1)區(qū)間的隨機數(shù)prandom。若prandom小于變異概率pm,將染色體中該基因位置上的值變?yōu)榱硪粋€有效值;若prandom不小于變異概率,則基因位置上的值保持不變。
同樣,為避免早熟收斂,本發(fā)明提出的算法使變異概率的值具有某種可調(diào)節(jié)性,建立一個變異概率與遺傳進(jìn)化代數(shù)i相關(guān)聯(lián)的函數(shù)pm(i),計算公式如下:
pm(i)=pm_min+(pm_max-pm_min)×i/gmax
其中,pm(i)表示第i代的變異概率,pm_max表示設(shè)定的最大變異概率,pm_min表示設(shè)定的最小變異概率,gmax表示算法當(dāng)中遺傳部分設(shè)定的最大進(jìn)化代數(shù)。
步驟6:判斷當(dāng)前循環(huán)次數(shù)是否小于最大迭代次數(shù):如果當(dāng)前循環(huán)次數(shù)小于最大迭代次數(shù),則循環(huán)次數(shù)加1,并轉(zhuǎn)步驟3;如果當(dāng)前循環(huán)次數(shù)等于最大迭代次數(shù),結(jié)束遺傳算法步驟,輸出xout,并轉(zhuǎn)步驟7。
步驟7:根據(jù)xout的值更新信息素,并對蟻群算法中的參數(shù)進(jìn)行初始化,參數(shù)包括蟻群最大進(jìn)化代數(shù)、全局最優(yōu)解和迭代最優(yōu)解等。
步驟8:螞蟻根據(jù)狀態(tài)轉(zhuǎn)移概率公式計算的概率選擇路徑。
步驟9:根據(jù)公式對鏈路上的信息素進(jìn)行全局更新。
τij(new)=(1-p)τij(old)+δτij;
其中m為螞蟻的數(shù)量,q表示信息素強度,δτij為本次循環(huán)中鏈路(i,j)上信息素的增量,p為信息素?fù)]發(fā)因子,τij(old)為本次循環(huán)前鏈路(i,j)上的信息素濃度,τij(new)為本次循環(huán)后鏈路(i,j)上的信息素濃度。
步驟10:判斷當(dāng)前循環(huán)次數(shù)是否小于最大迭代次數(shù):如果當(dāng)前循環(huán)次數(shù)小于最大迭代次數(shù),則循環(huán)次數(shù)加1,并轉(zhuǎn)步驟8;如果當(dāng)前循環(huán)次數(shù)等于最大迭代次數(shù),則結(jié)束蟻群搜索,輸出統(tǒng)計信息,程序結(jié)束。
下面結(jié)合仿真對本發(fā)明的應(yīng)用效果作詳細(xì)的描述。
本發(fā)明計算機仿真所設(shè)定的條件如下:
實驗環(huán)境:在microsoftwindowsxp操作系統(tǒng)環(huán)境下進(jìn)行軟件測試和仿真,所有仿真都在一臺惠普計算機(四核,cpu主頻3.30ghz,內(nèi)存4gb)運行,仿真開發(fā)平臺為jdk1.7.0_25+eclipse,源代碼使用java語言來進(jìn)行編寫。
為了體現(xiàn)mgaca算法在不同場景下的性能,選取三個典型通信網(wǎng)絡(luò)進(jìn)行測試,其一為節(jié)點個數(shù)為n=10的網(wǎng)絡(luò),其二為節(jié)點個數(shù)為內(nèi)n=15的網(wǎng)絡(luò)。這兩組測試問題對應(yīng)的網(wǎng)絡(luò)拓?fù)滏溌纷畲髷?shù)目分別為45、105,問題所采用的編碼方式為
其他仿真環(huán)境參數(shù)配置為:鏈路可靠度ρe=0.95,節(jié)點可靠度pv=0.98,各鏈路成本(單位:元)為在[1,100]之間隨機產(chǎn)生的整數(shù),r0=0.95,λo=0.7,
為了能更好地測試算法的性能,對于每個測試問題,將mgaca算法與最近提出的sth(self-tuningheuristic)算法進(jìn)行對比分析,以驗證mgaca算法的性能。
為了能更好地比較兩種算法的優(yōu)化性能,對于每個測試問題,兩種算法通過計算機均進(jìn)行10次隨機實驗,取10次仿真結(jié)果作為輸出數(shù)據(jù)進(jìn)行對比和分析。
算法的優(yōu)化求解質(zhì)量是指最后找到解質(zhì)量的高低,對于本發(fā)明優(yōu)化模型而言,在保證可靠性要求的條件下,找出的解對應(yīng)目標(biāo)函數(shù)值越小,則算法的求解效果越好。
在以下各仿真結(jié)果圖中,附圖3到5的縱軸均表示網(wǎng)絡(luò)成本,表征算法優(yōu)化求解質(zhì)量的能力;附圖3到5的橫軸均表示實驗次數(shù);附圖6的橫軸表示代數(shù)連通度。
附圖3、4和5給出了不同節(jié)點個數(shù)mgaca算法與sth算法的結(jié)果對比,從三個圖中都可以看出,mgaca算法的結(jié)果優(yōu)于sth算法。
表1給出了算法的求解質(zhì)量比較。通過表1中的測試結(jié)果可以看出,mgaca找出的解,無論是最好解、最差解或是解的平均值都是最好的。因此,mgaca算法找出解的優(yōu)化質(zhì)量較高,驗證了所提算法的有效性。表2給出了這三個測試問題最終的優(yōu)化方案。
表1算法求解質(zhì)量比較
表2優(yōu)化方案
即使在同樣的測試場景下,算法也會由于約束條件的不同,得到差異較大的結(jié)果。為了測試不同參數(shù)對mgaca算法性能的影響,我們對節(jié)點個數(shù)為10的測試問題設(shè)置了不同最低要求代數(shù)連通度對網(wǎng)絡(luò)成本的影響。附圖6給出了仿真結(jié)果比較。從圖中可以看出,網(wǎng)絡(luò)成本隨著二者的增加而增加,mgaca算法對應(yīng)的網(wǎng)絡(luò)成本較sth算法對應(yīng)的網(wǎng)絡(luò)成本低。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。