NetworkX вычислительная кластеризация MultDiGraph - PullRequest
0 голосов
/ 07 января 2019

Чтобы вычислить кластеризацию MultDiGraph, я сначала конвертирую MultDiGraph в ориентированный граф. Затем, когда я пытаюсь вычислить кластеризацию, я получаю это сообщение об ошибке.

NetworkXNotImplemented: not implemented for multigraph type

Есть ли способ рассчитать кластеризацию MultDiGraph?

1 Ответ

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

Один из способов решить эту проблему - превратить ваш мультидиграф в взвешенный орграф, как в этом вопросе . Предполагая, что ваш мультидиграф невзвешен:

import networkx as nx
# MultiGraph
M = nx.MultiDiGraph()
M.add_edge(1,2)
M.add_edge(1,2)
M.add_edge(2,3)
M.add_edge(1,3)
M.add_edge(1,4)

# create weighted graph from M
G = nx.DiGraph()
for u,v in M.edges():
    if G.has_edge(u,v):
        G[u][v]['weight'] += 1
    else:
        G.add_edge(u, v, weight=1)

clustering = nx.clustering(G,weight='weight')
clustering

Обратите внимание, что для этого требуется NetworkX 2.2.

...