spectral_bisection#

spectral_bisection(G, weight='weight', normalized=False, tol=1e-08, method='tracemin_pcg', seed=None)[source]#

使用Fiedler向量对图进行二分。

此方法使用Fiedler向量对图进行二分。划分由与向量中正值或负值相关联的节点定义。

Parameters:
GNetworkX 图
weightstr, 可选 (默认: weight)

用于确定每条边权重的数据键。如果为None,则每条边具有单位权重。

normalizedbool, 可选 (默认: False)

是否使用归一化拉普拉斯矩阵。

tolfloat, 可选 (默认: 1e-8)

特征值计算中的相对残差的容差。

methodstring, 可选 (默认: ‘tracemin_pcg’)

特征值计算方法。必须是以下tracemin选项之一(TraceMIN)、’lanczos’(Lanczos迭代)或’lobpcg’(LOBPCG)。

TraceMIN算法使用线性系统求解器。以下值允许指定要使用的求解器。

求解器

‘tracemin_pcg’

预处理共轭梯度法

‘tracemin_lu’

LU分解

seedinteger, random_state, 或 None (默认)

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

Returns:
bisection集合的元组

包含节点二分结果的集合

References

[1]

M. E. J Newman ‘Networks: An Introduction’, 第364-370页 Oxford University Press 2011.

Examples

>>> G = nx.barbell_graph(3, 0)
>>> nx.spectral_bisection(G)
({0, 1, 2}, {3, 4, 5})