2014-12-07 6 views
1

Я использую networkX для анализа социального графа. Мне интересно, как эта библиотека достигает такой производительности. Использует ли он смежный список или матрицу для хранения графика или используемой базы данных графиков, например neo4j, для хранения графика? Благодарякакая структура данных используется для хранения графика в сети X?

ответ

1

От http://networkx.github.io/documentation/networkx-1.9.1/reference/introduction.html

Граф внутренние структуры данных основаны на представлении списка смежности и реализован с использованием Python словаря datastructures. Структура смежности графа реализуется как словарь словарей Python; внешний словарь привязан узлами к значениям, которые сами являются словарями, привязанными соседним узлом к ​​атрибутам края, связанным с этим ребром. Эта структура «dict-of-dicts» позволяет быстро добавлять, удалять и искать узлы и соседи на больших графиках. Доступ к базовой структуре данных осуществляется непосредственно методами (интерфейсом программирования «API») в определениях классов. С другой стороны, все функции управляют графоподобными объектами исключительно с помощью этих методов API, а не напрямую воздействуют на структуру данных. Эта конструкция позволяет заменять datastructure на основе «dicts-of-dicts» альтернативной структурой данных, которая реализует те же методы.

Смежные вопросы