asyn_fluidc#

asyn_fluidc(G, k, max_iter=100, seed=None)[源代码]#

返回由 Fluid Communities 算法检测到的 G 中的社区。

异步流体社区算法在 [1] 中有所描述。该算法基于流体在环境中相互作用、膨胀和相互推挤的简单思想。其初始化是随机的,因此找到的社区可能在不同的执行中有所不同。

算法按如下步骤进行。首先,将初始的 k 个社区分别初始化在图中的一个随机顶点上。然后算法以随机顺序遍历所有顶点,根据每个顶点自身的社区及其邻居的社区来更新该顶点的社区。这个过程重复进行多次直到收敛。在任何时候,每个社区的总密度都是 1,该密度在其包含的顶点之间平均分配。如果一个顶点改变了社区,受影响的社区的顶点密度会立即进行调整。当完成对所有顶点的完整迭代,并且没有顶点改变其所属的社区时,算法就收敛并返回结果。

这是 [1] 中描述的原始版本算法。不幸的是,它尚不支持加权图。

参数:
GNetworkX 图

图必须是简单无向图。

k整数

要找到的社区数量。

max_iter整数

允许的最大迭代次数。默认为 100。

seed整数, random_state, 或 None (默认)

随机数生成状态的指示器。参阅 随机性

返回:
communities可迭代对象

以节点集合形式给出的社区的可迭代对象。

注意

变量 k 不是一个可选参数。

参考文献

[1] (1,2)

Parés F., Garcia-Gasulla D. et al. “Fluid Communities: A Competitive and Highly Scalable Community Detection Algorithm”. [https://arxiv.org/pdf/1703.09307.pdf].