通過前兩篇部落格,我們知道gn演算法的時間複雜度並不理想,當網路中包含上千個頂點時,這個演算法會耗費大量時間。鑑於此,newman(2004)[1]描述了乙個快速演算法。經測試,該演算法能很好的分析生成的網路和真實世界的網路,並比原先演算法快了近千倍!
快速演算法的時間複雜度為o((m+n)n),當時稀疏網路時是o(n2),其中m是頂點數,n是邊數。此演算法是凝聚法的一種,並且是基於模組度q。既然q值越大,則劃分的社群結構越好,那麼可不可以將乙個網路所有的劃分情況都羅列出來,然後計算q值,找出q值最大的那種劃分情況,這個劃分無疑是最好的。但羅列出所有的劃分情況是非常耗時!即如果有n個頂點,劃分為g個社團(0<=g<=n),則根據第二類斯特林數,共有sn
(g)1g!
∑k=0
g(−1
)k(g
k)(g
−k)n
\frac \sum _ ^ ( - 1 ) ^ \left( \begin g \\ k \end \right) ( g - k ) ^
g!1∑k
=0g
(−1)
k(gk
)(g
−k)n
,所以總情況數為∑g=
1nsn
(g
)\sum _ ^ s _ ^
∑g=1n
sn(g
)而s n(
1)+s
n(2)
=2n−
1s _ ^ + s _ ^ = 2 ^
sn(1)
+sn(
2)=
2n−1
,可知總情況數目是指數型增長的,所以當網路中有20以上的頂點時,計算總情況數是不可行的。故我們可以轉而求區域性最優解,而快速演算法是基於貪婪演算法的尋求區域性最大q值。
在正式介紹快速演算法之前,我們先明確乙個概念,即eij
e _
eij
,當表示社團i和社團j之間的邊數佔總邊數的比例。newman做了特別的宣告:一條邊的計數不能同時出現在e矩陣的對角線的上方和下方,例如當總邊數為17,而i,j之間有5條邊,則eij
e _
eij
=e ji
e _
eji
=1 2×
517
\frac \times \frac
21×17
5,即將i,j之間邊數分為兩份,乙份計入eij
e _
eij
,乙份計入eji
e _
eji
。故e ij
e _
eij
+e ji
e _
eji
為社團i和社團j之間的邊數佔總邊數的比例(我們先記下這點,下文會用到。)
快速演算法的步驟如下:
1,將網路每個頂點均看做乙個社團,初始的頂點i和j之間有邊相連,則eij
e _
eij
=1 2m
\frac
2m1
,否則為0。
a i=
ki2m
a _ = \frac }
ai=2m
ki
,k ik_
ki是頂點i的度。
2,依次合併有邊相連的社團對,並計算合併後的q值的增量δ
q\delta q
δq:δq=
eij+
eji−
2aia
j\delta q = e _ + e _ - 2 a _ a _
δq=eij
+ej
i−2
aia
j下面解釋一下δ
q\delta q
δq的由來:根據上篇部落格給出的q值定義,則可知 δ
q\delta q
δq定義為(新增的內部邊數)-(該類邊的期望邊數)
兩個社團i,j合併後,之前社團i、j內部的仍是新社團內部的邊,而之前社團i,j之間連線的邊也成了新社團內部的邊。所以整個網路的內部邊的增量為eij
+eji
e _ + e _
eij+e
ji,而i,j間邊數期望值是kik
j2
m\frac
2mkikj
=2aia
j2 a _ a _
2aiaj
。雖然快速演算法在時間複雜度方面由於gn演算法,但是據實驗表明,它的準確度是差於gn演算法的。
參考文獻:
[1]:newman m e . fast algorithm for detecting community structure in networks[j]. phys rev e stat nonlin soft matter phys, 2004, 69(6 pt 2):066133.
MINT 蛋白質相互作用資料庫簡介
mint,全稱molecular interaction database,是乙個蛋白質相互作用的資料庫,該資料庫中的蛋白相互作用都是由專家審核過的有實驗證據支援的,目前該資料庫涵蓋了607個物種,共117001個蛋白相互作用關係。如下 對於蛋白a和蛋白b,如果二者存在相互作用,就說存在乙個inte...
蛋白質相互作用位點標籤的獲取方法
目前對蛋白質相互作用位點的 即是判定表面氨基酸中哪些事介面殘基。目前,對介面殘基的定義有兩種 第一種定義,基於氨基酸殘基的可及表面積的變化程度。蛋白質相互作用形成複合物是通過蛋白質與蛋白質之間相互接觸發生相互作用,因此溶劑可及表面積會相應發生變化,我們定義該殘基為介面殘基,是該殘基在形成複合物之後可...
常見蛋白質種類 什麼是優質蛋白質?雞蛋大豆算不算
蛋白質都是由氨基酸構成的,大部分的氨基酸可以在人體內合成,但是有八種氨基酸是人體無法合成,只能從食物中獲取的,這八種氨基酸就叫做必需氨基酸,其中,嬰兒有9種。八種必需氨基酸的為 甲硫氨酸 蛋氨酸 異亮氨酸 纈氨酸 亮氨酸 苯丙氨酸 色氨酸 蘇氨酸 賴氨酸 嬰兒還包括組氨酸 食物蛋白質中,如果有一種或...