当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX all_node_cuts用法及代码示例


本文简要介绍 networkx.algorithms.connectivity.kcutsets.all_node_cuts 的用法。

用法:

all_node_cuts(G, k=None, flow_func=None)

返回无向图 G 的所有最小 k 割集。

该实现基于 Kanevsky 算法 [1],用于查找无向图 G 的所有 minimum-size 节点 cut-sets;即基数等于 G 的节点连通性的节点集合(或集合)。因此,如果删除,会将 G 分成两个或多个连接的组件。

参数

GNetworkX 图

无向图

k整数

输入图的节点连通性。如果 k 为 None,则计算它。默认值:无。

flow_func函数

执行底层流计算的函数。默认值edmonds_karp。此函数在具有右尾度分布的稀疏图中表现更好。 shortest_augmenting_path 在更密集的图中表现更好。

返回

cuts节点割集的生成器

每个节点割集的基数等于输入图的节点连通性。

注意

该实现基于用于查找图中所有minimum-size分离顶点集的顺序算法[1]。主要思想是使用一组最高度节点和图中所有其他非相邻节点之间的局部最大流计算来计算最小割。一旦找到最小割,我们就在高度节点和局部最大流计算的目标节点之间添加一条边,以确保我们不会再次找到该最小割。

参考

1(1,2)

Kanevsky, A. (1993). Finding all minimum-size separating vertex sets in a graph. Networks 23(6), 533-541. http://onlinelibrary.wiley.com/doi/10.1002/net.3230230604/abstract

例子

>>> # A two-dimensional grid graph has 4 cutsets of cardinality 2
>>> G = nx.grid_2d_graph(5, 5)
>>> cutsets = list(nx.all_node_cuts(G))
>>> len(cutsets)
4
>>> all(2 == len(cutset) for cutset in cutsets)
True
>>> nx.node_connectivity(G)
2

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.connectivity.kcutsets.all_node_cuts。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。