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})