一種基于k-核的社區(qū)搜索算法
【專利摘要】本發(fā)明公開一種基于k-核的社區(qū)搜索算法,包含對圖生成最大生成樹MST;對最大生成樹MST進(jìn)行預(yù)處理;在最大生成樹MST上找出連接所有查詢節(jié)點的子樹;搜索得到包含查詢節(jié)點的子樹,返回最大K-核;該算法能在時間復(fù)雜度O(T)內(nèi)查詢出包含給定節(jié)點的k-核,且k值最大,T為所要查找的社區(qū)大小。
【專利說明】-種基于k-核的社區(qū)搜索算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種最大支撐樹的圖索引技術(shù),特別是一種基于k-核的社區(qū)搜索算 法。
【背景技術(shù)】
[0002] 近年來,對圖和社交網(wǎng)絡(luò)中的社區(qū)挖掘問題引起了廣泛關(guān)注,這同時也是圖挖掘 中較為基礎(chǔ)的問題之一。大多數(shù)研究工作僅致力于找出對于原圖中的社區(qū)結(jié)構(gòu)。然而,在 很多應(yīng)用情景中關(guān)心的是找出由給定節(jié)點集構(gòu)成的社區(qū)。
[0003] 基于給定節(jié)點的社區(qū)搜索問題的定義為:給定一個無向連通圖G和一個圖中的點 集Q,找出G的一個k核,使之包含給定節(jié)點集合Q中的所有節(jié)點且其k值最大。
[0004] 對于該問題,一種簡單的貪心算法能在多項式時間內(nèi)找到符合條件的社區(qū)(詳見 參考文獻(xiàn)[1]);全局搜索算法(global search)能在0(V+E)時間內(nèi)解決這個問題(詳見 參考文獻(xiàn)[1]);局部搜索算法(local search)無須遍歷所有頂點與邊,能在0(v+e)時間 內(nèi)找到符合條件社區(qū)(詳見參考文獻(xiàn)[2])。這里E,V分別代表圖G的邊數(shù)和節(jié)點數(shù),e,V 分別代表局部搜索算法中經(jīng)篩剪后候選節(jié)點集中的邊數(shù)與節(jié)點數(shù)。
[0005] 在所述算法中,貪心算法的思想主要是,逐步地刪除輸入圖G中度最小的節(jié)點和 與該節(jié)點相連的邊,直至包含查詢節(jié)點的子圖H中、Q中任一節(jié)點具有最小度或子圖H不再 連通為止。這一過程決定了該算法必須遍歷圖G的所有節(jié)點,并且在每一步中都需判斷是 否Q中節(jié)點具有最小度或者包含查詢節(jié)點的子圖H是否連通,因此算法的時間復(fù)雜度非常 商。
[0006] 全局搜索算法的思想是遞歸地刪除圖G中度小于k的節(jié)點和與該節(jié)點相連的邊, 從而求出圖G的k-核和最大k-核(maximum core)。該算法也需遍歷圖G中的所有節(jié)點與 邊,時間復(fù)雜度為〇(M+V)。
[0007] 局部搜索算法的思想是,從選定節(jié)點V出發(fā),在與V相鄰的節(jié)點中迭代選取候選節(jié) 點集C,再在C中查詢問題的解。局部搜索算法縮小了問題的規(guī)模,使搜索空間縮小為與查 詢節(jié)點相近的社區(qū),算法的平均時間復(fù)雜度為〇(v+e),最差時間復(fù)雜度與全局搜索時間復(fù) 雜度相同,即為〇(V+E)。
[0008] 全局搜索和局部搜索雖然具有良好的時間復(fù)雜度,但是這兩種算法對于給定的查 詢節(jié)點,每次查詢都需執(zhí)行一次完整算法,時間復(fù)雜度仍然較高。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明提供一種時間復(fù)雜度優(yōu)于【背景技術(shù)】所有介紹的基于k_核的社區(qū)搜索算 法,該算法能在時間復(fù)雜度O(T)內(nèi)查詢出包含給定節(jié)點的k_核,且k值最大,T為所要查 找的社區(qū)大小。
[0010] 本發(fā)明通過以下技術(shù)手段實現(xiàn):
[0011] 一種基于k-核的社區(qū)搜索算法,包含以下步驟,
[0012] S1、對圖生成最大生成樹MST ;
[0013] S2、對最大生成樹MST進(jìn)行預(yù)處理;
[0014] S3、在最大生成樹MST上找出連接所有查詢節(jié)點的子樹;
[0015] S4、搜索得到包含查詢節(jié)點的子樹;
[0016] S5、返回最大K-核。
[0017] 其中,所述的Sl中對圖生成最大生成樹MST的過程為:
[0018] S101、計算輸入圖中所有節(jié)點的核值;
[0019] S102、對于圖中的每條邊,以邊的兩個端點的核值中的較小值作為該邊的權(quán)值;
[0020] S103、對賦值后的圖生成最大生成樹MST。
[0021] 其中,所述S4中搜索包含查詢節(jié)點的子樹采用的是最近公共祖先(LCA)算法。
[0022] 其中,所述的S2中的預(yù)處理采用的是Tarjan的經(jīng)典LCA算法中時間復(fù)雜度為 O(N)的預(yù)處理操作。
[0023] 通過以上基于k-核的社區(qū)搜索算法,能夠解決包含給定查詢節(jié)點的社區(qū)搜索問 題,并且時間復(fù)雜度為O(T),此處的T為結(jié)果社區(qū)的大小,該時間復(fù)雜度等于輸出滿足條 件結(jié)果集的小大,優(yōu)于【背景技術(shù)】以及當(dāng)前該領(lǐng)域所有技術(shù),用時更短,效率更高。對于任何 社區(qū)搜索算法都必須輸出結(jié)果,因此這些算法的復(fù)雜度不能低于O(T),即復(fù)雜度的下界為 O(T)。本發(fā)明的算法能夠達(dá)到這一下界,因此本發(fā)明所涉及的算法是一個最優(yōu)算法。
【專利附圖】
【附圖說明】
[0024] 圖1為問題定義圖;
[0025] 圖2為本發(fā)明算法過程示意圖;
[0026] 圖3為圖的k_核分解示意圖;
[0027] 圖4為對所有邊賦權(quán)值后的圖;
[0028] 圖5為最大生成樹MST示意圖;
[0029] 圖6為連接兩個選定節(jié)點的子樹示意圖;
[0030] 圖7為包含兩個黑色節(jié)點的社區(qū);
[0031] 圖8為連通兩點的所有路徑上的最小核值的不意圖;
[0032] 圖9為證明結(jié)果一的示意圖;
[0033] 圖10為證明結(jié)果二的示意圖;
[0034] 圖11為證明結(jié)果三的示意圖。
【具體實施方式】
[0035] 以下將結(jié)合附圖對本發(fā)明的【具體實施方式】進(jìn)行詳細(xì)說明。
[0036] 在進(jìn)行本發(fā)明實施說明之前,先對本發(fā)明要解決的問題進(jìn)行定義,如圖1所示,給 定一個無向的連通圖G = (V,E),以及查詢點集Q,要求找出G的一個k-核,使之包含所有 點集Q中的節(jié)點,而且還要滿足k值最大。即在圖1所示的圖G中找出連接兩個黑色節(jié)點 的k-核且其k值最大。
[0037] 為解決以上問題,提供一種基于k_核的社區(qū)搜索算法,如圖1所示,首先,計算輸 入圖G中所有節(jié)點的核值;然后,以端點的核值中的較小值賦值作為每條邊的權(quán)重;接著, 對賦權(quán)后的圖生成最大生成樹MST ;MST樹預(yù)處理;在最大生成樹MST上找出連接所有查詢 節(jié)點的子樹;找出子樹中邊權(quán)值的最小值K ;返回K-核,也就是最大K值。
[0038] 通過最大生成樹MST的索引算法,對原始圖中的每條邊賦一個權(quán)值,該權(quán)值等于 這條邊的兩個端點的核值中的最小值。然后,再對賦權(quán)后的圖生成最大生成樹MST,接著在 最大生成樹MST上找出連接所有查詢節(jié)點的子樹。在子樹中,邊權(quán)值的最小值即為所求最 大k-核的k值。由于在執(zhí)行查找前就已經(jīng)建好MST樹,因此社區(qū)搜索問題就轉(zhuǎn)換成類似于 在建立了索引的數(shù)據(jù)庫中查找數(shù)據(jù)的問題,查詢效率將得到極大的提高。并且,只需建立一 次"索引",后續(xù)搜索都可以在索引里查找,不用再去遍歷原始的輸入圖,算法時間復(fù)雜度將 得到提1?。
[0039] 具體來說,計算輸入圖G中所有節(jié)點的核值,又稱圖的k_核分解,如圖3所示,即 在給定的圖中,遞歸地刪除圖中度小于k的節(jié)點和與之相連的邊,剩下的圖是一個k_核。該 算法的大體框架如下:
[0040] 輸入:圖 G = (V,E)
[0041] 輸出:所有節(jié)點的核值
[0042] I. 1計算所有節(jié)點的度;
[0043] 1. 2把V中的所有節(jié)點按照度從小到大排序;
【權(quán)利要求】
1. 一種基于k-核的社區(qū)搜索算法,包含W下步驟, 51、 對圖生成最大生成樹MST ; 52、 對最大生成樹MST進(jìn)行預(yù)處理; 53、 在最大生成樹MST上找出連接所有查詢節(jié)點的子樹; 54、 搜索得到包含給定節(jié)點的子樹; 55、 返回最大K-核。
2. 根據(jù)權(quán)利要求1所述的基于K-核的社區(qū)搜索算法,其特征在于;所述的S1中對圖 生成最大生成樹MST的過程為: 5101、 計算輸入圖中所有節(jié)點的核值; 5102、 對于輸入圖中的每條邊,W邊的兩個端點的核值中的較小值作為該邊的權(quán)值; 5103、 對賦值后的圖生成最大生成樹MST。
3. 根據(jù)權(quán)利要求1所述的基于K-核的社區(qū)搜索算法,其特征在于:所述S4中搜索包 含給定節(jié)點的子樹采用的是最近公共祖先算法。
4. 根據(jù)權(quán)利要求1所述的基于K-核的社區(qū)搜索算法,其特征在于;所述的S2中的預(yù) 處理采用的是Tarjan的經(jīng)典LCA算法中時間復(fù)雜度為0(腳的預(yù)處理操作。
【文檔編號】G06F17/30GK104462260SQ201410675746
【公開日】2015年3月25日 申請日期:2014年11月21日 優(yōu)先權(quán)日:2014年11月21日
【發(fā)明者】李榮華, 廖凱華, 毛睿, 蔡濤濤, 韋元, 秦璐 申請人:深圳大學(xué)