国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于貪婪策略的緊密k 核子圖查詢

2022-10-16 12:27趙丹楓姚賢標(biāo)包曉光黃冬梅郭偉其
計(jì)算機(jī)工程 2022年10期
關(guān)鍵詞:核子子圖權(quán)值

趙丹楓,姚賢標(biāo),包曉光,黃冬梅,郭偉其

(1.上海海洋大學(xué) 信息學(xué)院,上海 201306;2.上海電力大學(xué) 電子與信息工程學(xué)院,上海 200090;3.國家海洋局 東海海洋環(huán)境調(diào)查勘察中心,上海 200137)

0 概述

圖查詢是圖數(shù)據(jù)分析與處理的基礎(chǔ),其中社團(tuán)檢測作為一種子圖查詢,其目標(biāo)是從給定的圖中尋找所有緊密連接的子圖,并且各個(gè)圖內(nèi)部的節(jié)點(diǎn)是連通的[1]。緊密子圖查詢作為社團(tuán)檢測的核心,在很多領(lǐng)域都有著重要的應(yīng)用,例如:在社交網(wǎng)絡(luò)中,查詢聯(lián)系緊密的社團(tuán)有助于用戶的特征分析[2];在作者的合作網(wǎng)絡(luò)中,聯(lián)系緊密的作者之間可能具有相似的研究領(lǐng)域[3];在商品銷售數(shù)據(jù)中,聯(lián)系緊密的商品更有可能被相似的消費(fèi)者所關(guān)注[4];在蛋白質(zhì)網(wǎng)絡(luò)中,關(guān)系緊密的蛋白質(zhì)通常更有可能形成特定的官能團(tuán)[5]。

在現(xiàn)有的研究中,研究人員提出許多社團(tuán)檢測方法,如基于模塊度優(yōu)化的算法[6]、譜方法[7]、非負(fù)矩陣分解[8]等。對于社團(tuán)的定義也有多種,常見的有k架(k-truss)、k團(tuán)(k-clique)、k核(k-core)等,其中k核的定義[9]要求圖中每個(gè)節(jié)點(diǎn)至少有k個(gè)鄰接節(jié)點(diǎn),即每個(gè)節(jié)點(diǎn)的度至少為k。k核可以在線性時(shí)間復(fù)雜度內(nèi)計(jì)算得到,具有較好的應(yīng)用基礎(chǔ)[10-12]。近年來的研究多結(jié)合部分場景的應(yīng)用需求,討論各類屬性圖上的k核子圖查詢[13-15]。然而,由于考慮邊權(quán)值的研究較少,但在很多場景下,圖中邊的權(quán)值往往具有很強(qiáng)的語義關(guān)系。例如在社交網(wǎng)絡(luò)中,兩個(gè)用戶之間的交流越頻繁意味兩者之間的聯(lián)系越緊密。在作者的合作網(wǎng)絡(luò)中,若兩個(gè)作者之間合作的次數(shù)越多,則說明他們的聯(lián)系越緊密,對應(yīng)圖中邊的權(quán)值越大。因此,為了使社團(tuán)檢測更加符合實(shí)際的語義場景,提高查詢結(jié)果的合理性,則需要將圖中邊的權(quán)值考慮在內(nèi)。

此外,考慮到查詢最緊密社團(tuán)往往會(huì)耗費(fèi)較多的時(shí)間,并且在一些應(yīng)用場景下不需要查詢社團(tuán)權(quán)重的最值,例如在蛋白質(zhì)網(wǎng)絡(luò)中,有時(shí)僅需要找到滿足一定緊密關(guān)系的蛋白質(zhì)集合即可。為此,不局限于社團(tuán)檢測中最值的查詢,給定核值k、節(jié)點(diǎn)平均權(quán)值wQ,在加權(quán)圖中查詢聯(lián)系緊密的連通k核子圖問題,記為緊密k核子圖查詢(Closely Relatedk-Core Subgraph Query,CRKSQ)問題。該問題要求查詢得到的連通k核子圖的節(jié)點(diǎn)平均權(quán)值大于等于wQ,其進(jìn)一步限制了子圖的緊密程度,且由于wQ可以根據(jù)實(shí)際需求給出,具有更好的靈活性,更加切合實(shí)際應(yīng)用場景。

為解決CRKSQ 問題,本文首先證明該問題是一個(gè)NP-難問題,即無法為其找到一個(gè)在多項(xiàng)式時(shí)間復(fù)雜度內(nèi)的最優(yōu)算法,并基于貪婪策略設(shè)計(jì)啟發(fā)式算法CRK-G。在此基礎(chǔ)上,研究CRK-G 算法的優(yōu)化策略,提出CRK-C 和CRK-F 算法,分別從降低圖規(guī)模和減少迭代次數(shù)兩個(gè)方面提高查詢效率。最后通過實(shí)驗(yàn)對比3 種算法在不同場景下的效率。

1 相關(guān)工作

目前針對社團(tuán)的查詢已經(jīng)有了廣泛的研究,除k核外,主要還包括基于k-truss和k-clique 的查詢問題。k-truss和k-clique 相對于k核有著更加嚴(yán)格的定義,但都與k核類似,其本身并未考慮圖中的其他屬性,僅僅只是從圖中尋找稠密且內(nèi)聚的結(jié)構(gòu)。近年來的很多研究也開始結(jié)合圖的語義關(guān)系,探索更加高質(zhì)量的k-truss和k-clique 社團(tuán)[16-18]。

與上述兩種社團(tuán)的定義相比,k核可以被有效地在線性時(shí)間內(nèi)計(jì)算,其概念最初由SEIDMAN[9]在1983 年提出。為了高效地進(jìn)行k核的查詢,BATAGELJ等[19]于2003 年提出了k核分解算法,其能在O(m)時(shí)間復(fù)雜度下得到每個(gè)節(jié)點(diǎn)的最大核值,進(jìn)而能夠在線性時(shí)間內(nèi)得到k核查詢的結(jié)果。文獻(xiàn)[20]為應(yīng)對大圖的查詢,又提出了效率更高且能在個(gè)人計(jì)算機(jī)上運(yùn)行的3種k核分解算法,其查詢速度有了很大的提升。為提升k核查詢的效率,文獻(xiàn)[21]提出了面向k核查詢的圖壓縮算法SC,進(jìn)一步將壓縮圖轉(zhuǎn)化為樹的算法TC,其算法效率比可以比直接在原圖上查詢的效率高出1~2 個(gè)數(shù)量級。

為了優(yōu)化k核社團(tuán)查詢,文獻(xiàn)[22]提出一種能夠支持多個(gè)節(jié)點(diǎn)查詢的社團(tuán)搜索問題,解決了以往單節(jié)點(diǎn)查詢帶來的通用性的不足。文獻(xiàn)[23]考慮到現(xiàn)有的社團(tuán)查詢方法使用的都是全局搜索,算法代價(jià)較高,故提出一種局部搜索方法。上述兩種方法雖然在查詢條件上做了優(yōu)化,但卻都未結(jié)合圖上的其他屬性,僅面向簡單圖的查詢。

