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


Python NetworkX articulation_points用法及代碼示例


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

用法:

articulation_points(G)

產生圖形的關節點或切割頂點。

關節點或切割頂點是任何節點,其移除(連同其所有入射邊)會增加圖的連通分量的數量。沒有關節點的無向連通圖是雙連通的。關節點屬於圖的多個雙連通分量。

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

參數

GNetworkX 圖表

一個無向圖。

生成(Yield)

節點

圖中的一個關節點。

拋出

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
>>> len(list(nx.articulation_points(G)))
4
>>> G.add_edge(2, 8)
>>> print(nx.is_biconnected(G))
True
>>> len(list(nx.articulation_points(G)))
0

相關用法


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