Networkx: глобальная эффективность после удаления узла - PullRequest
0 голосов
/ 28 января 2019

Я новичок с networkx и Python, и я хотел бы перебирать узлы графа, в каждой итерации я хотел бы удалять узел, вычислять глобальную эффективность графа после удаления узла и добавлятьэтот узел, прежде чем делать тот же процесс с другими узлами.Я пробовал этот сценарий, но заметил, что после удаления некоторых узлов вычисленная глобальная эффективность больше, чем начальная глобальная эффективность графика (без удаления какого-либо узла).Это нормально, или в моем скрипте есть ошибка?

Заранее спасибо

a=nx.global_efficiency(H)

for elt in H.nodes():
       e=nx.global_efficiency(H.subgraph(set(H)-{i}))
       print ( e)

1 Ответ

0 голосов
/ 29 января 2019

Ваш скрипт выглядит отлично.Можно добиться большей глобальной эффективности, удалив узел.

Вот минимальный пример, чтобы показать это:

import networkx as nx

G = nx.Graph()
G.add_edges_from([(0, 2), (2, 1)])

# Efficiency of: 0 -> 2 -> 1 :
print(nx.global_efficiency(G)) # 0.8333333333333334

# Efficiency of: 2 -> 1
print(nx.global_efficiency(G.subgraph(set(G)-{0}))) # 1.0

Общая эффективность графика вычисляется как объяснено здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...