近年來,研究人員開始致力于尋找更加緊密的k核子圖,文獻(xiàn)[13]結(jié)合圖中節(jié)點(diǎn)的影響力,提出了k-influential 社團(tuán)模型,用于在大圖中查詢最具影響的社團(tuán)。文獻(xiàn)[14]考慮邊的有向性,研究了有向圖上的社團(tuán)搜索問題,其利用最小內(nèi)度和外度的度量方法尋找緊密連接的子圖。文獻(xiàn)[15]研究了輪廓圖的社團(tuán)搜索(PCS)問題,其能夠識別具有語義共性的節(jié)點(diǎn),從而發(fā)現(xiàn)更多高質(zhì)量的社團(tuán)。上述研究結(jié)合了圖上的其他屬性,在相應(yīng)的場景下能得到更加合理有效的社團(tuán),而對于邊權(quán)值屬性的社團(tuán)查詢方面,目前的研究還不充分。雖然文獻(xiàn)[24]提出了查詢加權(quán)圖的親密核心組問題,但由于其模型屬于社團(tuán)搜索,僅針對給定節(jié)點(diǎn)集的查詢,并且是查詢總權(quán)值最小的子圖,與部分應(yīng)用場景不符,具有一定的局限性。

本文考慮了節(jié)點(diǎn)的語義關(guān)系,不局限于社團(tuán)檢測中最值的查詢,提出了在加權(quán)圖中查詢聯(lián)系緊密的連通k核子圖問題,以實(shí)現(xiàn)更好的靈活性,且更貼合實(shí)際應(yīng)用場景。

2 定義與證明

2.1 緊密k 核子圖的定義

本文研究的是無向加權(quán)圖上的子圖查詢,該研究是在k核的基礎(chǔ)上進(jìn)行的,故先給出k核的定義。

定義1(k核)[9]給定圖G=(V,E),k核是圖G的極大子圖H,使得H中的每個(gè)節(jié)點(diǎn)至少有k個(gè)鄰節(jié)點(diǎn)。

定義2(核值)給定圖G=(V,E),對于G中的節(jié)點(diǎn)u,u∈V,u的核值core(u)為u所在全部k核中的最大值,即:

例如,在圖1 中,節(jié)點(diǎn)集{a,b,c,d,f}和{o,p,r,s}的導(dǎo)出子圖中節(jié)點(diǎn)核值都為3。但需要注意的是,節(jié)點(diǎn)的核值并不等于節(jié)點(diǎn)的度,如圖1 中的節(jié)點(diǎn)c,其節(jié)點(diǎn)的度為4,但核值卻為3。此外,k核并不一定是一個(gè)連通的圖,如圖1(b)表示的是圖1(a)中加權(quán)圖G的3 核子圖,該圖并不是連通的。

圖1 k 核查詢實(shí)例Fig.1 Example of k-core query

定義3(連通k核)給定圖G=(V,E),連通k核是圖G的極大連通子圖H,使得H中的每個(gè)節(jié)點(diǎn)至少有k個(gè)鄰節(jié)點(diǎn)。

連通k核是在k核的基礎(chǔ)上定義的,其表示的子圖一定是一個(gè)連通的圖。本文研究的是連通k核,若不加特別說明,下文中提到的k核均表示的是連通k核。

定義4(節(jié)點(diǎn)權(quán)值ω)給定一個(gè)加權(quán)圖G=(V,E,W),對于G中的節(jié)點(diǎn)u,u∈V,節(jié)點(diǎn)u的權(quán)值為與其相連邊的權(quán)值之和,即節(jié)點(diǎn)權(quán)值:

例如,在圖1 中,與節(jié)點(diǎn)a相連的邊有3 條,各邊權(quán)值分別為7、8、10,故其節(jié)點(diǎn)的權(quán)值ω(a)=7+8+10=25。

定義5(節(jié)點(diǎn)平均權(quán)值A(chǔ)w)給定一個(gè)加權(quán)圖G=(V,E,W),圖G節(jié)點(diǎn)平均權(quán)值為每個(gè)節(jié)點(diǎn)的權(quán)值之和除以圖G的節(jié)點(diǎn)數(shù),即圖G節(jié)點(diǎn)平均權(quán)值為:

節(jié)點(diǎn)平均權(quán)值反映的是整個(gè)子圖內(nèi)部的緊密程度,節(jié)點(diǎn)平均權(quán)值越大則說明子圖內(nèi)部節(jié)點(diǎn)之間的交互越多,子圖就越緊密。

下面給出緊密k核子圖(Closely Relatedk-Core Subgraph)的定義。

定義6(緊密k核子圖)給定一個(gè)加權(quán)圖G=(V,E,W),核值k,節(jié)點(diǎn)平均權(quán)值wQ,緊密k核子圖H=(V',E',W),H滿足以下條件:1)H?G;2)H是連通k核;3)圖H的節(jié)點(diǎn)平均權(quán)值A(chǔ)w(H)≥wQ。

緊密k核子圖的定義在k核的基礎(chǔ)上進(jìn)一步限制了子圖的節(jié)點(diǎn)平均權(quán)值,該限制將會(huì)消除圖中權(quán)值較小的節(jié)點(diǎn),使得圖整體的緊密性有所提高。

緊密連接k核子圖查詢?nèi)鐖D2 所示,其中圖2(b)為加權(quán)圖G(見圖1(a))在給定k=2、wQ=20 時(shí)得到的緊密2 核子圖H。圖H的每個(gè)節(jié)點(diǎn)都至少有2 個(gè)鄰節(jié)點(diǎn),且圖的節(jié)點(diǎn)平均權(quán)值為21.6,滿足給定條件。對比圖2(a)和圖2(b),可以看出后者節(jié)點(diǎn)之間的聯(lián)系更加緊密,整體也更加緊湊。

圖2 緊密連通k 核子圖的查詢實(shí)例Fig.2 Example of closely related connected k-core subgraph query

定義7(緊密k核子圖查詢)給定一個(gè)加權(quán)圖G=(V,E,W),核值k,節(jié)點(diǎn)平均權(quán)值wQ,在圖G中尋找緊密k核子圖H。

緊密k核子圖查詢(CRKSQ)問題的目的是在圖中找到滿足條件的緊密k核子圖。需要注意的是,緊密k核子圖在圖中不一定只有一個(gè),有可能存在多個(gè)。

2.2 QCRKS 問題的證明

引理1給定一個(gè)加權(quán)圖G=(V,E,W),圖G中節(jié)點(diǎn)權(quán)值之和等于圖G中各邊權(quán)值之和的兩倍,即:

證明由于圖G中的每條邊連接兩個(gè)節(jié)點(diǎn),而根據(jù)節(jié)點(diǎn)權(quán)值的定義可知圖中每條邊的權(quán)值會(huì)被相連的兩個(gè)節(jié)點(diǎn)各計(jì)算一次,故上述結(jié)論成立。

定理1CRKSQ 問題是NP-難的。

