spectral_bisection#

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

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

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

参数
GNetworkX Graph
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(默认)

随机数生成状态的指示符。参见 随机性

返回值
bisectiontuple of sets

包含节点二分的集合

参考文献

[1]

M. E. J Newman 《Networks: An Introduction》,第 364-370 页,Oxford University Press 2011。

示例

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