между python-igraph и networkx - PullRequest
       17

между python-igraph и networkx

0 голосов
/ 08 декабря 2018

У меня есть большой граф с 250000 узлов и 1 миллион ребер для расчета его вершины между (без какого-либо веса).Я намерен использовать python-igraph для завершения этой работы, потому что он поддерживает параллельные вычисления с некоторыми другими пакетами.Когда я сравниваю результаты из python-igarph и networkx на сравнительно небольшой решетке со 100 вершинами (см. Рисунок).Я считаю, что они совершенно разные.Даже для решетки с 9 узлами результаты igraph равны нулю, тогда как результаты для networkx кажутся правильными.Кто может помочь мне с этой проблемой python-igraph?

Вот код:

from igraph import *
import networkx as nx

print("\tUse python-igraph with Vertices=100 ") 
ig = Graph.Lattice([10, 10], 4, False, False, False) 
bt1 = ig.betweenness(directed=False, cutoff=None,nobigint=False) 
print("\tBetweenness of python-igraph:") 
print(bt1) 
print("\tUse networkx with Vertices=100") 
G_la= nx.grid_2d_graph(10,10,periodic=False) 
bt2 = nx.betweenness_centrality(G_la) 
print("\tBetweenness of networkx:") 
print (bt2)

введите описание изображения здесь введите описание изображения здесь введитеописание изображения здесь

1 Ответ

0 голосов
/ 09 декабря 2018

На основании моего прочтения документации для решетки igraph, функция, число 4, которое вы указали в качестве аргумента, означает, что узел будет подключен к любому узлу, который находится на расстоянии не более 4 шагов.на решетке.График networkx будет подключаться только к 4 ближайшим соседям.Так что у igraph гораздо больше связей.В примере с 9 узлами у igraph есть все подключенные узлы.

Для ясности, networkx будет связывать узел (1,1) с (1,0), (0,1), (1,2) и (2,1), в то время какваша команда igraph связывает ее со всеми этими, но также (1,3), (1,4), (1,5), (0,4) и многими другими.(Я не проверил явно, так как igraph не на моем компьютере, но я уверен, что это правильное понимание документации).

...