證明將clique 問題多項(xiàng)式歸約到CRKSQ 問題。由于clique 問題是一個(gè)NP-完全問題[25],進(jìn)而得出CRKSQ 問題是NP-難的。給定clique 問題的一個(gè)實(shí)例I,其由一個(gè)無權(quán)圖G=(V,E)和一個(gè)正整數(shù)k構(gòu)成。構(gòu)造CRKSQ 問題的一個(gè)實(shí)例I':一個(gè)加權(quán)圖G'=(V,E,W),這里每條邊權(quán)值都為1;另一個(gè)正數(shù)wQ=k-1。顯然,這是一個(gè)多項(xiàng)式歸約。下面只需證明實(shí)例I存在一個(gè)k階完全子圖,當(dāng)且僅當(dāng),實(shí)例I'存在一個(gè)節(jié)點(diǎn)平均權(quán)值大于等于wQ(wQ=k-1)的緊密(k-1)核子圖。

假設(shè)clique 問題存在一個(gè)k階完全子圖H?,F(xiàn)證明H作為G'的子圖,其是一個(gè)滿足條件的緊密(k-1)核子圖。由完全子圖的定義可知,H中的每個(gè)節(jié)點(diǎn)具有(k-1)個(gè)鄰接節(jié)點(diǎn),且平均權(quán)值為:

根據(jù)引理1,式(5)可化為:

因G'中每條的權(quán)值都為1,故:

得證。

反之,假設(shè)G'中存在一個(gè)滿足條件的緊密(k-1)核子圖H。由子圖H是一個(gè)(k-1)核知,H具有至少k個(gè)節(jié)點(diǎn);由節(jié)點(diǎn)平均權(quán)值大于等于wQ(wQ=k-1),并由引理1 可知,H具有k(k-1)條邊,因此作為G'的子圖H是一個(gè)k階完全子圖。得證。

3 基于貪婪策略的查詢算法

由定理1 可知,無法為CRKSQ 問題找到一個(gè)多項(xiàng)式時(shí)間復(fù)雜度的最優(yōu)算法,為解決該問題并在可接受的時(shí)間內(nèi)找到合適的解,本文基于貪婪策略提出了啟發(fā)式算法CRK-G。首先從圖中找到候選k核子圖,然后通過不斷地迭代刪除候選子圖中權(quán)值最小的節(jié)點(diǎn),進(jìn)而得到滿足條件的緊密k核子圖。

3.1 CRK-G 算法

CRK-G 算法步驟如下:

步驟1使用k核分解算法[20]計(jì)算每個(gè)節(jié)點(diǎn)的核值。

步驟2使用廣度優(yōu)先搜索,得到候選k核子圖集合。

步驟3判斷子圖節(jié)點(diǎn)平均權(quán)值是否小于wQ,若小于則迭代刪除圖中權(quán)值最小的節(jié)點(diǎn)。

步驟4為了保證剩余子圖的k核連通性,還需要?jiǎng)h除圖中節(jié)點(diǎn)度小于k的節(jié)點(diǎn),隨后判斷子圖是否連通,若不連通則將每個(gè)獨(dú)立的連通子圖分隔,并加入候選子圖集合等待后續(xù)的處理。

步驟5重復(fù)上述操作,直到剩余子圖的節(jié)點(diǎn)平均權(quán)值大于等于wQ,或節(jié)點(diǎn)被全部迭代刪除為止。算法最后返回滿足條件的緊密k核子圖集。

例如,在圖2 中,給定圖G(見圖1(a)),核值k=2,節(jié)點(diǎn)平均權(quán)值wQ=20。算法首先查詢得到候選2 核子圖H',隨后開始判斷子圖H'的節(jié)點(diǎn)平均權(quán)值是否大于等于wQ,經(jīng)計(jì)算可知節(jié)點(diǎn)平均權(quán)值小于20。因此,開始刪除最小權(quán)值的節(jié)點(diǎn)e。刪除節(jié)點(diǎn)e后,節(jié)點(diǎn)平均權(quán)值仍然小于20,則再依次刪除節(jié)點(diǎn)s、節(jié)點(diǎn)r。其中,刪除節(jié)點(diǎn)s和節(jié)點(diǎn)r導(dǎo)致節(jié)點(diǎn)p的度小于2,則再將節(jié)點(diǎn)p刪除,此時(shí)剩余子圖仍然是連通的。重復(fù)上述步驟再依次刪除節(jié)點(diǎn)o、節(jié)點(diǎn)h,最終得到圖2(b)中滿足條件的緊密2 核子圖H。

算法1緊密k核子圖查詢算法CRK-G

3.2 CRK-G 算法的復(fù)雜度分析

CRK-G 算法采用貪婪思想,通過迭代刪除節(jié)點(diǎn)而使得子圖滿足條件,其主要時(shí)間花費(fèi)包括k核候選子圖查詢、節(jié)點(diǎn)平均權(quán)值計(jì)算、子圖連通性判斷以及子圖k核的維護(hù)。首先,在k核候選子圖的查詢方面,使用的是廣度優(yōu)先搜索算法,其時(shí)間復(fù)雜度為O(|V|+|E|)。其次,在節(jié)點(diǎn)平均權(quán)值計(jì)算和子圖連通性判斷方面,計(jì)算節(jié)點(diǎn)平均權(quán)值需要耗時(shí)O(|E|),尋找最小權(quán)值的節(jié)點(diǎn)需要耗時(shí)O(|V|),若算法需要迭代t次,則計(jì)算節(jié)點(diǎn)平均權(quán)值耗時(shí)O(t(|V|+|E|))。連通性判斷使用的是廣度優(yōu)先搜索,耗時(shí)也為O(t(|V|+|E|))。最后,在子圖k核的維護(hù)方面,查詢節(jié)點(diǎn)的度耗時(shí)為O(|E|),若算法需要迭代t次,則這一步總耗時(shí)為O(t(|E|))。最終CRK-G 算法的時(shí)間復(fù)雜度為O(t(n+m)),其中n和m分別表示原圖的節(jié)點(diǎn)數(shù)和邊數(shù)。

下文分析CRK-G 算法的空間復(fù)雜度,對于原圖中的每個(gè)節(jié)點(diǎn),需要存儲(chǔ)其鄰節(jié)點(diǎn)以及其與鄰節(jié)點(diǎn)之間邊的權(quán)值,所以空間消耗為O(2|E|)。另外,還需要存儲(chǔ)候選子圖中節(jié)點(diǎn)的鄰節(jié)點(diǎn)以及節(jié)點(diǎn)與鄰節(jié)點(diǎn)之間邊的權(quán)值,空間消耗為O(2|E|)。總共空間消耗為O(4|E|),故CRK-G 算法的空間復(fù)雜度為O(m)。

4 CRK-G 算法的優(yōu)化

CRK-G 算法對于CRKSQ 問題的求解是有效的,它能在O(t(n+m))時(shí)間內(nèi)找到一個(gè)解,但對于在大規(guī)模圖上的查詢而言,該算法求解需要花費(fèi)大量的時(shí)間,效率較低。

根據(jù)對CRK-G 算法時(shí)間復(fù)雜度的分析,影響其效率的主要因素是圖的規(guī)模和迭代的次數(shù),因此可以通過使用降低圖規(guī)?;驕p少迭代次數(shù)的方法,使得算法的效率提高?;谠撍悸?,本節(jié)提出了CRK-G 算法的兩種改進(jìn)算法:1)使用圖壓縮策略的CRK-C 算法,其適用于節(jié)點(diǎn)權(quán)值差異性較小的圖數(shù)據(jù);2)使用單次多節(jié)點(diǎn)刪除策略的CRK-F 算法,該算法實(shí)現(xiàn)簡單,效率提高明顯,適用于差異性較大或無法確定差異性的圖數(shù)據(jù)。

