復(fù)雜網(wǎng)絡(luò)的社團(tuán)發(fā)現(xiàn)方法及社團(tuán)重要節(jié)點(diǎn)發(fā)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于復(fù)雜網(wǎng)絡(luò)技術(shù)領(lǐng)域,更為具體地講,涉及一種復(fù)雜網(wǎng)絡(luò)的社團(tuán)發(fā)現(xiàn)方 法及社團(tuán)重要節(jié)點(diǎn)發(fā)現(xiàn)方法。
【背景技術(shù)】
[0002] 復(fù)雜網(wǎng)絡(luò)的研宄是現(xiàn)今科學(xué)研宄中的一個(gè)熱點(diǎn),它已滲透到各個(gè)領(lǐng)域,并成為這 些領(lǐng)域的重要研宄方向。不同領(lǐng)域的復(fù)雜網(wǎng)絡(luò),都可以用圖的形式來表示。點(diǎn)表示復(fù)雜網(wǎng) 絡(luò)中的個(gè)體,邊表示復(fù)雜網(wǎng)絡(luò)中個(gè)體之間的關(guān)系,邊的權(quán)重用來表示個(gè)體之間的聯(lián)系。由此 看出,復(fù)雜網(wǎng)絡(luò)的結(jié)構(gòu)是由大量的點(diǎn)和它們之間的相互作用關(guān)系組成的。隨著對復(fù)雜網(wǎng)絡(luò) 的深入研宄,發(fā)現(xiàn)復(fù)雜網(wǎng)絡(luò)中呈現(xiàn)出大量的社團(tuán)結(jié)構(gòu),即具有相同特性的節(jié)點(diǎn)之間的聯(lián)系 較多,而不同特性的節(jié)點(diǎn)之間聯(lián)系較少。復(fù)雜網(wǎng)絡(luò)中的社團(tuán)就是這些具有相同特性的節(jié)點(diǎn) 以及連接它們之間的邊所組成的子圖集合。
[0003] 現(xiàn)有的社團(tuán)發(fā)現(xiàn)算法主要包括Kernighan-Lin算法、譜平分法、派系過濾算法和 分級聚類算法等。分級聚類算法根據(jù)將網(wǎng)絡(luò)中的邊刪除或添加,又細(xì)分為分裂算法和凝聚 算法。常見的分裂算法包括:GN算法、采用節(jié)點(diǎn)集的GN算法、快速分裂算法、基于相異性的 算法和基于信息中心度的算法等。常見的凝聚算法包括:FastNewman算法、CNM算法和結(jié) 合譜分析的凝聚算法等。
[0004] 以上介紹的算法都是基于網(wǎng)絡(luò)全局來考慮的,有時(shí)候人們只對網(wǎng)絡(luò)的局部信息感 興趣。1-shell算法和Clauset算法就是兩種比較典型的基于網(wǎng)絡(luò)局部信息的算法。后來, Raghavan提出快速標(biāo)號傳播算法(LPA算法)。而之后,Xie等人又提出了通過標(biāo)簽傳播進(jìn) 行社團(tuán)檢測的LabelRank算法對LPA改進(jìn),避免了結(jié)果的隨機(jī)輸出,并且提高了社團(tuán)檢測的 性能。Yang等人基于邊的結(jié)構(gòu)和節(jié)點(diǎn)的屬性提出了CESNA算法。馬杰良提出了基于局部稠 密度的社團(tuán)劃分算法。陳端兵提出了重疊社區(qū)挖掘的兩段策略算法。
[0005] 大多數(shù)真實(shí)的復(fù)雜網(wǎng)絡(luò)是加權(quán)網(wǎng),無權(quán)網(wǎng)無法體現(xiàn)出這些網(wǎng)絡(luò)中節(jié)點(diǎn)之間的連接 強(qiáng)度。引入邊權(quán),既可以體現(xiàn)真實(shí)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的復(fù)雜性,又可以更好地體現(xiàn)真實(shí)網(wǎng)絡(luò)拓?fù)?結(jié)構(gòu)之間的相互聯(lián)系,為社團(tuán)發(fā)現(xiàn)提供更多的依據(jù)。因此,在對復(fù)雜網(wǎng)絡(luò)進(jìn)行社團(tuán)發(fā)現(xiàn)前, 需先對具有社團(tuán)結(jié)構(gòu)的加權(quán)網(wǎng)建模。
[0006] 隨著科學(xué)技術(shù)的進(jìn)步,信息量急劇增長。經(jīng)典的社團(tuán)發(fā)現(xiàn)算法由于時(shí)間復(fù)雜度高, 已經(jīng)無法完成大規(guī)模復(fù)雜網(wǎng)絡(luò)的社團(tuán)發(fā)現(xiàn),研宄準(zhǔn)確度高且時(shí)間復(fù)雜度低的大規(guī)模復(fù)雜網(wǎng) 絡(luò)的社團(tuán)發(fā)現(xiàn)算法迫在眉睫。經(jīng)典的社團(tuán)發(fā)現(xiàn)算法都是將節(jié)點(diǎn)作為劃分對象,通過對節(jié)點(diǎn) 設(shè)計(jì)適當(dāng)?shù)膭澐址椒▉慝@取點(diǎn)的社團(tuán)結(jié)構(gòu),但以節(jié)點(diǎn)為劃分對象的社團(tuán)發(fā)現(xiàn)算法需要先找 到網(wǎng)絡(luò)中的關(guān)鍵節(jié)點(diǎn),從關(guān)鍵節(jié)點(diǎn)開始發(fā)現(xiàn)網(wǎng)絡(luò)中的社團(tuán),這就導(dǎo)致這些算法的準(zhǔn)確度還 與網(wǎng)絡(luò)中的關(guān)鍵節(jié)點(diǎn)相關(guān)。
[0007] 在一個(gè)社團(tuán)中,往往存在著一個(gè)或多個(gè)重要節(jié)點(diǎn),這些節(jié)點(diǎn)在社團(tuán)中具有很大的 影響力,所以發(fā)現(xiàn)社團(tuán)中的重要節(jié)點(diǎn)對網(wǎng)絡(luò)的安全、控制和監(jiān)管具有重要意義。常見的重要 節(jié)點(diǎn)發(fā)現(xiàn)算法考慮因素片面單一,有的是基于節(jié)點(diǎn)之間的直接連接狀態(tài),有的是基于目標(biāo) 節(jié)點(diǎn)到其他節(jié)點(diǎn)的最優(yōu)連接方式等,且是用于尋找全網(wǎng)中的重要節(jié)點(diǎn),因此,需要探索考慮 因素周全的社團(tuán)中重要節(jié)點(diǎn)的發(fā)現(xiàn)算法。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種準(zhǔn)確度高且時(shí)間復(fù)雜度低、適 合大規(guī)模復(fù)雜網(wǎng)絡(luò)的社團(tuán)發(fā)現(xiàn)方法及社團(tuán)重要節(jié)點(diǎn)發(fā)現(xiàn)方法。
[0009] 為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明復(fù)雜網(wǎng)絡(luò)的社團(tuán)發(fā)現(xiàn)方法,包括以下步驟:
[0010] S1 :首先得到復(fù)雜網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),即復(fù)雜網(wǎng)絡(luò)中的節(jié)點(diǎn)和節(jié)點(diǎn)之間的連接關(guān)系, 并得到節(jié)點(diǎn)間連接次數(shù);
[0011] S2 :計(jì)算復(fù)雜網(wǎng)絡(luò)中每條邊的邊權(quán)wiJ:
[0013] 其中,i、j分別表示兩個(gè)不同節(jié)點(diǎn)的序號,取值范圍為1彡i辛j彡n,n表示復(fù)雜 網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量;Tu表示節(jié)點(diǎn)間連接次數(shù),\和~分別為節(jié)點(diǎn)i和節(jié)點(diǎn)j的鄰點(diǎn)集合, kGNinNj表示節(jié)點(diǎn)k為節(jié)點(diǎn)i和節(jié)點(diǎn)j的共同鄰點(diǎn),Tik和Tjk分別為節(jié)點(diǎn)i和節(jié)點(diǎn)k、節(jié) 點(diǎn)j和節(jié)點(diǎn)k的連接次數(shù);
[0014] S3 :對復(fù)雜網(wǎng)絡(luò)中所有邊按邊權(quán)的從大到小進(jìn)行排序,得到邊序列E;
[0015] S4:令社團(tuán)序號m=l;
[0016] S5 :劃分得到社團(tuán)Cm,具體方法包括以下步驟:
[0017] S5. 1 :從邊序列E中選擇第一條邊作為社團(tuán)Cm的初始邊,該邊的兩個(gè)端點(diǎn)劃分進(jìn) 社團(tuán)(;;
[0018] S5. 2 :統(tǒng)計(jì)當(dāng)前社團(tuán)Cm的鄰點(diǎn)集合U;
[0019] S5. 3 :從鄰點(diǎn)集合U中取出一個(gè)鄰點(diǎn)記為u,計(jì)算鄰點(diǎn)u對應(yīng)的局部社團(tuán)判斷函數(shù) 值M(eui),計(jì)算公式為:
[0021] 其中,su表示鄰點(diǎn)u的點(diǎn)權(quán),
[0022] S5. 4 :如果M(eui) > 0,則將鄰點(diǎn)u及鄰點(diǎn)u與當(dāng)前社團(tuán)(;內(nèi)的節(jié)點(diǎn)的所有邊都劃 分進(jìn)社團(tuán)Cm,返回步驟S5. 2 ;否則從鄰點(diǎn)集合U中刪除鄰點(diǎn)u,進(jìn)入步驟S5. 5 ;
[0023] S5. 5 :判斷鄰點(diǎn)集合U是否為空,如果不是,返回步驟S5. 3,否則社團(tuán)(;劃分完 畢;
[0024] S6 :從邊序列E中將社團(tuán)Cm包含的所有邊刪除,如果當(dāng)前邊序列E為空,進(jìn)入步驟 S7,否則令m=m+1,返回步驟S5 ;
[0025] S7 :如果復(fù)雜網(wǎng)絡(luò)中存在孤立點(diǎn),將每個(gè)孤立點(diǎn)分別作為一個(gè)社團(tuán);
[0026] S8 :處理社團(tuán)間的重疊點(diǎn),處理方法為:
[0027] 記重疊點(diǎn)t被劃分進(jìn)P個(gè)社團(tuán),分別計(jì)算節(jié)點(diǎn)6的鄰邊中所有屬于每個(gè)社團(tuán)(;的 邊權(quán)和Wp,也就是節(jié)點(diǎn)G與社團(tuán)cp中節(jié)點(diǎn)的邊的邊權(quán)和,計(jì)算公式為:
[0029] 其中,p的取值范圍為1彡p彡P(guān);
[0030] 從得到的P個(gè)邊權(quán)和wp中選擇最大邊權(quán)和對應(yīng)的社團(tuán)作為節(jié)點(diǎn)G的歸屬社團(tuán),從 其他社團(tuán)中刪除節(jié)點(diǎn)6。
[0031] 本發(fā)明還提供了一種復(fù)雜網(wǎng)絡(luò)的社團(tuán)重要節(jié)點(diǎn)發(fā)現(xiàn)方法,包括以下步驟:
[0032] S1 :計(jì)算社團(tuán)中各節(jié)點(diǎn)的點(diǎn)權(quán)Sy
[0034] 其中,r表示社團(tuán)的節(jié)點(diǎn)序號,取值范圍為1 <r<R,R表示社團(tuán)中節(jié)點(diǎn)的數(shù)量; C表示節(jié)點(diǎn)r所在的社團(tuán),隊(duì)表示節(jié)點(diǎn)r的鄰點(diǎn)集合,節(jié)點(diǎn)t同屬于社團(tuán)C,并且是節(jié)點(diǎn)r的 鄰點(diǎn),表示節(jié)點(diǎn)r和節(jié)點(diǎn)t的邊的邊權(quán);
[0035] S2 :計(jì)算節(jié)點(diǎn)r相對于其鄰點(diǎn)t的度中心性因子Krt,計(jì)算公式為:
[0037] 其中,匕表示節(jié)點(diǎn)r在社團(tuán)C內(nèi)的度,<k>為社團(tuán)C的平均度,fj為社團(tuán)C團(tuán)的 平均單位權(quán),計(jì)算公式分別為:
[0040]S3 :分別計(jì)算社團(tuán)中各個(gè)節(jié)點(diǎn)r到社團(tuán)C中其他節(jié)點(diǎn)的平均最短距離4:
[0042] 其中,^至A廣示節(jié)點(diǎn)r到節(jié)點(diǎn)t'之間最短路徑所經(jīng)過的中間節(jié)點(diǎn),t'取值 范圍為1<t'辛r<R;
[0043] S4 :計(jì)算各個(gè)節(jié)點(diǎn)的接近度因子1/d^
[0044] S5 :計(jì)算節(jié)點(diǎn)r受到同一社團(tuán)的鄰點(diǎn)t的影響因子Lrt=K?Dt;
[0045] S6:計(jì)算各個(gè)節(jié)點(diǎn)的重要度并將社團(tuán)中的節(jié)點(diǎn)按重要度從大到小進(jìn)行排序,重要 度計(jì)算公式為:
[0047] 本發(fā)明復(fù)雜網(wǎng)絡(luò)的社團(tuán)發(fā)現(xiàn)方法及社團(tuán)重要節(jié)點(diǎn)發(fā)現(xiàn)方法,首先根據(jù)復(fù)雜網(wǎng)絡(luò)的 拓?fù)浣Y(jié)構(gòu)和節(jié)點(diǎn)間連接次數(shù)計(jì)算得到每條邊的邊權(quán),以邊權(quán)最大的邊為新社團(tuán)的起始邊, 對新社團(tuán)進(jìn)行擴(kuò)張,每次擴(kuò)張時(shí)計(jì)算社團(tuán)鄰點(diǎn)的局部社團(tuán)判斷函數(shù),如果局部社團(tuán)判斷函 數(shù)大于0,即將鄰點(diǎn)和對應(yīng)邊劃分進(jìn)行社團(tuán),社團(tuán)停止生長后,從剩下的邊中選擇邊權(quán)最大 邊作為另一個(gè)新社團(tuán)的起始邊,繼續(xù)劃分;在進(jìn)行社團(tuán)重要節(jié)點(diǎn)發(fā)現(xiàn)時(shí),先計(jì)算得到各節(jié)點(diǎn) 受到同一社團(tuán)的鄰點(diǎn)的影響因子,然后根據(jù)節(jié)點(diǎn)受到鄰點(diǎn)的影響因子和鄰點(diǎn)受到節(jié)點(diǎn)的影 響因子計(jì)算得到節(jié)點(diǎn)的重要度,完成重要節(jié)點(diǎn)發(fā)現(xiàn)。
[0048] 本發(fā)明具有以下有益效果:
[0049] (1)采用本發(fā)明得到社團(tuán)發(fā)現(xiàn)結(jié)果更加準(zhǔn)確,更符合網(wǎng)絡(luò)實(shí)際,并且執(zhí)行效率較 高,尤其適用于大規(guī)模網(wǎng)絡(luò);
[0050] (2)在進(jìn)行重要節(jié)點(diǎn)發(fā)現(xiàn)時(shí),綜合考慮了節(jié)點(diǎn)的權(quán)重、號召力、位置和鄰點(diǎn)的因素, 最終得到的結(jié)果更加合理。
【附圖說明】
[0051] 圖1是本發(fā)明復(fù)雜網(wǎng)絡(luò)的社團(tuán)發(fā)現(xiàn)方法的流程圖;
[0052] 圖2是本發(fā)明中社團(tuán)劃分的流程圖;
[0053] 圖3是復(fù)雜網(wǎng)絡(luò)的重要節(jié)點(diǎn)發(fā)現(xiàn)方法的流程圖;
[0054] 圖4是采用本發(fā)明社團(tuán)發(fā)現(xiàn)方法對Zachary網(wǎng)絡(luò)的社團(tuán)發(fā)現(xiàn)結(jié)果;
[0055] 圖5是采用本發(fā)明和兩種對照算法對四種社團(tuán)網(wǎng)絡(luò)得到的社團(tuán)發(fā)現(xiàn)結(jié)果的模塊 度對比曲線;
[0056] 圖6是采用本發(fā)明和兩種對照算法對四種社團(tuán)網(wǎng)絡(luò)進(jìn)行社團(tuán)發(fā)現(xiàn)的執(zhí)行時(shí)間對 比曲線。
【具體實(shí)施方式】
[0057] 下面結(jié)合附圖對本發(fā)明的【具體實(shí)施方式】進(jìn)行描述,以便本領(lǐng)域的技術(shù)人員更好地 理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計(jì)的詳細(xì)描述也許 會淡化本發(fā)明的主要內(nèi)容時(shí),這些描述在這里將被忽略。
[0058] 圖1是本發(fā)明復(fù)雜網(wǎng)絡(luò)的社團(tuán)發(fā)現(xiàn)方法的流程圖。如圖1所示,本發(fā)明復(fù)雜網(wǎng)絡(luò) 的社團(tuán)發(fā)現(xiàn)方法包括以下步驟:
[0059] S101 :獲取復(fù)雜網(wǎng)絡(luò)的信息:
[0060] 首先得到復(fù)雜網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),即復(fù)雜網(wǎng)絡(luò)中的節(jié)點(diǎn)和節(jié)點(diǎn)之間的連接關(guān)系,并 得到節(jié)點(diǎn)間連接