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].