Расчет количества отключенных компонентов графа NetworkX - PullRequest
0 голосов
/ 19 октября 2018

Начиная со случайно сгенерированного дерева, я хочу рассмотреть каждый узел дерева и потенциально удалить его с некоторой вероятностью 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 голосов
/ 19 октября 2018

Мне кажется, вы действительно хотите посчитать количество подключенных частей.Попробуйте number_connected_components:

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