4.1 基于圖壓縮的優(yōu)化策略

目前關(guān)于面向特定查詢的圖壓縮已經(jīng)有了廣泛的研究,常見的如面向保持可達(dá)查詢的圖壓縮[26]、面向鄰節(jié)點(diǎn)查詢的壓縮[27]以及面向k核查詢的圖壓縮[21]。與大部分面向特定查詢的壓縮技術(shù)類似,本文的壓縮方法遵循查詢等價(jià)原則,通過將權(quán)值相近的節(jié)點(diǎn)合并得到超節(jié)點(diǎn),判斷超節(jié)點(diǎn)所包含的節(jié)點(diǎn)在原圖中是否存在邊來構(gòu)建超邊以及超邊的權(quán)值。

定義8(超節(jié)點(diǎn)和超邊)給定圖G=(V,E),其經(jīng)過壓縮后得到GC=(V',E'),其中,由原圖節(jié)點(diǎn)集V分割得到,即?V(i=1,2,…,n),并且,則節(jié)點(diǎn)v'∈V'被稱為超節(jié)點(diǎn),邊e'∈E′被稱為超邊。

例如,圖3(b)的圖H'C表示的是一個(gè)壓縮圖,其每個(gè)節(jié)點(diǎn)表示的即為超節(jié)點(diǎn),如超節(jié)點(diǎn)s1包含了原圖H'中的節(jié)點(diǎn)a、節(jié)點(diǎn)c和節(jié)點(diǎn)d。壓縮圖中的邊即為超邊。

圖3 圖壓縮實(shí)例Fig.3 Example of graph compression

定義9(壓縮比cr)給定圖G=(V,E),其經(jīng)過壓縮得到GC=(V',E'),則壓縮比為:

壓縮比是衡量圖壓縮是否有效的重要指標(biāo),根據(jù)壓縮比的定義可知,壓縮比越小,則壓縮后的圖規(guī)模也越小。

4.1.1 CRK-C 算法

CRK-C 算法在CRK-G 算法的基礎(chǔ)上進(jìn)行,查詢到候選k核子圖集后,對每個(gè)候選子圖進(jìn)行壓縮,得到壓縮后的圖GC,在后續(xù)的迭代刪除過程中直接對GC進(jìn)行操作。壓縮算法步驟如下:

步驟1遍歷圖中的所有節(jié)點(diǎn),將權(quán)值相近的節(jié)點(diǎn)合并,從而得到超節(jié)點(diǎn)。

步驟2超節(jié)點(diǎn)包含的節(jié)點(diǎn)若在原圖中存在邊,則在超節(jié)點(diǎn)之間構(gòu)建超邊。

步驟3超邊的權(quán)值設(shè)為兩個(gè)超節(jié)點(diǎn)所包含的原節(jié)點(diǎn)在原圖中邊權(quán)值之和。

其中,步驟1 的節(jié)點(diǎn)合并是通過設(shè)置壓縮閾值θ(θ∈(0,1)),根據(jù)起始節(jié)點(diǎn)的權(quán)值ω,將節(jié)點(diǎn)權(quán)值在±θω之間的連通節(jié)點(diǎn)進(jìn)行合并。

例如,圖3(a)表示的是一個(gè)2核候選子圖,節(jié)點(diǎn)a、節(jié)點(diǎn)c和節(jié)點(diǎn)d的權(quán)值分別為ω(a)=25、ω(c)=26、ω(d)=27,節(jié)點(diǎn)之間的最大差值為2,當(dāng)壓縮閾值θ=0.01 時(shí),最大允許的權(quán)值差值為2.5(θω(a)=2.5),所以節(jié)點(diǎn)a、節(jié)點(diǎn)c和節(jié)點(diǎn)d可以被壓縮為一個(gè)超節(jié)點(diǎn)s1。由于圖H'中節(jié)點(diǎn)a、節(jié)點(diǎn)c與節(jié)點(diǎn)b存在邊,而節(jié)點(diǎn)b壓縮后由超節(jié)點(diǎn)s2表示,因此超節(jié)點(diǎn)s1和超節(jié)點(diǎn)s2之間存在邊,邊的權(quán)值為原圖中邊(a,b)和邊(c,b)的權(quán)值之和,即7+3=10。重復(fù)上述壓縮步驟,最終該候選子圖H'經(jīng)過壓縮得到了圖H'C,壓縮后圖的規(guī)模與原圖H'對比明顯有所降低,壓縮比cr=

7/18≈0.39。

壓縮算法GC-W 見算法2,算法最后返回壓縮后的圖GC和映射表M,M中記錄了原圖G中每個(gè)節(jié)點(diǎn)所對應(yīng)的超節(jié)點(diǎn)。借助M,可以在O(n)時(shí)間內(nèi)將壓縮后的圖解壓縮,n表示的是原圖的節(jié)點(diǎn)數(shù)。

需要注意的是,壓縮閾值θ越大,算法查詢速度越快,但對應(yīng)著查詢結(jié)果的誤差也會(huì)增大。根據(jù)算法特點(diǎn),壓縮閾值θ的取值誤差主要取決于候選子圖節(jié)點(diǎn)權(quán)值的波動(dòng)或偏移程度,故可以使用子圖中節(jié)點(diǎn)權(quán)值的差異系數(shù)(Coefficient of Variation,CV)作為θ的取值依據(jù),其反映了子圖節(jié)點(diǎn)權(quán)值的離散程度,計(jì)算公式為:

其中:σw為子圖權(quán)值的標(biāo)準(zhǔn)差;Aw為子圖平均節(jié)點(diǎn)權(quán)值。

算法2壓縮算法GC-W

4.1.2 CRK-C 算法的復(fù)雜度分析

CRK-C 算法在原有貪婪策略的基礎(chǔ)上新增了圖壓縮的步驟,其主要的時(shí)間花費(fèi)包括k核候選子圖查詢、圖壓縮、節(jié)點(diǎn)平均權(quán)值計(jì)算、子圖連通性判斷、子圖k核維護(hù)以及最后壓縮圖的解壓縮。

1)在k核候選子圖查詢方面,其時(shí)間復(fù)雜度與CRK-G 算法一致,都為O(|V|+|E|)。

2)在圖壓縮方面,其主要由超節(jié)點(diǎn)劃分和創(chuàng)建超邊兩部分組成。其中超節(jié)點(diǎn)劃分是通過廣度優(yōu)先搜索算法,不斷地?cái)U(kuò)展與節(jié)點(diǎn)u權(quán)值相近的節(jié)點(diǎn),直至無法擴(kuò)展為止,該步可以在O(|V|+|E|)時(shí)間內(nèi)完成;而超邊的創(chuàng)建是通過依次訪問原圖G中的每一條邊,從而確定壓縮圖的邊集,則其時(shí)間復(fù)雜度為O(|E|)。因此,整個(gè)圖壓縮算法GC-W 的耗時(shí)為O(|V|+2|E|)。

