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