一種復(fù)雜網(wǎng)絡(luò)通用仿真系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種復(fù)雜網(wǎng)絡(luò)通用仿真系統(tǒng),屬于計算機(jī)軟件技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]大部分復(fù)雜系統(tǒng)都可以抽象成復(fù)雜網(wǎng)絡(luò)來研究,復(fù)雜網(wǎng)絡(luò)是我們研究復(fù)雜系統(tǒng)的一個重要工具。九十年代末,無標(biāo)度網(wǎng)絡(luò)與小世界網(wǎng)絡(luò)的發(fā)現(xiàn)加速了人們對復(fù)雜網(wǎng)絡(luò)的研究,與此同時,也掀起了一股對網(wǎng)絡(luò)研究的熱潮,其研究范圍涉及包括物理學(xué)、醫(yī)藥學(xué)、社會學(xué)與生物學(xué)、工程學(xué)等各個學(xué)科領(lǐng)域。
[0003]目前復(fù)雜網(wǎng)絡(luò)已然成為國際上一個備受矚目的研究領(lǐng)域,國外已出現(xiàn)了一些針對復(fù)雜網(wǎng)絡(luò)的分析軟件,如Network、Pajek、Matlab等,國內(nèi)的研究人員對復(fù)雜網(wǎng)絡(luò)的研究也是熱情高漲。然而,目前大多數(shù)研究者只能利用國外的研究平臺或軟件進(jìn)行復(fù)雜網(wǎng)絡(luò)的建模與仿真,而通過對國外各研究平臺及軟件的綜合對比分析,發(fā)現(xiàn)研究者在應(yīng)用國外的研究平臺或軟件時,有以下幾點(diǎn)不足:
[0004]1)由于Network軟件用Python語言編寫,導(dǎo)致其使用門檻較高,對于專業(yè)的復(fù)雜網(wǎng)絡(luò)研究者來講并不實用,國內(nèi)應(yīng)用此軟件的研究者也較少;
[0005]2)Pajek是一款比較成熟的復(fù)雜網(wǎng)絡(luò)仿真軟件,但由于其界面晦澀難懂,且只能生成較少類型的幾種網(wǎng)絡(luò),所以不便于對大規(guī)模網(wǎng)絡(luò)進(jìn)行研究;
[0006]3)雖然國內(nèi)的復(fù)雜網(wǎng)絡(luò)研究人員一般使用Matlab作為分析工具,但事實上Matlab并不是專門用來研究復(fù)雜網(wǎng)絡(luò)的平臺,它不能提供針對性的方法來進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)的生成或拓?fù)湫再|(zhì)的統(tǒng)計分析,導(dǎo)致研究人員需要自己構(gòu)建模型,并編寫代碼進(jìn)行分析、仿真。
[0007]以上情況,在一定程度上阻礙了復(fù)雜網(wǎng)絡(luò)的發(fā)展和實際運(yùn)用,而本發(fā)明能夠很好地解決上面的問題。
【發(fā)明內(nèi)容】
[0008]本發(fā)明目的在于針對目前缺少一種專門的、公認(rèn)的復(fù)雜網(wǎng)絡(luò)仿真系統(tǒng)的不足,提出了一種復(fù)雜網(wǎng)絡(luò)通用仿真系統(tǒng),該系統(tǒng)應(yīng)用于復(fù)雜網(wǎng)絡(luò)仿真分析,為復(fù)雜網(wǎng)絡(luò)研究人員提供了一個界面簡潔、操作方便、圖形功能強(qiáng)大且專業(yè)性較強(qiáng)的復(fù)雜網(wǎng)絡(luò)分析工具,并且?guī)椭芯咳藛T更直觀、更便捷地進(jìn)行各項復(fù)雜網(wǎng)絡(luò)研究。
[0009]本發(fā)明解決其技術(shù)問題所采取的技術(shù)方案是:一種復(fù)雜網(wǎng)絡(luò)通用仿真系統(tǒng),該系統(tǒng)針對復(fù)雜網(wǎng)絡(luò)進(jìn)行仿真分析,整體系統(tǒng)的架構(gòu)主要分為三層:第一層為基礎(chǔ)層,主要包括網(wǎng)絡(luò)CNet類和節(jié)點(diǎn)CNode類;第二層為功能層,包含了復(fù)雜網(wǎng)絡(luò)仿真分析所需具備的各項基礎(chǔ)功能;第三層為應(yīng)用層,即用戶能直接進(jìn)行操作的各應(yīng)用模塊。
[0010]第一層網(wǎng)絡(luò)CNet類和節(jié)點(diǎn)CNode類分別封裝了網(wǎng)絡(luò)和節(jié)點(diǎn)的屬性、方法,其作用是實現(xiàn)系統(tǒng)基礎(chǔ)功能的構(gòu)建。網(wǎng)絡(luò)CNet類作為節(jié)點(diǎn)CNode類的父類,由若干個網(wǎng)絡(luò)節(jié)點(diǎn)CNode類組成,除完成存儲復(fù)雜網(wǎng)絡(luò)的一系列屬性值,如:節(jié)點(diǎn)數(shù)、連邊數(shù)之外,同時完成網(wǎng)絡(luò)級別的操作,如:網(wǎng)絡(luò)生成、網(wǎng)絡(luò)結(jié)構(gòu)圖繪制、網(wǎng)絡(luò)參數(shù)計算等。CNode類存儲節(jié)點(diǎn)的相關(guān)屬性值:編號、坐標(biāo)、連邊列表和連邊權(quán)重,同時完成節(jié)點(diǎn)級別的操作,如:繪制節(jié)點(diǎn)、節(jié)點(diǎn)參數(shù)計算等。第二層的各功能模塊的實現(xiàn)需要調(diào)用第一層CNet類的屬性和相關(guān)方法,而在實現(xiàn)CNet類的方法時必須調(diào)用下層CNode類的屬性及相關(guān)方法。
[0011]第二層的各項基礎(chǔ)功能包括不同格式網(wǎng)絡(luò)信息文件的讀寫、經(jīng)典復(fù)雜網(wǎng)絡(luò)模型的生成、網(wǎng)絡(luò)及節(jié)點(diǎn)參數(shù)計算、K-Shell分解功能、經(jīng)典復(fù)雜網(wǎng)絡(luò)社團(tuán)劃分功能、SIR傳播功能,以及為實現(xiàn)用戶最優(yōu)使用體驗而增加的圖形顯示、網(wǎng)絡(luò)信息列表顯示及圖像保存功能。該不同格式網(wǎng)絡(luò)信息文件的讀寫分為sst和xml兩種文件的讀寫。sst文件內(nèi)容的格式設(shè)置為“節(jié)點(diǎn)編號-節(jié)點(diǎn)坐標(biāo)-節(jié)點(diǎn)鄰居節(jié)點(diǎn)-與鄰居節(jié)點(diǎn)對應(yīng)的連邊權(quán)重”,每一項節(jié)點(diǎn)屬性用隔開,方便系統(tǒng)對各項信息的讀寫。xml文件內(nèi)容的格式與現(xiàn)行的xml格式一致,第一行聲明該文件是xml文件及它所使用的xml規(guī)范版本,接下來列出網(wǎng)絡(luò)信息根元素,包括網(wǎng)絡(luò)節(jié)點(diǎn)總數(shù)、連邊數(shù)量信息,網(wǎng)絡(luò)中所有節(jié)點(diǎn)信息作為根元素的子元素形式存在,每個子元素又包括節(jié)點(diǎn)編號、度值、坐標(biāo)值、鄰居節(jié)點(diǎn)及連邊權(quán)重等子元素信息。
[0012]本發(fā)明經(jīng)典復(fù)雜網(wǎng)絡(luò)模型的生成分為ER隨機(jī)網(wǎng)絡(luò)、WS小世界網(wǎng)絡(luò)和BA無標(biāo)度網(wǎng)絡(luò)三種網(wǎng)絡(luò)模型的生成。ER隨機(jī)網(wǎng)絡(luò)需要用戶手動設(shè)置的參數(shù)包括節(jié)點(diǎn)總數(shù)N和連邊概率P ;WS小世界網(wǎng)絡(luò)需要用戶手動設(shè)置的參數(shù)包括節(jié)點(diǎn)總數(shù)N、隨機(jī)重連概率p和選擇與目標(biāo)節(jié)點(diǎn)相連的左右各K/2個相鄰的節(jié)點(diǎn)數(shù);BA網(wǎng)絡(luò)需要用戶手動設(shè)置的參數(shù)包括初始連通網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)m,每次加入的新節(jié)點(diǎn)選擇與原網(wǎng)絡(luò)節(jié)點(diǎn)相連的節(jié)點(diǎn)數(shù)η及網(wǎng)絡(luò)最終擬達(dá)到的節(jié)點(diǎn)數(shù)Ν。
[0013]本發(fā)明的網(wǎng)絡(luò)及節(jié)點(diǎn)參數(shù)計算分為網(wǎng)絡(luò)參數(shù)和節(jié)點(diǎn)參數(shù)兩類參數(shù)的計算。計算的網(wǎng)絡(luò)參數(shù)包括平均度、網(wǎng)絡(luò)密度、平均路徑長度和網(wǎng)絡(luò)直徑,計算時需要調(diào)用所有節(jié)點(diǎn)的屬性值,計算完畢系統(tǒng)反饋所有網(wǎng)絡(luò)參數(shù)值。計算的節(jié)點(diǎn)參數(shù)包括聚類系數(shù)、接近中心系數(shù)、介數(shù)以及與指定節(jié)點(diǎn)之間的最短路徑長度。
[0014]本發(fā)明的K-Shell分解功能即是應(yīng)用復(fù)雜網(wǎng)絡(luò)中經(jīng)典的K-Shell分解算法,對網(wǎng)絡(luò)層層剝離最終得到各層節(jié)點(diǎn),無需設(shè)置任何參數(shù)。
[0015]本發(fā)明的經(jīng)典復(fù)雜網(wǎng)絡(luò)社團(tuán)劃分功能分為KL社團(tuán)劃分和CNM社團(tuán)劃分兩種劃分。KL社團(tuán)劃分需要用戶設(shè)置兩個社團(tuán)的大小,CNM社團(tuán)劃分無需設(shè)置任何參數(shù)。
[0016]本發(fā)明的SIR傳播功能分為SIR原版?zhèn)鞑?、SIR傳播版?zhèn)鞑ゼ癝IR免疫版?zhèn)鞑ト悅鞑?。SIR原版?zhèn)鞑ブ恍栌脩粼O(shè)置感染概率和免疫概率兩項參數(shù);SIR傳播版?zhèn)鞑ミ€需要用戶設(shè)置初始感染節(jié)點(diǎn)數(shù)量及傳播迭代步數(shù);SIR免疫版?zhèn)鞑コ腥靖怕屎兔庖吒怕手Σ罚枰脩粼O(shè)置初始免疫節(jié)點(diǎn)數(shù)、初始感染節(jié)點(diǎn)數(shù)及傳播迭代步數(shù),其中被初始化為免疫狀態(tài)的節(jié)點(diǎn)不會再被感染。
[0017]本發(fā)明還包括圖形顯示功能,該圖形顯示功能包括網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖顯示、算法結(jié)果圖顯示及關(guān)系曲線圖顯示。其中,算法結(jié)果圖又分為K-Shell分解結(jié)果圖、KL社團(tuán)劃分結(jié)果圖、CNM社團(tuán)劃分結(jié)果圖及SIR傳播結(jié)果圖四類,K-Shell分解結(jié)果圖用不同形狀表示各層節(jié)點(diǎn),后三類圖形用不同顏色標(biāo)注不同社團(tuán)或不同狀態(tài)的節(jié)點(diǎn)。關(guān)系曲線圖分為度分布曲線圖、聚類系數(shù)與度關(guān)系曲線圖、SIR傳播結(jié)束時三種狀態(tài)節(jié)點(diǎn)數(shù)量變化曲線圖及其隨度值、聚類系數(shù)或PageRank值的變化曲線圖。
[0018]本發(fā)明還包括信息列表顯示功能,該信息列表顯示功能包括網(wǎng)絡(luò)所有節(jié)點(diǎn)信息列表顯示和算法結(jié)果列表顯示兩類。其中,網(wǎng)絡(luò)所有節(jié)點(diǎn)信息列表顯示的是所有節(jié)點(diǎn)的節(jié)點(diǎn)編號及節(jié)點(diǎn)度值兩項信息;算法結(jié)果又可分為K-Shell分解結(jié)果、KL社團(tuán)劃分結(jié)果、CNM社團(tuán)劃分結(jié)果及SIR傳播結(jié)果四類,前者顯示層數(shù)及每層節(jié)點(diǎn)的節(jié)點(diǎn)編號,后兩者顯示社團(tuán)編號及每個社團(tuán)包含的節(jié)點(diǎn)編號,最后SIR傳播結(jié)果顯示S、1、R三種狀態(tài)及各個狀態(tài)包含的節(jié)點(diǎn)編號。
[0019]本發(fā)明包括圖像保存功能與圖形顯示功能,該圖像保存功能與圖形顯示功能相呼應(yīng),所有支持顯示的圖形均可對其雙擊保存??杀4娴膱D片格式包括bmp、png、jpg、gif,tiff等,用戶可按需要手動選擇。
[0020]第三層的各應(yīng)用模塊包含文件操作模塊、網(wǎng)絡(luò)生成模塊、參數(shù)計算模塊、K-Shell分解模塊、社團(tuán)劃分模塊及傳播模型模塊,分別由第二層各項基礎(chǔ)功能組合實現(xiàn)。
[0021]本發(fā)明的文件操作模塊用于對包含復(fù)雜網(wǎng)絡(luò)信息的sst、xml文件的讀寫;
[0022]本發(fā)明的網(wǎng)絡(luò)生成模塊用于復(fù)雜網(wǎng)絡(luò)中三種經(jīng)典網(wǎng)絡(luò)的生成:ER隨機(jī)網(wǎng)絡(luò)、WS小世界網(wǎng)絡(luò)及BA無標(biāo)度網(wǎng)絡(luò),相關(guān)參數(shù)可手動設(shè)置或選擇默認(rèn)值;
[0023]本發(fā)明的參數(shù)計算模塊用于計算復(fù)雜網(wǎng)絡(luò)的節(jié)點(diǎn)參數(shù)及網(wǎng)絡(luò)參數(shù);
[0024]本發(fā)明的K-Shell分解模塊用于對復(fù)雜網(wǎng)絡(luò)應(yīng)用K-Shell分解算法,分離出各層節(jié)點(diǎn);
[0025]本發(fā)明的社團(tuán)劃分模塊用于對復(fù)雜網(wǎng)絡(luò)應(yīng)用KL社團(tuán)劃分和CNM社團(tuán)劃分算法獲得相應(yīng)的社團(tuán)劃分結(jié)果;
[0026]本發(fā)明的傳播模型模塊用于對復(fù)雜網(wǎng)絡(luò)應(yīng)用SIR傳播模型進(jìn)行傳播研究,并在原SIR傳播模型基礎(chǔ)上進(jìn)行改進(jìn),支持用戶自主設(shè)置符合某條件的節(jié)點(diǎn)(即度值排名前5的節(jié)點(diǎn))作為傳播源或?qū)⒉糠止?jié)點(diǎn)直接設(shè)為免疫節(jié)點(diǎn)后再進(jìn)行傳播。
[0027]本發(fā)明的系統(tǒng)支持讀入各種復(fù)雜網(wǎng)絡(luò)進(jìn)行仿真分析,包括自主構(gòu)建的網(wǎng)絡(luò),用戶只需將所要研究的復(fù)雜網(wǎng)絡(luò)所包含的所有節(jié)點(diǎn)信息按照一定格式編寫,保存為sst或xml文件,讀入平臺即可。
[0028]本發(fā)明包括圖形顯示功能,即顯示初始網(wǎng)絡(luò)結(jié)構(gòu)圖之外還支持顯示K-Shell分解結(jié)果、社團(tuán)劃分結(jié)果、傳播結(jié)果及各類曲線圖,其中,K-Shell分解結(jié)果中,各層節(jié)點(diǎn)用不同形狀的節(jié)點(diǎn)表示;社團(tuán)劃分及傳播最終結(jié)果,不同社團(tuán)或不同狀態(tài)的節(jié)點(diǎn)用不