asyn_fluidc#

asyn_fluidc(G, k, max_iter=100, seed=None)[source]#

返回由流社区算法检测到的图 G 中的社区。

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

算法过程如下。首先,在图中的随机顶点上初始化 k 个初始社区。然后,算法以随机顺序遍历所有顶点,根据顶点自身及其邻居的社区更新每个顶点的社区。这个过程执行多次直到收敛。 在任何时候,每个社区的总密度为 1,均匀分布在其包含的顶点之间。如果一个顶点改变了社区,受影响的社区的顶点密度会立即调整。当遍历所有顶点完成,且没有顶点改变其所属的社区时,算法收敛并返回。

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

Parameters:
GNetworkX 图

图必须是简单且无向的。

k整数

要找到的社区数量。

max_iter整数

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

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

随机数生成状态的指示器。 参见 Randomness

Returns:
communities可迭代对象

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

Notes

k 变量不是可选参数。

References

[1] (1,2)

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