當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。