3)在節(jié)點(diǎn)平均權(quán)值計(jì)算和子圖連通性判斷方面,假設(shè)圖壓縮的壓縮比為cr,則壓縮后節(jié)點(diǎn)和邊的數(shù)量大致可以表示為(cr)|V|和(cr)|E|。此外,由于節(jié)點(diǎn)和邊的數(shù)量減少,算法迭代的次數(shù)也會(huì)相應(yīng)減少。若壓縮前需要的迭代次數(shù)為t,則壓縮后需要的迭代次數(shù)大致為(cr)t。因此,節(jié)點(diǎn)平均權(quán)值的計(jì)算需要耗時(shí)O(t(|V|+|E|)(cr)2)。子圖連通性判斷使用的是廣度優(yōu)先搜索,所以耗時(shí)也為O(t(|V|+|E|)(cr)2)。

4)在子圖k核的維護(hù)方面,由于壓縮圖沒有保留原節(jié)點(diǎn)的度信息,因此查詢節(jié)點(diǎn)度的耗時(shí)沒有變,仍然為O(|E|),算法需要迭代(cr)t次,則此步的總耗時(shí)為O(t(cr)|E|)。

5)在壓縮圖的解壓縮方面,由于壓縮算法GCW 會(huì)返回一個(gè)映射表M,M中記錄了原圖G中每個(gè)節(jié)點(diǎn)所對應(yīng)的超節(jié)點(diǎn)。借助M,可以在O(|V|)時(shí)間內(nèi)將壓縮后的圖解壓縮。

最終CRK-C 算法的時(shí)間復(fù)雜度為O(t(cr)m),其中,t表示迭代次數(shù),cr表示壓縮比,m表示原圖的邊數(shù)。

接下來分析CRK-C 算法的空間復(fù)雜度,由于該算法在CRK-G 算法的基礎(chǔ)上引入了圖壓縮過程,因此在計(jì)算過程中除了原有的空間消耗外,還需要額外存儲(chǔ)壓縮圖的信息,壓縮圖信息包括每個(gè)超節(jié)點(diǎn)的鄰節(jié)點(diǎn)和超邊的權(quán)值,假設(shè)圖壓縮的壓縮比為cr,則其空間消耗為O(2(cr)|E|)。原有的空間消耗為O(4|E|),故CRK-C 算法的空間復(fù)雜度為O(m)。

4.1.3 CRK-C 算法的誤差分析

CRK-C 算法雖然提高了效率,但是其相對于CRK-G 算法存在一定的誤差。CRK-C 算法可能導(dǎo)致的誤差是其多迭代刪除的節(jié)點(diǎn)數(shù)。假設(shè)經(jīng)過壓縮算法壓縮后的壓縮比為cr,在壓縮圖中平均一個(gè)節(jié)點(diǎn)對應(yīng)原圖1/cr個(gè)節(jié)點(diǎn)。在最壞的情況下,某次迭代刪除中正常迭代刪除一個(gè)節(jié)點(diǎn)即可達(dá)到緊密k核子圖的要求,而由于采用的是壓縮圖進(jìn)行迭代,則該次刪除的節(jié)點(diǎn)數(shù)為1/cr,誤差為(1/cr)-1 <1/cr,即CRK-C 算法的平均誤差小于1/cr,壓縮比cr越大則誤差越小。

需要說明的是,壓縮比cr取決于壓縮閾值θ的取值,θ和cr的具體關(guān)系則還要結(jié)合候選子圖中節(jié)點(diǎn)權(quán)值的情況。但若在同一個(gè)圖數(shù)據(jù)中,θ越大則會(huì)有更多的節(jié)點(diǎn)被合并,伴隨著壓縮比cr會(huì)越小。

4.2 基于單次多節(jié)點(diǎn)刪除的優(yōu)化策略

提高CRK-G 算法效率的改進(jìn)策略除降低圖規(guī)模外,另一種方法是減少算法的迭代次數(shù),而減少迭代次數(shù)的一個(gè)有效且直接的方法是批量刪除節(jié)點(diǎn)。通過在單次迭代中一次性刪除多個(gè)節(jié)點(diǎn)來減少迭代次數(shù),從而提高算法的效率。

4.2.1 CRK-F 算法

基于單次多節(jié)點(diǎn)刪除策略,對CRK-G 算法進(jìn)行改進(jìn),得到效率更高的快速貪婪算法CRK-F。CRKF 算法設(shè)置了每次迭代時(shí)的刪除比率γ,其中γ∈(0,1)。若候選子圖H的節(jié)點(diǎn)數(shù)為|V()H|,設(shè)迭代時(shí)刪除的節(jié)點(diǎn)集為S,則節(jié)點(diǎn)集S的數(shù)量|S|=γ|V(H)|。節(jié)點(diǎn)集S的取值是通過對每次迭代后剩余子圖的節(jié)點(diǎn)按節(jié)點(diǎn)權(quán)值進(jìn)行排序,權(quán)值最小的前γ|V(H)|個(gè)節(jié)點(diǎn)組成的集合即為節(jié)點(diǎn)集S。在下一次迭代刪除時(shí),S即作為需要從候選子圖中刪除的節(jié)點(diǎn)集。

需要說明的是,γ越大則每次迭代刪除的節(jié)點(diǎn)數(shù)就越多,總的迭代次數(shù)就越少,可能導(dǎo)致的誤差就越大。γ的參考取值可經(jīng)過計(jì)算得到,假設(shè)迭代刪除一個(gè)節(jié)點(diǎn)后,子圖的節(jié)點(diǎn)權(quán)值平均上升Δ-----Aw,則:

目標(biāo)節(jié)點(diǎn)平均權(quán)值wQ和當(dāng)前候選子圖的節(jié)點(diǎn)平均權(quán)值A(chǔ)w之間的差值ΔwQ=wQ-Aw,假設(shè)需要?jiǎng)h除K個(gè)節(jié)點(diǎn)后子圖節(jié)點(diǎn)平均權(quán)值為wQ,則:

而迭代刪除的節(jié)點(diǎn)數(shù)K=γ|V|,則:

在實(shí)際應(yīng)用時(shí),式(12)可作為γ的取值依據(jù)。一般來講,取值時(shí)考慮目標(biāo)節(jié)點(diǎn)平均權(quán)值wQ和當(dāng)前候選子圖的節(jié)點(diǎn)平均權(quán)值A(chǔ)w之間的差值。當(dāng)差值較大時(shí),γ取值可適當(dāng)增大,使其能更快地迭代到目標(biāo)值附近;反之,γ取值可適當(dāng)減小。

4.2.2 CRK-F 算法的復(fù)雜度分析

CRK-F 算法克服了CRK-G 算法效率低下的問題,通過利用單次多節(jié)點(diǎn)刪除的方法,極大地減少了算法的迭代次數(shù),接下來對該算法進(jìn)行時(shí)間復(fù)雜度與空間復(fù)雜度分析。

