计算NetworkX图的断开连接的组件数

时间:2018-10-19 19:19:08

标签: python networkx graph-theory

从随机生成的树开始,我想考虑树的每个节点,并可能以p的概率将其删除。由于树没有循环,并且任何一对节点之间都存在唯一的路径,因此删除一个节点应该使d断开连接的树处于唤醒状态,其中d是该节点的度数。

我的问题是,在对整个图形进行此操作后,如何检查这些未连接的段中有多少?

import networkx as nx
import random as rand

n = 20
p = 0.1

G = nx.random_tree(n)
for i in range(0, n):
    if rand.random() < p:
        G.remove_node(i)

x = G.count_disconnected_components() # is there anything that accomplishes this?

例如,对于此图,G.count_disconnected_components()应该返回3。  graph with three unconnected components

1 个答案:

答案 0 :(得分:2)

在我看来,您实际上实际上是想计算连接零件的数量。尝试number_connected_components

print(list(nx.connected_components(G)))
print(nx.number_connected_components(G))