1.具有社团结构的网络(Networks with Community Structure)
定义: 对于一个图G而言,如果其中有一个完全子图(任意两个节点之间均存在边),节点数是k,那么这个完全子图就可称为一个k-clique。进而,如果两个k-clique之间存在k-1个共同的节点,那么就称这两个clique是“相邻”的。彼此相邻的这样一串clique构成最大集合,就可以称为一个社区,且社区是可以重叠的;
代码:
import networkx as nx
import matplotlib.pyplot as plt
G = nx.complete_graph(5) #返回具有N个节点的完整图,节点标签是0~n-1
K5 = nx.convert_node_labels_to_integers(G,first_label=2)
#G为复杂网络图,指定编号节点中的起始偏移量,新的整数标签编号为first_label,...,n-1 + first_label。
G.add_edges_from(K5.edges())#对地图中添加边
c = list(nx.k_clique_communities(G, 4))#查找具有社团结构的网络:地图,最小团块大小 :完全连接K个节点的子图
print(c)
nx.draw(G)
plt.show()
样例输出: