k_components#
- k_components(G, flow_func=None)[源代码]#
返回图G的k分量结构。
A
k
-组件是图G的最大子图,至少具有节点连通性。k
:我们至少需要移除k
将其分解为更多组件的节点。k
-组件具有固有的层次结构,因为它们是按连接嵌套的:一个连接的图可以包含几个2个组件,每个组件可以包含一个或多个3个组件,等等。- 参数
- G网络X图表
- flow_func功能
函数来执行基础流计算。缺省值
edmonds_karp()
。此函数在具有右尾度分布的稀疏图中执行得更好。shortest_augmenting_path()
将在更密集的图形中执行得更好。
- 返回
- k_componentsDICT
具有所有连接级别的词典
k
在作为关键字的输入图形和形成级别的k分量的节点集的列表中k
就像价值观一样。
- 加薪
- NetworkXNotImplemented
如果输入图是定向的。
参见
node_connectivity
all_node_cuts
biconnected_components
k=2时此函数的特殊情况
k_edge_components
类似于此函数,但使用边缘连接而不是节点连接
笔记
穆迪和怀特 [1] (附录A)提供了一种识别图中k-分量的算法,该算法基于Kanevsky的算法 [2] 用于查找图的所有最小大小的节点割集(在
all_node_cuts()
函数):计算输入图g的节点连通性k。
使用Kanevsky的算法识别当前连接级别的所有k-cutset。
基于删除这些切割集生成新的图形组件。切割集中的节点属于诱导切割的两侧。
如果图既不完整也不琐碎,返回1;否则结束。
此实现还使用了一些试探法(请参见 [3] 有关详细信息)以加速计算。
工具书类
- 1
Moody,J.和D.White(2003年)。社会凝聚力与嵌入性:社会群体的等级观念。美国社会学评论68(1),103-28.http://ww2.asanet.org/journals/asrfeb03moodywhite.pdf
- 2
Kanevsky,A.(1993年)。在一个图中查找所有分隔顶点集的最小大小。网络23(6),533--541。http://onlinelibrary.wiley.com/doi/10.1002/net.3230230604/abstract
- 3
Torrents,J.和F.Ferraro(2015年)。结构内聚:可视化和启发式快速计算。https://arxiv.org/pdf/1503.04476v1
实例
>>> # Petersen graph has 10 nodes and it is triconnected, thus all >>> # nodes are in a single component on all three connectivity levels >>> G = nx.petersen_graph() >>> k_components = nx.k_components(G)