CRK-F 算法與CRK-G 算法相比,前者的迭代次數(shù)減少。首先分析改進(jìn)后算法的迭代次數(shù),初始時(shí)候選子圖H的節(jié)點(diǎn)數(shù)為|V(H)|≤|V(G)|,其中G為給定需要查詢的原圖。若每次迭代刪除的節(jié)點(diǎn)集為S,則經(jīng)過i次迭代后,|S|=γ|V(Hi)|,即此時(shí)節(jié)點(diǎn)集S將從剩余子圖Hi中刪除。這表明在經(jīng)過第i+1 次迭代后,剩余子圖Hi+1中至多有(1-γ)(|V(Hi)|)個(gè)節(jié)點(diǎn),即假設(shè)需要進(jìn)行t'次迭代后算法才結(jié)束,則:

CRK-F 算法與CRK-G 算法在空間上的消耗沒有區(qū)別,所以CRK-F 算法的空間復(fù)雜度也是O(m)。

4.2.3 CRK-F 算法的誤差分析

根據(jù)CRK-F 算法特點(diǎn)可知,其相對于CRK-G 算法的誤差是由于批量刪除時(shí)多刪除的節(jié)點(diǎn)導(dǎo)致。

假設(shè)給定刪除比率γ,當(dāng)算法迭代到第t次時(shí)結(jié)束,那么在t-1 次時(shí)候選子圖剩余的節(jié)點(diǎn)數(shù)為(1-γ)t-1(|V|)。隨后進(jìn)行第t次迭代,在最壞情況下,本次迭代原本只需要?jiǎng)h除一個(gè)節(jié)點(diǎn)即可達(dá)到緊密k核子圖的要求,而由于采用批量刪除,實(shí)際刪除的節(jié)點(diǎn)數(shù)為(1-γ)t-1(|V|)γ,誤差為(1-γ)t-1(|V|)γ-1 <(1-γt-1(|V|)γ,即CRK-F 算法誤差不超過(1-γ)t-1(|V|)γ。

4.3 CRK-C 與CRK-F 算法對比分析

通過對CRK-C 與CRK-F 算法的原理分析,對兩者的特點(diǎn)總結(jié)如下:

1)CRK-C 算法使用了圖壓縮策略,通過將節(jié)點(diǎn)權(quán)值在閾值范圍內(nèi)的連通節(jié)點(diǎn)進(jìn)行合并,從而降低子圖的規(guī)模,也相應(yīng)減少了迭代次數(shù),算法效率相對CRK-G 算法而言有了較大的提升。根據(jù)算法的特點(diǎn),若圖中節(jié)點(diǎn)權(quán)值較為相近時(shí),節(jié)點(diǎn)壓縮策略將會(huì)起較大的作用。在節(jié)點(diǎn)壓縮時(shí),更多節(jié)點(diǎn)權(quán)值相近的節(jié)點(diǎn)將會(huì)被合并,并且由于被合并的節(jié)點(diǎn)權(quán)值相近,其在迭代刪除過程中所造成的誤差也較小,因此CRK-C 算法更適用于圖中節(jié)點(diǎn)權(quán)值差異性較小的數(shù)據(jù)。

2)CRK-F 算法利用單次多節(jié)點(diǎn)刪除策略,每次迭代刪除多個(gè)節(jié)點(diǎn),顯著減少了迭代次數(shù)。由于CRK-F 算法僅需要在迭代刪除時(shí)設(shè)置刪除比率γ,從而進(jìn)行節(jié)點(diǎn)的批量刪除,其實(shí)現(xiàn)相較于CRK-C 算法而言更加簡單,效率提升也較為明顯。并且根據(jù)算法的特點(diǎn),其誤差能夠較好地被預(yù)測,有利于控制算法的誤差。當(dāng)圖中節(jié)點(diǎn)權(quán)值差異性較大或無法確定差異性時(shí),可優(yōu)先考慮使用CRK-F 算法。

5 實(shí)驗(yàn)結(jié)果與分析

本文在3 個(gè)真實(shí)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),對比了算法在不同查詢條件下和不同規(guī)模圖上查詢的耗時(shí),并分析壓縮算法GC-W 和緊密k核子圖模型的有效性,最后結(jié)合實(shí)例進(jìn)一步說明模型的優(yōu)越性。

5.1 數(shù)據(jù)集

本文實(shí)驗(yàn)使用的數(shù)據(jù)集主要有以下3 個(gè):

1)生物通用交互數(shù)據(jù)集Bio-GRID,其中節(jié)點(diǎn)表示基因或蛋白質(zhì),邊表示基因或蛋白質(zhì)之間存在交互,邊的權(quán)值表示節(jié)點(diǎn)之間交互的得分,得分越高說明節(jié)點(diǎn)之間的聯(lián)系越緊密。

2)美國安然公司的郵件網(wǎng)絡(luò)Email-Enron,其中頂點(diǎn)表示郵箱,邊表示一個(gè)郵箱向另一郵箱發(fā)送過郵件,邊的權(quán)值表示郵箱之間郵件的互通次數(shù),次數(shù)越高說明郵箱之間的聯(lián)系越緊密。

3)由DBLP 數(shù)據(jù)構(gòu)成的作者協(xié)作網(wǎng)絡(luò),其中節(jié)點(diǎn)表示作者,邊表示兩個(gè)作者共同合作發(fā)表過文章,邊的權(quán)值表示作者合作過的次數(shù),次數(shù)越高說明作者之間的聯(lián)系越緊密。

上述數(shù)據(jù)集經(jīng)預(yù)處理轉(zhuǎn)化為圖數(shù)據(jù),各個(gè)圖的基本特性如表1 所示。其中:節(jié)點(diǎn)數(shù)和邊數(shù)反映了圖的規(guī)模;最大核值為k核分解后圖中節(jié)點(diǎn)最大的核值,反映了圖中最稠密社團(tuán)的稠密度;平均核值反映了圖整體的稠密程度;節(jié)點(diǎn)平均權(quán)值反映了圖節(jié)點(diǎn)之間整體聯(lián)系的緊密程度。

表1 數(shù)據(jù)集的基本特性Table 1 Basic characteristics of dataset

5.2 實(shí)驗(yàn)分析

本文在上述3 個(gè)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),對比了算法CRK-G、CRK-C、CRK-F 在不同條件下的查詢效率和圖壓縮算法GC-W 的壓縮效率,并驗(yàn)證了模型的有效性。實(shí)驗(yàn)使用C++實(shí)現(xiàn),在2.90 GHz Intel?CoreTMi5-9400 CPU、8.0 GB 內(nèi)存、Windows10 系統(tǒng)的臺式機(jī)上運(yùn)行。

5.2.1 算法效率分析

在查詢緊密k核子圖時(shí),需要給定核值k和節(jié)點(diǎn)平均權(quán)值wQ。為驗(yàn)證算法的效率,本文設(shè)計(jì)了控制變量的對比實(shí)驗(yàn),記錄3 個(gè)算法隨著給定值變化時(shí)其查詢所消耗的時(shí)間。在下文實(shí)驗(yàn)中,CRK-C 算法的壓縮閾值θ=0.01,CRK-F 算法的刪除比率γ=0.1。

