Прочитать Disconected Graph в igraph для python - PullRequest
3 голосов
/ 21 июля 2011

Я хотел бы знать, как лучше читать несвязанный неориентированный граф, используя igraph для python. Например, если у меня есть простой граф, в котором 0 связан с 1, а 2 - это узел, не связанный ни с каким другим. Мне не удалось заставить igraph читать его из формата списка ребер (Graph.Read_Edgelist (...)), потому что каждая строка должна быть ребром, поэтому следующее не допускается:

0 1
2

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

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

1 Ответ

1 голос
/ 21 июля 2011

Существует формат LGL, который допускает изолированные вершины (см. Graph.Read_LGL). Формат выглядит так:

# nodeID
nodeID2
nodeID3
# nodeID2
nodeID4
nodeID5
nodeID
# isolatedNode
# nodeID5

Я думаю, вы поняли основную идею; строки, начинающиеся с хеш-метки, указывают, что определяется новый узел. После этого в строках указываются соседи только что определенного узла. Если вам нужен изолированный узел, вы просто указываете идентификатор узла, которому предшествует хеш-метка в строке, а затем переходите к следующему узлу.

Более подробную информацию о формате LGL можно найти здесь .

Другим достаточно читаемым форматом, который вы можете изучить, является GML-формат , который также поддерживает igraph.

...