一種基于總體布局的隨機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成方法
【專利摘要】本發(fā)明提供的是一種基于總體布局的隨機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成方法。該方法使用隨機(jī)數(shù)生成模擬隨機(jī)網(wǎng)絡(luò),突出模擬網(wǎng)絡(luò)的隨機(jī)性,并對所生成的隨機(jī)數(shù)進(jìn)行控制,保證每次產(chǎn)生的模型網(wǎng)絡(luò)從頂點分布到連接方式都不盡相同。本發(fā)明克服了隨機(jī)網(wǎng)絡(luò)拓?fù)浜茈y貼近真實網(wǎng)絡(luò)的缺點,生成一種更加貼近真實網(wǎng)絡(luò)結(jié)構(gòu)特性的網(wǎng)絡(luò)拓?fù)洹?br>
【專利說明】一種基于總體布局的隨機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成方法
(-)【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及的是一種基于總體布局的隨機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成方法。
(二)【背景技術(shù)】
[0002]在計算機(jī)網(wǎng)絡(luò)研究中,經(jīng)常需要對新的應(yīng)用程序、體系結(jié)構(gòu)或者協(xié)議等進(jìn)行評估,因此基于真實網(wǎng)絡(luò)的網(wǎng)絡(luò)模擬就成了計算機(jī)網(wǎng)絡(luò)研究的一種重要方法。由于網(wǎng)絡(luò)存在多樣性和復(fù)雜性,如何抽象并模擬真實的網(wǎng)絡(luò)環(huán)境就成為信息系統(tǒng)仿真當(dāng)前研究的重要問題。
[0003]當(dāng)前對于信息系統(tǒng)仿真主要采用的是網(wǎng)絡(luò)拓?fù)淠P?。在網(wǎng)絡(luò)拓?fù)淠P椭?,用盡量能反映真實網(wǎng)絡(luò)的模型作為對真實網(wǎng)絡(luò)環(huán)境的一種抽象,使之作為網(wǎng)絡(luò)模擬的基本輸入,是取得正確結(jié)果的必要條件。
[0004]目前對于網(wǎng)絡(luò)拓?fù)涞纳芍饕腥N方法:人為指定拓?fù)浣Y(jié)構(gòu),從網(wǎng)絡(luò)拓?fù)鋷熘羞x擇典型拓?fù)浣Y(jié)構(gòu);以一定的模型和算法為基礎(chǔ)由計算機(jī)輔助生成;簡單隨機(jī)建模方法,即在平面內(nèi)隨機(jī)選擇頂點并將其連接。其中,前兩種方法基本是以傳統(tǒng)的網(wǎng)絡(luò)拓?fù)?例如星形、環(huán)形、樹形、總線型、網(wǎng)狀等結(jié)構(gòu))和一些著名的拓?fù)淠P?ARPAnet、NSFnet)為基礎(chǔ)的,生成的網(wǎng)絡(luò)結(jié)構(gòu)僅能反映過去和現(xiàn)在網(wǎng)絡(luò)的特性,卻不能反映將來可能出現(xiàn)的、并且與過去和現(xiàn)在均不同的網(wǎng)絡(luò)結(jié)構(gòu),前兩種方法對生成的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)對于網(wǎng)絡(luò)的研究而言,不具有普遍性;第三種方法隨機(jī)產(chǎn)生頂點并使之相聯(lián)通,雖然具有一定的隨機(jī)性,但是這種隨機(jī)效果在實際應(yīng)用過程中受隨機(jī)算法的影響較大,缺乏使用價值。
[0005]為此,我們提出了一種基于總體布局的隨機(jī)網(wǎng)絡(luò)拓?fù)渖煞椒?,通過多次隨機(jī)過程分別產(chǎn)生網(wǎng)絡(luò)結(jié)點數(shù)量、網(wǎng)絡(luò)邊的數(shù)量,使得生成的網(wǎng)絡(luò)的隨機(jī)性較強(qiáng),然后,通過刪除多余結(jié)點來優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),并由此生成隨機(jī)網(wǎng)絡(luò)拓?fù)?。在實現(xiàn)上,一種隨機(jī)網(wǎng)絡(luò)拓?fù)涞纳煞椒ò?生成兩個隨機(jī)數(shù),第一個用于確定網(wǎng)絡(luò)結(jié)點的數(shù)目N,第二個用于確定網(wǎng)絡(luò)具有的連接邊的數(shù)量M,然后生成M對隨機(jī)數(shù),每一對表示這兩個結(jié)點具有一個連接,這樣就生成了隨機(jī)網(wǎng)絡(luò)圖,然后遍歷網(wǎng)絡(luò)結(jié)點,將所有的孤兒結(jié)點(該結(jié)點與其他任何結(jié)點都沒有連接)刪除,同時,如果任意兩個結(jié)點之間多于I條邊時則刪除多余的邊,生成最終的優(yōu)化的網(wǎng)絡(luò)拓?fù)?。我們所提出的隨機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的生成方法為網(wǎng)絡(luò)路由算法的研究提供了基礎(chǔ)。
(三)
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于一種基于總體布局的隨機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成方法。該方法使用隨機(jī)數(shù)生成方法來模擬生成隨機(jī)網(wǎng)絡(luò),突出模擬網(wǎng)絡(luò)的隨機(jī)性,每次產(chǎn)生的模型網(wǎng)絡(luò)從頂點分布到連接方式都不盡相同。并且克服隨機(jī)網(wǎng)絡(luò)拓?fù)浜茈y貼近真實網(wǎng)絡(luò)的缺點,生成一種更加貼近真實網(wǎng)絡(luò)結(jié)構(gòu)特性的網(wǎng)絡(luò)拓?fù)洹?br>
[0007]本發(fā)明的目的是這樣實現(xiàn)的:設(shè)生成隨機(jī)整數(shù)N,N>1為網(wǎng)絡(luò)結(jié)點的數(shù)目,生成隨機(jī)整數(shù)M為需要網(wǎng)絡(luò)中邊的數(shù)目,滿足0〈M≤(NX (N-1)) 2,否則重新生成M ;使用N*N維矩陣G記錄網(wǎng)絡(luò)結(jié)點連接關(guān)系的拓?fù)鋱D,矩陣中元素Gu (l<i, j≤N)的值為O或者1,0表示網(wǎng)絡(luò)結(jié)點i和結(jié)點j不存在連接通路,I表示網(wǎng)絡(luò)結(jié)點i和結(jié)點j之間存在連接通路,任意兩個結(jié)點間只保留一條直接連接通路;初始化矩陣G,使得矩陣G中所有元素的值為O ;生成 M 對隨機(jī)數(shù)(A1, BJ...(Ai, BJ...{Am, B1J,其中 Ai, Bi e {1,2,...,N}且 Ai 關(guān) Bi ; (Ai, Bj 表示結(jié)點Ai和結(jié)點Bi間存在一條連接通路,填充矩陣G中的元素Gmm=I ;這樣生成了一個隨機(jī)網(wǎng)絡(luò)拓?fù)鋱DG,由于隨機(jī)數(shù)中可能存在兩對隨機(jī)數(shù)隊上},(Aj, BjI有Ai=Bj,Bi=Ad情況,這說明在生成的拓?fù)鋱D中出現(xiàn)了兩結(jié)點存在一條以上連通鏈路的情況,為此,將矩陣G中滿足j小于等于i的所有元素Gij置為O,然后計算矩陣G中I的個數(shù)NUM,此時NUM是已經(jīng)生成的隨機(jī)網(wǎng)絡(luò)中連接邊數(shù);如果NUM〈M,則生成M-NUM對隨機(jī)數(shù),填充矩陣G,并將矩陣G中滿足j小于等于i的所有元素Gij置為O,再次計算矩陣G中I的個數(shù)NUM,如果NUM〈M則重復(fù)本步驟直至NUM的值等于M ;如果矩陣G中存在一行或一列的值均為O,即存在Gi j=0(j=l, 2…η)或者Gij=O (i=l, 2....η),表明結(jié)點i或者結(jié)點j不與其它結(jié)點連通,則將該結(jié)點刪除,最終用矩陣G表示優(yōu)化的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),這樣就生成了一種基于總體布局的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);
[0008]具體步驟為:
[0009](I)生成隨機(jī)數(shù)N,用于表示網(wǎng)絡(luò)結(jié)點數(shù);
[0010](2)生成隨機(jī)數(shù)M,用于表示網(wǎng)絡(luò)中連接邊數(shù);
[0011](3)如果0〈M≤(NX (N-1)) 2,則執(zhí)行步驟4 ;否則執(zhí)行步驟2 ;
[0012](4)初始化生成N*N維矩陣G,G中元素均為O ;
[0013](5)初始化NUM=O,用于表示矩陣G中元素I的個數(shù);
[0014](6)生成隨機(jī)數(shù)IBJ ;
[0015](7)如果滿足條件Ai Φ Bi,則執(zhí)行步驟8 ;否則執(zhí)行步驟6 ;
[0016](8)如果滿足條件I≤Ai≤N,則執(zhí)行步驟9 ;否則執(zhí)行步驟6 ;
[0017](9)如果滿足條件I≤Bi≤N,則執(zhí)行步驟10 ;否則執(zhí)行步驟6 ;
[0018](10)填充矩陣G中元素Gmm=I ;
[0019](11)將矩陣G中所有j小于等于i的元素Gij置為O ;
[0020](12)計算矩陣G中I的個數(shù)并保存在NUM中,如果NUM〈M執(zhí)行步驟6 ;否則執(zhí)行步驟13 ;
[0021](13)如果矩陣G中存在Gij=O,對于V』’ e [I, λ],j=l, 2...η,則刪除矩陣中第i行;
[0022](14)如果矩陣G中存在Gij=O,對于Vt/ € [1,d,i=l,2....η則刪除矩陣中第j列;
[0023](15)矩陣G中保存了基于總體布局的隨機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息,生成程序結(jié)束。
[0024]本發(fā)明的關(guān)鍵在于如何保證網(wǎng)絡(luò)結(jié)點和網(wǎng)絡(luò)連接的隨機(jī)性。為此,通過隨機(jī)數(shù)確定網(wǎng)絡(luò)結(jié)點和連接來生成整個拓?fù)渚W(wǎng)絡(luò),并將不滿足現(xiàn)實連接的數(shù)值重新生成調(diào)整,在保證網(wǎng)絡(luò)拓?fù)潆S機(jī)的基礎(chǔ)上,使得生成的網(wǎng)絡(luò)更加貼近真實的網(wǎng)絡(luò)。
[0025]其主要特點如下:
[0026]1、使用隨機(jī)數(shù)生成方法來確定網(wǎng)絡(luò)拓?fù)涞慕Y(jié)點和連接,使每次產(chǎn)生的模型網(wǎng)絡(luò)從頂點分布到連接方式都不盡相同,使生成的網(wǎng)絡(luò)拓?fù)渚哂衅毡樾裕?br>
[0027]2、使用矩陣存儲網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),去除拓?fù)浣Y(jié)構(gòu)中的自連接和雙向連接,使生成的隨機(jī)網(wǎng)絡(luò)拓?fù)浜啙?、更貼近真實網(wǎng)絡(luò)。(四)【專利附圖】
【附圖說明】
[0028]圖1:一種基于總體布局的隨機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成方法
(五)具體的實施方式
[0029]下面結(jié)合附圖距離對本發(fā)明作更詳細(xì)的描述:
[0030]本發(fā)明所述方法的特征在于:
[0031]設(shè)生成隨機(jī)整數(shù)N (N) I)為網(wǎng)絡(luò)結(jié)點的數(shù)目,生成隨機(jī)整數(shù)M為需要網(wǎng)絡(luò)中邊的數(shù)目,滿足0〈M≤(NX (N-1)) 2,否則重新生成M ;使用N*N維矩陣G記錄網(wǎng)絡(luò)結(jié)點連接關(guān)系的拓?fù)鋱D,矩陣中元素Gu (l<i, j ≤N)的值為O或者1,O表示網(wǎng)絡(luò)結(jié)點i和結(jié)點j不存在連接通路,I表示網(wǎng)絡(luò)結(jié)點i和結(jié)點j之間存在連接通路,任意兩個結(jié)點間只保留一條直接連接通路;初始化矩陣G,使得矩陣G中所有元素的值為O ;生成M對隨機(jī)數(shù)(A1, BJ…隊,8}"認(rèn)?1成},其中六1上e {I, 2,..., N} J.Ai ^Bi ^AilBJ表示結(jié)點Ai和結(jié)點Bi間存在一條連接通路,填充矩陣G中的元素6_^1 ;這樣生成了一個隨機(jī)網(wǎng)絡(luò)拓?fù)鋱DG,由于隨機(jī)數(shù)中可能存在兩對隨機(jī)數(shù)隊上},(Aj, BjI有Ai=BpBi=Ad勺情況,這說明在生成的拓?fù)鋱D中出現(xiàn)了兩結(jié)點存在一條以上連通鏈路的情況,為此,將矩陣G中滿足j小于等于i的所有元素Gij置為0,然后計算矩陣G中I的個數(shù)NUM,此時NUM是已經(jīng)生成的隨機(jī)網(wǎng)絡(luò)中連接邊數(shù);如果NUM〈M,則生成M-NUM對隨機(jī)數(shù),填充矩陣G,并將矩陣G中滿足j小于等于i的所有元素Gij置為0,再次計算矩陣G中I的個數(shù)NUM,如果NUM〈M則重復(fù)本步驟直至NUM的值等于M ;如果矩陣G中存在一行或一列的值均為0,即存在Gij=O (j=l, 2…η)或者Gij=O(i=l, 2....η),表明結(jié)點i或者結(jié)點j不與其它結(jié)點連通,則將該結(jié)點刪除,最終用矩陣G表示優(yōu)化的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),這樣就生成了一種基于總體布局的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);
[0032]具體步驟為:
[0033](I)生成隨機(jī)數(shù)N,用于表示網(wǎng)絡(luò)結(jié)點數(shù);
[0034](2)生成隨機(jī)數(shù)M,用于表示網(wǎng)絡(luò)中連接邊數(shù);
[0035](3)如果0〈M≤(NX (N-1)) 2,則執(zhí)行步驟4 ;否則執(zhí)行步驟2 ;
[0036](4)初始化生成N*N維矩陣G,G中元素均為O ;
[0037](5)初始化NUM=O,用于表示矩陣G中元素I的個數(shù);
[0038](6)生成隨機(jī)數(shù)(Ai, BJ ;
[0039](7)如果滿足條件Ai古Bi,則執(zhí)行步驟8 ;否則執(zhí)行步驟6 ;
[0040](8)如果滿足條件I≤Ai≤N,則執(zhí)行步驟9 ;否則執(zhí)行步驟6 ;
[0041](9)如果滿足條件I≤Bi≤N,則執(zhí)行步驟10 ;否則執(zhí)行步驟6 ;
[0042](10)填充矩陣G中元素Gmm=I ;
[0043](11)將矩陣G中所有j小于等于i的元素Gij置為O ;
[0044](12)計算矩陣G中I的個數(shù)并保存在NUM中,如果NUM〈M執(zhí)行步驟6 ;否則執(zhí)行步驟13 ;
[0045](13)如果矩陣G中存在Gij=O,對于Vi E [1,Λ],j=l,2...n,則刪除矩陣中第i行;
[0046](14)如果矩陣G中存在Gij=O,對于VJ e [I, λ] ; i=l,2....η則刪除矩陣中第j列;[0047](15)矩陣G中保存了基于總體布局的隨機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息,生成程序結(jié)束。
[0048]其具體實施模式是這樣的:
[0049]首先生成網(wǎng)絡(luò)結(jié)點和連接數(shù),然后根據(jù)連接數(shù)生成隨機(jī)連接數(shù)對,將連接數(shù)對映射到記錄網(wǎng)絡(luò)拓?fù)涞木仃囍?,設(shè)置矩陣中有連接的兩個結(jié)點元素值為I。生成后,去掉自連接和雙向連接的結(jié)點連接,重新生成隨機(jī)數(shù)對作為連接,保證最后生成的網(wǎng)絡(luò)拓?fù)渲胁淮嬖谧赃B接和雙向連接;并去除不與其它結(jié)點連接的單個網(wǎng)絡(luò)結(jié)點,這樣使用矩陣記錄了一個完整的最優(yōu)化的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
【權(quán)利要求】
1.一種基于總體布局的隨機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成方法,其特征在于:本發(fā)明的目的是這樣實現(xiàn)的:設(shè)生成隨機(jī)整數(shù)N,N>1為網(wǎng)絡(luò)結(jié)點的數(shù)目,生成隨機(jī)整數(shù)M為需要網(wǎng)絡(luò)中邊的數(shù)目,滿足0〈M≤(NX (N-1)) 2,否則重新生成M ;使用N*N維矩陣G記錄網(wǎng)絡(luò)結(jié)點連接關(guān)系的拓?fù)鋱D,矩陣中元素Gu (l<i, j ≤ N)的值為O或者1,O表示網(wǎng)絡(luò)結(jié)點i和結(jié)點j不存在連接通路,I表示網(wǎng)絡(luò)結(jié)點i和結(jié)點j之間存在連接通路,任意兩個結(jié)點間只保留一條直接連接通路;初始化矩陣G,使得矩陣G中所有元素的值為O ;生成M對隨機(jī)數(shù)(A1, BJ…隊,8}"認(rèn)?1成},其中六1上e {I, 2,..., N} J.Ai 、Bi 、AilBJ表示結(jié)點Ai和結(jié)點Bi間存在一條連接通路,填充矩陣G中的元素GAiBi=1 ;這樣生成了一個隨機(jī)網(wǎng)絡(luò)拓?fù)鋱DG,由于隨機(jī)數(shù)中可能存在兩對隨機(jī)數(shù)隊上},(Aj, BjI有Ai=BpBi=Ad勺情況,這說明在生成的拓?fù)鋱D中出現(xiàn)了兩結(jié)點存在一條以上連通鏈路的情況,為此,將矩陣G中滿足j小于等于i的所有元素Gij置為O,然后計算矩陣G中I的個數(shù)NUM,此時NUM是已經(jīng)生成的隨機(jī)網(wǎng)絡(luò)中連接邊數(shù);如果NUM〈M,則生成M-NUM對隨機(jī)數(shù),填充矩陣G,并將矩陣G中滿足j小于等于i的所有元素Gij置為O,再次計算矩陣G中I的個數(shù)NUM,如果NUM〈M則重復(fù)本步驟直至NUM的值等于M ;如果矩陣G中存在一行或一列的值均為O,即存在Gij=O (j=l,2…η)或者Gij=O(i=l,2….η),表明結(jié)點i或者結(jié)點j不與其它結(jié)點連通,則將該結(jié)點刪除,最終用矩陣G表示優(yōu)化的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),這樣就生成了一種基于總體布局的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu); 具體步驟為: .(1)生成隨機(jī)數(shù)N,用于表示網(wǎng)絡(luò)結(jié)點數(shù);. (2)生成隨機(jī)數(shù)M,用于表示網(wǎng)絡(luò)中連接邊數(shù); . (3)如果0〈M≤(NX(N-1)) 2,則執(zhí)行步驟4 ;否則執(zhí)行步驟2 ;. (4)初始化生成N*N維矩陣G,G中元素均為O; . (5)初始化NUM=O,用于表示矩陣G中元素I的個數(shù); . (6)生成隨機(jī)數(shù)(Ai,BJ ; .(7)如果滿足條件Ai古Bi,則執(zhí)行步驟8;否則執(zhí)行步驟6 ; . (8)如果滿足條件I< Ai < N,則執(zhí)行步驟9 ;否則執(zhí)行步驟6 ; . (9)如果滿足條件I< Bi < N,則執(zhí)行步驟10 ;否則執(zhí)行步驟6 ; . (10)填充矩陣G中元素Gmm=I; . (11)將矩陣G中所有j小于等于i的元素Gu置為O; . (12)計算矩陣G中I的個數(shù)并保存在NUM中,如果NUM〈M執(zhí)行步驟6;否則執(zhí)行步驟13 ; . (13)如果矩陣G中存在Gij=O,對于Vie [I, n\,j=l, 2…n,則刪除矩陣中第i行; . (14)如果矩陣G中存在Gij=O,對于Vje [I, n],i=l, 2....η則刪除矩陣中第j列; . (15)矩陣G中保存了基于總體布局的隨機(jī)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息,生成程序結(jié)束。
【文檔編號】H04L12/751GK103457860SQ201310395219
【公開日】2013年12月18日 申請日期:2013年9月3日 優(yōu)先權(quán)日:2013年9月3日
【發(fā)明者】姚文斌, 韓司, 姚翔 申請人:北京郵電大學(xué)