由于查詢參數(shù)的取值不是本文的研究重點(diǎn),實(shí)驗(yàn)中的參數(shù)值是通過前期的初步實(shí)驗(yàn)并結(jié)合數(shù)據(jù)集的特性得到。其中,參數(shù)wQ的給定是通過初步的實(shí)驗(yàn),大致計(jì)算得到各個(gè)數(shù)據(jù)集子圖的最大節(jié)點(diǎn)平均權(quán)值,將該值取整十或整百,然后等差遞減得到wQ的取值范圍。在實(shí)際應(yīng)用中可以根據(jù)對子圖緊密程度的需求來選擇核值k和節(jié)點(diǎn)平均權(quán)值wQ,以及對誤差允許的范圍來選擇合適的壓縮閾值θ和刪除比率γ。

本文分別控制k和wQ的變化,在3 個(gè)數(shù)據(jù)集上進(jìn)行以下兩組實(shí)驗(yàn):

1)隨著給定節(jié)點(diǎn)平均權(quán)值wQ的變化,實(shí)驗(yàn)并記錄在3 個(gè)數(shù)據(jù)集上算法CRK-G、CRK-C、CRK-F 查詢所需要的時(shí)間。對于數(shù)據(jù)集Bio-GRID,給定k=20,變量wQ的取值范圍為{20,30,40,50,60};對于數(shù)據(jù)集Email-Enron,給定k=30,變量wQ的取值范圍為{9 000,10 000,11 000,12 000,13 000};對于數(shù)據(jù)集DBLP,給定k=40,變量wQ的取值范圍為{200,225,250,275,300}。

3 種算法隨wQ變化的運(yùn)行效率對比結(jié)果如圖4所示,隨著節(jié)點(diǎn)平均權(quán)值wQ增大,各算法在不同數(shù)據(jù)集上的查詢耗時(shí)總體均增加。之所以如此,是因?yàn)楫?dāng)給定節(jié)點(diǎn)平均權(quán)值wQ增大時(shí),算法所需要的迭代次數(shù)增多,故耗時(shí)增加。在3 種算法的效率對比中,CRK-G 算法的查詢耗時(shí)明顯高于另兩種算法。在Bio-GRID 數(shù)據(jù)集上,CRK-C 算法的速度略快于CRK-F 算法,通過對數(shù)據(jù)集特性的分析,發(fā)現(xiàn)Bio-GRID 數(shù)據(jù)集中存在較多權(quán)值相近的節(jié)點(diǎn),使得該數(shù)據(jù)集的候選子圖經(jīng)過壓縮后的壓縮比較低,故CRKC 算法的查詢速度較快。反之,在DBLP 數(shù)據(jù)集上,CRK-F 算法速度快于CRK-C 算法是由于該數(shù)據(jù)集上權(quán)值相近的節(jié)點(diǎn)較少。

圖4 3 種算法隨wQ 變化的運(yùn)行效率對比Fig.4 Comparison of the operating efficiency of the three algorithms with the change of wQ

2)隨著給定核值k的變化,實(shí)驗(yàn)并記錄在3 個(gè)數(shù)據(jù)集上算法CRK-G、CRK-C、CRK-F 查詢所需要的時(shí)間。對于數(shù)據(jù)集Bio-GRID,給定wQ=40,變量k的取值范圍為{10,15,20,25,30};對于數(shù)據(jù)集Email-Enron,給定wQ=11 000,變量k的取值范圍為{10,20,30,40,50};對于數(shù)據(jù)集DBLP,給定wQ=250,變量k的取值范圍為{20,30,40,50,60}。

3 種算法隨k變化的運(yùn)行效率對比結(jié)果如圖5 所示,隨著核值k增大,各算法在不同數(shù)據(jù)集上的查詢耗時(shí)總體均減少。之所以如此,是因?yàn)楫?dāng)給定核值k增大時(shí),得到的候選k核子圖規(guī)模減小,算法迭代次數(shù)減少,故耗時(shí)減少。另外,在3 種算法的效率對比中,當(dāng)k值較小時(shí),CRK-G 算法的查詢耗時(shí)明顯高于另兩種算法。

圖5 3 種算法隨k 變化的運(yùn)行效率對比Fig.5 Comparison of the operating efficiency of the three algorithms with the change of k

上述實(shí)驗(yàn)結(jié)果與本文對各個(gè)算法的時(shí)間復(fù)雜度分析結(jié)果相符合,CRK-G 算法的查詢耗時(shí)總體均高于CRK-C 和CRK-F 算法。而CRK-C 算法和CRK-F算法兩者耗時(shí)大致相近,具體耗時(shí)高低主要取決于數(shù)據(jù)集的特點(diǎn),當(dāng)數(shù)據(jù)集中存在較多權(quán)值相近的節(jié)點(diǎn)時(shí),圖壓縮算法壓縮后得到的圖規(guī)模較小,使得CRK-C 算法的查詢耗時(shí)低于CRK-F 算法。

5.2.2 算法誤差分析

由于CRKSQ 問題是NP-難的,無法在多項(xiàng)式時(shí)間復(fù)雜度內(nèi)找到最優(yōu)解,CRK-G 算法雖然能夠找到一個(gè)可行解,但其與最優(yōu)解之間的偏離程度無法被預(yù)計(jì)。CRK-C 和CRK-F 算法是在CRK-G 算法基礎(chǔ)上的改進(jìn),效率有了很大的提升,但兩者相對于CRK-G 算法存在一定的誤差。接下來以CRK-G 算法為參考,在不同k值條件下,對CRK-C 和CRK-F 算法查詢結(jié)果的誤差進(jìn)行分析。

根據(jù)算法的原理,評判誤差的依據(jù)是CRK-C 和CRK-F算法相對于CRK-G算法是否過多刪除了節(jié)點(diǎn)。實(shí)驗(yàn)在3 個(gè)數(shù)據(jù)集上進(jìn)行:對于數(shù)據(jù)集Bio-GRID,給定wQ=40,變量k的取值范圍為{10,15,20,25,30};對于數(shù)據(jù)集Email-Enron,給定wQ=11 000,變量k的取值范圍為{10,20,30,40,50};對于數(shù)據(jù)集DBLP,給定wQ=250,變量k的取值范圍為{20,30,40,50,60}。

實(shí)驗(yàn)記錄了各個(gè)算法在上述條件下查詢得到的子圖節(jié)點(diǎn)數(shù),計(jì)算了CRK-C 和CRK-F 算法相對于CRK-G 算法的誤差百分比,結(jié)果分別如表2~表4 所示,多次實(shí)驗(yàn)的平均誤差均在8%以內(nèi),誤差較小。

表2 Bio-GRID 數(shù)據(jù)集的查詢結(jié)果與誤差Table 2 Query results and errors of Bio-GRID dataset

表3 Email-Enron 數(shù)據(jù)集的查詢結(jié)果與誤差Table 3 Query results and errors of Email-Enron dataset

表4 DBLP 數(shù)據(jù)集的查詢結(jié)果與誤差Table 4 Query results and errors of DBLP dataset

5.2.3 圖壓縮算法有效性分析

為驗(yàn)證圖壓縮算法GC-W 的有效性,實(shí)驗(yàn)記錄了不同k值條件下,GC-W 算法在3 個(gè)數(shù)據(jù)集上壓縮候選子圖的耗時(shí)。

