概述
比起以往关于社区搜索寻找稠密子图不同,本文聚焦在寻找带有N个节点的稀疏子图。
1)问题定义:给定一个图,从社区中找到至少有N个节点的,互不相连的,拥有最小的 Δ k ( F ) ∣ F ∣ \frac{\Delta _k(F)}{|F|} ∣F∣Δk(F)的子图。其中|F|是子图包含节点数量, Δ k ( F ) \Delta _k(F) Δk(F)代表F中k-triangle数量。
k-triangle指的是一个三节点x,y,z,在图中俩俩的最短距离均小于等与k,称之为一个k-triangle。
2)衡量指标: Δ k ( F ) ∣ F ∣ \frac{\Delta _k(F)}{|F|} ∣F∣Δk(F)
3)算法:TERA,TERA-ADV
算法介绍
由于网上看到有篇比较完整的全文翻译,就不再过段介绍。涉及到的证明也都不赘述。简单介绍一下算法TERA的执行部分。
以论文中的例子解释。(其实论文也讲得比较清楚)
由于需要计算节点v的权重w(v),这里的权重其实就是这个节点的K-triangle的数量。可以通过构建k-hop图G
k
_k
k来计算。
这里k是2,所构造的G
k
_k
k包含的意思是,如果两点之间的最短距离小于等于k,两点之间就会有边。
要看包含了某个节点的k-triangle数量,那就根据G
k
_k
k的节点边数可以计算出来。设边数为L,则k-triangle数量,即w(v)=C
L
2
_L^2
L2。
所以根据算法,去除权值最高的节点V
5
_5
5,得到Figure3中的图
(
b
)
(b)
(b),再去除V
2
_2
2后,得到图
(
c
)
(c)
(c),去除V
4
_4
4后得到图
(
d
)
(d)
(d),此时符合节点之间没有连接的约束,H
4
_4
4作为一个候选结果。此时|H
4
_4
4|为3,退出while循环。
Δ k = 2 ( H 4 ) ∣ H 4 ∣ \frac{\Delta _{k=2}(H_4)}{|H_4|} ∣H4∣Δk=2(H4)=0
这就是该算法的一个简单描述。
对于算法的步骤3,似乎有点问题。如果存在两个节点的权重相同,但是一个节点有更多的边,则删除这个节点,效果会更好。但是从算法中,没有看出这样的区别对待。