本發(fā)明屬于大規(guī)模網(wǎng)絡(luò)領(lǐng)域,涉及網(wǎng)絡(luò)最短路徑計算方法,具體是一種基于網(wǎng)絡(luò)社區(qū)信息的點到點最短路徑計算方法,可用于計算大規(guī)模網(wǎng)絡(luò)中的點到點最短路徑。
背景技術(shù):
進入21世紀以來,以互聯(lián)網(wǎng)迅猛發(fā)展為代表人類社會已經(jīng)大步邁入了網(wǎng)絡(luò)時代。不僅如此,人類生活的周圍世界都是以網(wǎng)絡(luò)形式存在,從虛擬的萬維網(wǎng)到現(xiàn)實的交通網(wǎng),從非常活躍的社交網(wǎng)到支持網(wǎng)購的物流網(wǎng),從電力系統(tǒng)的大型電力網(wǎng)絡(luò)到電子產(chǎn)品領(lǐng)域的超大規(guī)模集成電路網(wǎng),從日常的個人社交網(wǎng)絡(luò)到學(xué)術(shù)領(lǐng)域的科學(xué)家合作關(guān)系網(wǎng),網(wǎng)絡(luò)已經(jīng)起到了巨大的作用。
隨著人類文明的進步,網(wǎng)絡(luò)的規(guī)模已經(jīng)變得越來越大。例如,經(jīng)濟的進步促進了世界網(wǎng)民數(shù)量的增長,使得萬維網(wǎng)的節(jié)點急劇加大,先前的ip地址以用完;交通和交通方式的發(fā)展,使以前的交通網(wǎng)絡(luò)變得更加龐大和復(fù)雜,各種新的交通網(wǎng)絡(luò)也在不多的產(chǎn)生中;而微電子集成電路的規(guī)模由一般到大規(guī)模再到超大規(guī)模;科學(xué)家的合作也有國內(nèi)發(fā)展到跨地域甚至跨領(lǐng)域;產(chǎn)品的銷售也不局限于本地,越來越多的商品通過物流銷售到省外和國外,徹底打破了地域限制。在這些大規(guī)模網(wǎng)絡(luò)中,之前的網(wǎng)絡(luò)特性得到保持但更多的是發(fā)展,之前的方法和技術(shù)已經(jīng)不適合大規(guī)模網(wǎng)絡(luò)。
在大規(guī)模網(wǎng)絡(luò)中包含著一些典型的特性,小世界特性、無標度特性和社區(qū)結(jié)構(gòu)特性等。而網(wǎng)絡(luò)的社區(qū)結(jié)構(gòu)對于分析網(wǎng)絡(luò)的拓撲結(jié)構(gòu)、理解網(wǎng)絡(luò)的功能、發(fā)現(xiàn)網(wǎng)絡(luò)中的隱藏規(guī)律以及預(yù)測網(wǎng)絡(luò)的行為不僅具有十分重要的理論意義,而且具有廣泛的應(yīng)用前景。社區(qū)可以定性的定義為網(wǎng)絡(luò)中節(jié)點的子集,其內(nèi)部節(jié)點之間的鏈接比較緊密,而和網(wǎng)絡(luò)中社區(qū)之間節(jié)點的鏈接相對稀疏?,F(xiàn)在已經(jīng)存在一些高效準確的社區(qū)檢測算法可以獲得網(wǎng)絡(luò)的社區(qū)信息,即使是大規(guī)模網(wǎng)絡(luò)。例如blondel等人提出的“fastunfoldingofcommunitiesinlargenetworks”(《journalofstatisticalmechanics:theoryandexperiment》,2008,pages10008)一文中260萬節(jié)點的網(wǎng)絡(luò)只需要0.769秒便可得到比較準確的網(wǎng)絡(luò)社區(qū)信息。
除了網(wǎng)絡(luò)的整體信息,有時候更需要節(jié)點間的信息。網(wǎng)絡(luò)的點到點最短路徑指的是在網(wǎng)絡(luò)中點到點的若干路徑中選擇權(quán)值最小的路徑。在網(wǎng)絡(luò)中,從一個節(jié)點到另一個節(jié)點可能存在著不同的路徑,不同路徑的邊權(quán)值相加的值是不同的,我們需要找到權(quán)值和最小的路徑。例如從一個城市到另一個城市,我們需要找到最短距離的路線。
最短路徑問題是圖論中的典型問題,在電子導(dǎo)航、城市規(guī)劃、計算機網(wǎng)絡(luò)與通信、智能交通系統(tǒng)、交通旅游、地理信息系統(tǒng)以及工程技術(shù)等方面有著廣泛的應(yīng)用。例如交通網(wǎng)絡(luò)中,我們需要找到從一個地點到另一個地點的最短距離從而節(jié)省時間和能源消費;在通信網(wǎng)絡(luò)中,一個用戶與另一個用進行通信,需要找到最短的通信路徑使得通信最少延時和最低消耗;人際關(guān)系網(wǎng)中,通過點對點最短路徑找到兩個人的最直接聯(lián)系。最短路徑問題已成為眾多學(xué)者廣泛研究的一個熱點問題。
經(jīng)典的圖論與不斷發(fā)展完善的計算機數(shù)據(jù)結(jié)構(gòu)及算法的有效結(jié)合使得新的最短路徑算法不斷涌現(xiàn),它們在時間復(fù)雜度、空間復(fù)雜度和實現(xiàn)方面各具特色。其中路徑搜索技術(shù)是最短路徑算法研究的重點所在。路徑搜索通用技術(shù)又可分為組合技術(shù)和代數(shù)方法兩種。組合技術(shù)主要是指標號算法,按照不同的標識節(jié)點處理策略,標號算法又可分為標號設(shè)定和標號改正兩大體系,代數(shù)方法通過運籌學(xué)中的線性規(guī)劃形式化、所定義代數(shù)系統(tǒng)中的聯(lián)立線性代數(shù)方程集形式化和矩陣乘法等方法來求解最短路徑問題。
路徑搜索通用技術(shù)中的標號算法是絕大多數(shù)最短路徑算法的核心部分。荷蘭數(shù)學(xué)家dijkstra提出了最為經(jīng)典的最短優(yōu)先搜索算法,它屬于標號算法中的標號設(shè)定方法。該算法以發(fā)明者的名字命名稱為迪杰特斯拉(dijkstra)算法。經(jīng)典迪杰特斯拉算法將網(wǎng)絡(luò)結(jié)點分成3部分:未標記結(jié)點、臨時標記結(jié)點和永久標記結(jié)點。網(wǎng)絡(luò)中所有結(jié)點首先初始化為未標記結(jié)點,在搜索過程中和最短路徑中的結(jié)點相連通的結(jié)點為臨時標記結(jié)點,每次循環(huán)都是從臨時標記結(jié)點中搜索距源點路徑長度最短的結(jié)點作為永久標記結(jié)點,直至找到目標結(jié)點或者所有的結(jié)點都成為永久標記結(jié)點來結(jié)束算法。該算法不僅能夠求出任意兩頂點間的最短路,而且能夠求解圖中某一特定頂點到其它各頂點的最短路。迪杰特斯拉算法在理論上是正確的,已經(jīng)公認為最好的最短路徑算法。它已經(jīng)廣泛的應(yīng)用在gis系統(tǒng)、城市道路優(yōu)化、物流優(yōu)化、交通系統(tǒng)和機器人路徑規(guī)劃等各個方面。但是該算法的復(fù)雜度為頂點數(shù)平方的數(shù)量級,當(dāng)針對大規(guī)模網(wǎng)絡(luò)模型,網(wǎng)絡(luò)頂點數(shù)和邊數(shù)較多的時候,算法的計算量則較大,花費時間更多。因此,在大規(guī)模網(wǎng)絡(luò)應(yīng)用中表現(xiàn)不盡人意。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于針對上述已有技術(shù)的不足,提出一種基于網(wǎng)絡(luò)社區(qū)信息的最短路徑計算方法,以降低計算最短路徑的時間,提高在大規(guī)模網(wǎng)絡(luò)中的效率。
本發(fā)明的技術(shù)方案是:將網(wǎng)絡(luò)中起點和終點間的路徑長度作為目標問題,利用網(wǎng)絡(luò)的社區(qū)信息,縮小最短路徑算法搜索的范圍,提高搜索的效率,提高算法運行時間,其實現(xiàn)步驟包括如下:
(1)輸入目標網(wǎng)絡(luò)g=(v,e),其中,v表示網(wǎng)絡(luò)中的節(jié)點集合,e為網(wǎng)絡(luò)中邊的集合;輸入網(wǎng)絡(luò)社區(qū)信息c,ci為節(jié)點i的社區(qū),c(k)為社區(qū)k包含節(jié)點的集合;源點s,目標點d;
(2)構(gòu)建目標網(wǎng)絡(luò)的社區(qū)網(wǎng)絡(luò)
(2a)構(gòu)建社區(qū)網(wǎng)絡(luò)cg=(cv,ce),其中cv為社區(qū)網(wǎng)絡(luò)節(jié)點的集合,ce表示網(wǎng)絡(luò)中邊的集合;初始化cv為目標網(wǎng)絡(luò)社區(qū),即社區(qū)網(wǎng)絡(luò)的節(jié)點為目標網(wǎng)絡(luò)的社區(qū)c,設(shè)置cg的邊長度ce為無窮大inf;
(2b)對于目標網(wǎng)絡(luò)g的每一條邊
(3)s所在的社區(qū)cs作為源點,d的社區(qū)cd為終點,使用迪杰特斯拉方法計算社區(qū)網(wǎng)絡(luò)最短路徑spc;
(4)計算目標網(wǎng)絡(luò)最短路徑
(4a)由步驟(3)得到的社區(qū)網(wǎng)絡(luò)最短路徑spc和目標網(wǎng)絡(luò)社區(qū)信息c計算得子網(wǎng)絡(luò)subg的節(jié)點subv=c(spc)和邊長度sube=e(subv);
(4b)對子網(wǎng)絡(luò)節(jié)點進行順序編號得子網(wǎng)絡(luò)索引ind,indi表示子網(wǎng)絡(luò)節(jié)點i在原目標網(wǎng)絡(luò)的節(jié)點,ind(k)為目標網(wǎng)絡(luò)節(jié)點k在子網(wǎng)絡(luò)的編號,對應(yīng)子網(wǎng)絡(luò)的邊長度不變;
(4c)ind(s)為源點,ind(d)為終點,使用迪杰特斯拉方法計算子網(wǎng)絡(luò)最短路徑sps;
(4d)由步驟(4b)得到的子網(wǎng)絡(luò)索引ind和步驟(4c)獲得的子網(wǎng)絡(luò)最短路徑sps計算目標網(wǎng)絡(luò)最短路徑sp=ind(sps);
(5)輸出步驟(4d)中的目標網(wǎng)絡(luò)最短路徑sp。
本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點:
第一,本發(fā)明由于采用了網(wǎng)絡(luò)的社區(qū)信息,為最短路徑的搜索提供了方向,克服了傳統(tǒng)最短路徑算法僅依靠網(wǎng)絡(luò)拓撲結(jié)構(gòu)搜索最短路徑的缺點;
第二,本發(fā)明由于先建立目標網(wǎng)絡(luò)的社區(qū)網(wǎng)絡(luò)圖,找到最短路徑經(jīng)過的社區(qū),把最短路徑的搜索范圍限定在這些社區(qū)內(nèi),提高了算法的效率,克服了現(xiàn)有技術(shù)具有較長計算時間的問題;
第三,本發(fā)明由于采用貪婪的策略,可以正確的找到搜索范圍內(nèi)的最短路徑,保證了結(jié)果的準確性。
附圖說明
圖1為本發(fā)明的實現(xiàn)流程圖;
圖2為本發(fā)明與現(xiàn)有方法在北美航空交通網(wǎng)絡(luò)中找出的最短路徑精度和時間效率比較圖;
圖3為本發(fā)明與現(xiàn)有方法在網(wǎng)絡(luò)理論與實驗科學(xué)合作網(wǎng)絡(luò)中找出的最短路徑精度和時間效率比較圖。
具體實施方式
參照圖1,本發(fā)明的實現(xiàn)步驟如下:
步驟1:輸入目標網(wǎng)絡(luò)g=(v,e),其中,v表示網(wǎng)絡(luò)中的節(jié)點集合,e為網(wǎng)絡(luò)中邊的集合;輸入網(wǎng)絡(luò)社區(qū)信息c,ci為節(jié)點i的社區(qū),c(k)為社區(qū)k包含節(jié)點的集合;源點s,目標點d;
步驟2:確定社區(qū)網(wǎng)絡(luò)。
(2a)社區(qū)c中的每個社區(qū)作為社區(qū)網(wǎng)絡(luò)的節(jié)點cv;
(2b)社區(qū)網(wǎng)絡(luò)的邊初始化為無窮大,即ce=inf;
(2c)對于目標網(wǎng)絡(luò)的每一條邊eij,如果ci≠cj,且
步驟3:求社區(qū)網(wǎng)絡(luò)最短社區(qū)路徑。
(3a)cs為源點,cd為終點;
(3b)使用迪杰特斯拉方法計算社區(qū)網(wǎng)絡(luò)最短社區(qū)路徑spc;
步驟4:計算目標網(wǎng)絡(luò)最短路徑。
(4a)由步驟(3b)得子網(wǎng)絡(luò)節(jié)點subv=c(spc);
(4b)抽取目標子網(wǎng)絡(luò):子網(wǎng)絡(luò)節(jié)點為subv,子網(wǎng)絡(luò)邊長度為sube=e(subv);
(4c)對子網(wǎng)絡(luò)節(jié)點順序編號得子網(wǎng)絡(luò)與原目標網(wǎng)絡(luò)索引ind,sube不變;
(4d)ind(s)為源點,ind(d)為目標點;
(4e)使用迪杰特斯拉方法計算目標子網(wǎng)絡(luò)最短路徑sps;
(4f)計算目標網(wǎng)絡(luò)最短路徑sp=ind(sps)。
步驟5:輸出目標網(wǎng)絡(luò)最短路徑sp。
本發(fā)明的效果可以通過以下仿真進一步說明:
1.仿真條件與參數(shù)。
本實例在intel(r)core(tm)2duocpu2.33ghzwindows8.1系統(tǒng)下,matlabr2012a運行平臺上,完成本發(fā)明與現(xiàn)有迪杰特斯拉方法的仿真實驗。
參數(shù)設(shè)置:節(jié)點對個數(shù)n=50。本實驗針對隨機選取節(jié)點對個數(shù)n為50的情況,分別進行了實驗。每個算法對選出的50個節(jié)點對分別計算最短路徑距離和計算時間。最短路徑距離用于評價算法的準確度,算法的效率用計算時間來評測。最短路徑距離相同表明算法能準確找到最短的點到點路徑,計算時間越短說明算法能更快的找到最短路徑,即對點到點最短路徑問題,該算法有更好的效率。
2.仿真實驗內(nèi)容。
仿真實驗1,北美航空交通網(wǎng)絡(luò)仿真實驗。
本仿真使用美國分析和可視化大型網(wǎng)絡(luò)小組pajek收集的北美航空交通網(wǎng)絡(luò)作為實驗對象。該網(wǎng)絡(luò)一共包括332個節(jié)點,2126條邊。其中沒一個節(jié)點代表一個北美航空飛機場,連接每兩個節(jié)點的每一條邊代表這兩個節(jié)點對應(yīng)的北美航空飛機場存在一條航空線路。該網(wǎng)絡(luò)是典型的交通網(wǎng)絡(luò),是最短路徑問題應(yīng)用最直接的領(lǐng)域。
在本實驗中,利用本發(fā)明方法和迪杰特斯拉算法這兩種方法分別仿真50個節(jié)點對的最短路徑情況;對一個節(jié)點,每種方法分別運行一次并獲取最短路徑長度和計算時間,仿真實驗結(jié)果如圖2所示。其中圖2(a)表示兩種算法計算的最短路徑長度,圖2(b)顯示兩種方法的計算時間。
從圖2(a)可以看出,對于所有的隨機選取的節(jié)點對,利用本發(fā)明方法計算的最短距離和使用迪杰特斯拉算法得到的最短距離之比全部等于1。即本發(fā)明方法的最短距離等于迪杰特斯拉算法的最短距離,說明本發(fā)明方法可以找到與迪杰特斯拉算法完全相同路徑長度的最短路徑,證明本發(fā)明方法是正確的,具有很高的精確度。
從圖2(b)可以看出,對于所有的隨機選取的節(jié)點對,迪杰特斯拉算法計算網(wǎng)絡(luò)中點到點最短路徑的時間是本發(fā)明方法時間的3.03到4.95倍之間,平均時間倍數(shù)為3.87,也就是本發(fā)明方法相對于迪杰特斯拉算法可以平均節(jié)省時間3.87倍。這說明本發(fā)明方法可以更快的找到給定網(wǎng)絡(luò)和節(jié)點的最短路徑,證明本發(fā)明方法有更好的效率。
仿真實驗2,網(wǎng)絡(luò)理論與實驗科學(xué)合作網(wǎng)絡(luò)仿真實驗。
本仿真實驗使用m.e.j.newman手動修改s.boccaletti的“complexnetworks:structureanddynamics”(《physicsreports》,2003)和m.e.j.newman的“thestructureandfunctionofcomplexnetworks”(《siamreview》,2003)兩篇文章中的網(wǎng)絡(luò)理論與實驗科學(xué)合作網(wǎng)絡(luò)。該網(wǎng)絡(luò)包含了原始網(wǎng)絡(luò)的所有元素,包括1589個科學(xué)家,而不是之前發(fā)表的379個科學(xué)家。網(wǎng)絡(luò)理論與實驗科學(xué)合作網(wǎng)絡(luò)共有1589個節(jié)點,2724條邊,每一個節(jié)點代表一個網(wǎng)絡(luò)理論研究領(lǐng)域的科學(xué)家,每條邊表示兩個科學(xué)家合著過論文,邊的權(quán)重表示兩個作者合作過的文章作者數(shù)減一的倒數(shù)之和。
在本實驗中,利用本發(fā)明方法和迪杰特斯拉算法這兩種方法分別仿真50個節(jié)點對的最短路徑情況;對一個節(jié)點,每種方法分別運行一次并獲取最短路徑長度和計算時間,仿真實驗結(jié)果如圖3所示。其中圖3(a)表示兩種算法計算的最短路徑長度,圖3(b)顯示兩種方法的計算時間。
從圖3(a)可以看出,對于所有的隨機選取的節(jié)點對,利用本發(fā)明方法計算的最短距離和使用迪杰特斯拉算法得到的最短距離之比全部等于1。即本發(fā)明方法的最短距離等于迪杰特斯拉算法的最短距離,說明本發(fā)明方法可以找到與迪杰特斯拉算法完全相同路徑長度的最短路徑,證明本發(fā)明方法是正確的,具有很高的精確度。
從圖3(b)可以看出,對于所有的隨機選取的節(jié)點對,迪杰特斯拉算法計算網(wǎng)絡(luò)中點到點最短路徑的時間是本發(fā)明方法時間的72.5到81.0倍之間,平均時間倍數(shù)為77.3,也就是本發(fā)明方法相對于迪杰特斯拉算法可以平均節(jié)省時間77.3倍。這說明本發(fā)明方法可以更快的找到給定網(wǎng)絡(luò)和節(jié)點的最短路徑,證明本發(fā)明方法有更好的效率。
在上述兩個實驗中,對于最短路徑距離,本發(fā)明方法得到的最短路徑距離與迪杰特斯拉算法完全相同,即本發(fā)明方法可以找到最優(yōu)的點到點最短路徑,說明本發(fā)明方法有很高的準確度。對于計算時間,北美航空交通網(wǎng)絡(luò)仿真實驗中,本發(fā)明方法相對于迪杰特斯拉算法可以平均節(jié)省時間3.87倍,網(wǎng)絡(luò)理論與實驗科學(xué)合作網(wǎng)絡(luò)仿真實驗中可以平均節(jié)省時間77.3倍,說明本發(fā)明方法所耗費的計算時間小于迪杰特斯拉算法,證明本發(fā)明方法有很好的時間效率。并且,網(wǎng)絡(luò)理論與實驗科學(xué)合作網(wǎng)絡(luò)比北美航空交通網(wǎng)絡(luò)規(guī)模大,節(jié)省的時間也越多,說明隨著網(wǎng)絡(luò)規(guī)模的增大,本發(fā)明方法節(jié)省的時間就越多,時間效率就越高。
綜上所述,本發(fā)明以網(wǎng)絡(luò)中點到點的最短路徑為目標,利用網(wǎng)絡(luò)的社區(qū)信息,先對最短路徑的搜索范圍進行優(yōu)化,縮小最短路徑的搜索范圍,構(gòu)造出基于網(wǎng)絡(luò)社區(qū)信息的點到點最短路徑計算方法,與現(xiàn)有的迪杰特斯拉方法對比,不僅能夠找到最優(yōu)的點到點最短路徑,而且有很好的時間效率,并且隨著網(wǎng)絡(luò)規(guī)模的變大,本發(fā)明的效率就越明顯,這使得本發(fā)明方法能更加有效的用于解決網(wǎng)絡(luò)點到點最短路徑問題。