對于數(shù)據(jù)集Bio-GRID,變量k的取值范圍為{10,15,20,25,30};對于數(shù)據(jù)集Email-Enron,變量k的取值范圍為{10,20,30,40,50};對于數(shù)據(jù)集DBLP,變量k的取值范圍為{20,30,40,50,60}。實(shí)驗(yàn)結(jié)果如圖6所示,當(dāng)k值增大時(shí),壓縮時(shí)間減少。由于當(dāng)k值增大時(shí)候選k核子圖的規(guī)模減小,因此壓縮算法GC-W 的耗時(shí)減少。

圖6 GC-W 算法隨k 變化的壓縮耗時(shí)Fig.6 Compression time of GC-W algorithm with the change of k

壓縮耗時(shí)相較于查詢耗時(shí)低了1 或2 個(gè)數(shù)量級,其可以在相對短的時(shí)間內(nèi)對候選子圖進(jìn)行壓縮,有效地減少了查詢時(shí)間,壓縮算法是有效的。

5.2.4 模型有效性分析

為驗(yàn)證緊密k核子圖(CRKS)模型的有效性,本文實(shí)驗(yàn)對比了CRK-F 算法與忽略權(quán)值的k核(k-core)算法,記錄兩者在不同k值條件下查詢得到的子圖節(jié)點(diǎn)平均權(quán)值。

實(shí)驗(yàn)分別在3 個(gè)數(shù)據(jù)集上進(jìn)行,考慮到CRK-F算法和k-core 算法每次查詢得到的子圖都有可能存在多個(gè),并且前者會(huì)由于給定的wQ不同而得到不同的結(jié)果。因此,本文將CRK-F 算法在不同wQ條件下查詢得到的子圖最大節(jié)點(diǎn)平均權(quán)值與k-core 算法查詢得到的所有子圖最大節(jié)點(diǎn)平均權(quán)值進(jìn)行對比。

對于數(shù)據(jù)集Bio-GRID,變量k的取值范圍為{10,15,20,25,30};對于數(shù)據(jù)集Email-Enron,變量k的取值范圍為{10,20,30,40,50};對于數(shù)據(jù)集DBLP,變量k的取值范圍為{20,30,40,50,60}。實(shí)驗(yàn)結(jié)果 如圖7 所示。從實(shí)驗(yàn)結(jié)果可以看出,CRK-F 算法得到的子圖節(jié)點(diǎn)平均權(quán)值均大于k-core 算法,驗(yàn)證了CRKS 模型的有效性和優(yōu)越性。

圖7 CRK-F與k-core 算法的子圖節(jié)點(diǎn)平均權(quán)值對比Fig.7 Comparison of average weights of subgraph nodes obtained between CRK-F and k-core algorithms

5.2.5 實(shí)例分析

為進(jìn)一步說明CRKS 模型的合理性,本文選取一個(gè)實(shí)例進(jìn)行分析。圖8(a)所示是作者協(xié)作網(wǎng)絡(luò)中選取的部分?jǐn)?shù)據(jù),其包含了30 個(gè)節(jié)點(diǎn)和46 條邊,圖的節(jié)點(diǎn)平均權(quán)值為40.67,存在一些聯(lián)系較為松散的節(jié)點(diǎn)。若忽略權(quán)值,僅給定k=3,進(jìn)行3 核查詢,查詢結(jié)果如圖8(b)所示。從圖中可以看出,雖然所有節(jié)點(diǎn)的度均大于等于3,對應(yīng)著至少3 個(gè)鄰接節(jié)點(diǎn),但結(jié)合邊的權(quán)值就可發(fā)現(xiàn)節(jié)點(diǎn)“Bin Zhou”所對應(yīng)的權(quán)值較小,該節(jié)點(diǎn)將左右兩部分的圖連接成一體,使得圖整體結(jié)構(gòu)并不緊湊,左右兩部分節(jié)點(diǎn)之間聯(lián)系的緊密程度不足。若考慮權(quán)值,給定wQ=50,對圖8(a)所示的圖進(jìn)行緊密3 核子圖查詢,得到圖8(c)所示的結(jié)果。該結(jié)果包含兩個(gè)子圖,每個(gè)圖相較于圖8(b),內(nèi)聚性更強(qiáng),節(jié)點(diǎn)之間的聯(lián)系也更加緊湊。兩個(gè)子圖的節(jié)點(diǎn)平均權(quán)值分別為50.8 和53.2,相較于圖8(b)的47.08,兩個(gè)子圖整體的聯(lián)系也更加緊密。

圖8 緊密k 核子圖的查詢實(shí)例分析結(jié)果Fig.8 Query example analysis results of closely related k-core subgraph

綜合上述分析,CRKS 模型可以檢測出加權(quán)圖中緊密聯(lián)系的子圖,相較于現(xiàn)有的方法更加合理有效。

6 結(jié)束語

本文提出一種在加權(quán)圖中查詢聯(lián)系緊密的連通k核子圖問題,并證明了該問題是NP-難的。為解決CRKSQ 問題,設(shè)計(jì)基于貪婪策略的啟發(fā)式算法CRK-G,其能在可接受的時(shí)間內(nèi)為CRKSQ 問題找到一個(gè)近似解,分別從降低圖規(guī)模和減少迭代次數(shù)兩個(gè)方面出發(fā),提出兩個(gè)改進(jìn)算法CRK-C 和CRK-F,其在查詢速度上有明顯提升。在不同規(guī)模數(shù)據(jù)集上進(jìn)行多次實(shí)驗(yàn),結(jié)果表明,CRK-C 和CRK-F 算法的平均誤差都在8%以內(nèi)。下一步將研究本文算法參數(shù)的取值和優(yōu)化問題,并探索其他更加高效的緊密k核子圖查詢算法,以滿足超大圖的查詢要求。

猜你喜歡
核子子圖權(quán)值
一種融合時(shí)間權(quán)值和用戶行為序列的電影推薦模型
基于5G MR實(shí)現(xiàn)Massive MIMO權(quán)值智能尋優(yōu)的技術(shù)方案研究
關(guān)于星匹配數(shù)的圖能量下界
一種基于互連測試的綜合優(yōu)化算法?
不含3K1和K1+C4為導(dǎo)出子圖的圖色數(shù)上界?
面向高層次綜合的自定義指令自動(dòng)識別方法
計(jì)算機(jī)測量與控制(2018年3期)2018-03-27
圖G(p,q)的生成子圖的構(gòu)造與計(jì)數(shù)
静宁县| 平利县| 家居| 封开县| 崇信县| 宁强县| 玉环县| 万盛区| 盈江县| 新晃| 临汾市| 湛江市| 夏津县| 丹寨县| 江北区| 屏山县| 和林格尔县| 上林县| 新乡县| 公主岭市| 旬邑县| 自治县| 含山县| 乌什县| 松阳县| 同仁县| 宜黄县| 城市| 西充县| 文登市| 长春市| 甘孜| 田林县| 吉木萨尔县| 贺兰县| 恩平市| 佛教| 格尔木市| 逊克县| 临武县| 福州市|