k_truss#
- k_truss(G, k)[source]#
返回
G
的 k-truss。k-truss 是
G
的一个最大诱导子图,该子图至少包含三个顶点,且每条边至少属于k-2
个三角形。- 参数:
- GNetworkX 图
无向图
- kint
truss 的阶
- 返回:
- HNetworkX 图
k-truss 子图
- 抛出异常:
- NetworkXNotImplemented
如果
G
是多重图或有向图,或者包含自环。
注意
k-clique 是一个 (k-2)-truss,而 k-truss 是一个 (k+1)-core。
图、节点和边的属性会被复制到子图。
K-truss 最初定义在 [2] 中,该定义指出 k-truss 是最大的诱导子图,其中每条边至少属于
k-2
个三角形。最近的一篇论文 [1] 使用了一个略有不同的定义,要求每条边至少属于k
个三角形。本实现使用的是原始定义,即k-2
个三角形。参考文献
[1]k-truss 的界和算法。Paul Burkhardt, Vance Faber, David G. Harris, 2018. https://arxiv.org/abs/1806.05523v2
[2]Trusses: 用于社交网络分析的内聚子图。Jonathan Cohen, 2005。
示例
>>> degrees = [0, 1, 2, 2, 2, 2, 3] >>> H = nx.havel_hakimi_graph(degrees) >>> H.degree DegreeView({0: 1, 1: 2, 2: 2, 3: 2, 4: 2, 5: 3, 6: 0}) >>> nx.k_truss(H, k=2).nodes NodeView((0, 1, 2, 3, 4, 5)) ----