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


Python NetworkX biconnected_component_edges用法及代碼示例


本文簡要介紹 networkx.algorithms.components.biconnected_component_edges 的用法。

用法:

biconnected_component_edges(G)

返回邊列表的生成器,輸入圖的每個雙連通分量都有一個列表。

雙連通分量是最大子圖,因此刪除一個節點(以及該節點上的所有邊)不會斷開子圖。請注意,節點可能是多個雙連接組件的一部分。這些節點是關節點或切割頂點。但是,每條邊都屬於一個且僅屬於一個雙連通分量。

請注意,按照慣例,二元組被認為是雙連接組件。

參數

GNetworkX 圖表

一個無向圖。

返回

edges列表生成器

邊列表生成器,每個雙組件一個列表。

拋出

NetworkXNotImplemented

如果輸入圖不是無向圖。

注意

查找關節點和雙連接組件的算法是使用非遞歸深度優先搜索 (DFS) 實現的,該算法跟蹤後邊在 DFS 樹中達到的最高級別。當且僅當存在以n為根的子樹使得在DFS中鏈接到n的前驅的n的任何後繼沒有後邊時,節點n是關節點樹。通過跟蹤 DFS 遍曆的所有邊,我們可以獲得雙連通分量,因為雙分量的所有邊將在關節點之間連續遍曆。

參考

1

Hopcroft, J.; Tarjan, R. (1973). “Efficient algorithms for graph manipulation”. Communications of the ACM 16: 372-378. doi:10.1145/362248.362272

例子

>>> G = nx.barbell_graph(4, 2)
>>> print(nx.is_biconnected(G))
False
>>> bicomponents_edges = list(nx.biconnected_component_edges(G))
>>> len(bicomponents_edges)
5
>>> G.add_edge(2, 8)
>>> print(nx.is_biconnected(G))
True
>>> bicomponents_edges = list(nx.biconnected_component_edges(G))
>>> len(bicomponents_edges)
1

相關用法


注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.components.biconnected_component_edges。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。