Как нарисовать дополнение сетевого графа?

Любая функция в этом Graphviz, которая может это сделать? Если нет, то любое другое бесплатное программное обеспечение, которое может это сделать?


person yeeen    schedule 14.01.2010    source источник


Ответы (2)


Учитывая, что вы хотите визуализировать свои графики в graphviz, я предлагаю использовать библиотеку Python, networkx, вычислить дополнение графа. Networkx — отличная библиотека для теоретико-графового анализа; он также имеет бесшовный интерфейс с graphviz.

(Грубое определение дополнения к графу: представьте себе граф A', который имеет те же узлы, что и A, но имеет все возможные ребра, т. е. каждый узел соединен с каждым другим узлом; теперь удалите из A' ребра в A; что слева — дополнение к А, А')

import networkx as NX
G = NX.gnm_random_graph(10, 10)   # create a random graph w/ 10 nodes, 10 edges
G_cmpl = NX.complement(G)         # get the complement of graph 'G'

# to render it in graphviz:
NX.write_dot(G_cmpl, "somefilename.dot")
person doug    schedule 15.01.2010
comment
Это похоже на то, что я хочу. Но как мне установить networkx, используя загруженный файл Python Egg? В быстрой загрузке в файле install.txt сказано только «Получить NetworkX из индекса пакетов Python по адресу pypi.python.org/. pypi/networkx или установите его с помощью:: easy_install networkx, и будет предпринята попытка найти и установить подходящую версию, соответствующую вашей операционной системе и версии Python. Я установил Python, кстати. - person yeeen; 17.01.2010
comment
Вам необходимо установить «setuptools», чтобы иметь возможность устанавливать пакеты через «яйца». Я не знаю вашу ОС, поэтому вот ссылка на пошаговое руководство: peak.telecommunity .com/DevCenter/EasyInstall. если вы не хотите устанавливать с помощью setuptools («яиц»), перейдите в репозиторий Networkx (networkx .lanl.gov/download/networkx) dll и распакуйте последнюю версию, подходящую для вашей ОС, откройте оболочку, перейдите в каталог верхнего уровня пакета и введите в командной строке: 'sudo python setup.py install ' (без кавычек). Это установит его. - person doug; 17.01.2010

Вычислите дополнение самостоятельно, а затем постройте его.

person Hamish Grubijan    schedule 14.01.2010
comment
не то чтобы я думал об этом, просто иногда очень сложно вычислить дополнение, особенно если в исходном графе много узлов и ребер. - person yeeen; 15.01.2010
comment
так что последующий вопрос заключается в том, есть ли какое-либо программное обеспечение или онлайн-инструменты, которые могут это сделать. - person yeeen; 15.01.2010
comment
Что ж, graphviz хорош для построения графиков. Сколько у вас узлов и вершин? Какой формат ввода? - person Hamish Grubijan; 15.01.2010
comment
Мне нужен эффективный sw, чтобы вы могли предположить довольно много вершин и ребер в дополнительном графе. Вход заключается в том, чтобы ввести вручную... - person yeeen; 17.01.2010