LINUX.ORG.RU

манипуляции с графом в формате dot


0

2

Добрый день!

Подскажите кто знает.
Есть графы очень большого размера: [20M-500M] .dot файлы.
Их не нужно открыть - так как этого не сделает не один viewer, включая http://zvtm.sourceforge.net/zgrviewer.html
Хотя если кто то знает что то что может их открыть - было бы полезно получить ссылку и на этот софт.

Задача: Вырезать из графа его часть по определенным критериям, например:
Все вершины которые находятся на расстояние 20 ребер от «константной_вершины», например от main. То есть графа не всех вершин, а только глубиной в 20 от main.
И если есть какое то хорошее ПО для манипуляции над графами - то подскажите. Заранее огромное спасибо.

То что буду использовать если не найду не чего готового, это:
http://code.google.com/p/python-graph/
http://code.google.com/p/pydot/

Буду благодарен любым советам.

Попробуй открыть каким-нибудь простым редактором, типа встроенного в mc. Ну а по задаче - может проще и быстрее будет самому написать обработчик?

CrossFire ★★★★★
()

Попробуй это http://networkx.lanl.gov/, конвертировать попробуй так(там подсвечено): http://networkx.lanl.gov/reference/convert.html?highlight=nx_pydot

Сам не пробовал так делать, но библиотека хорошая.

Их не нужно открыть - так как этого не сделает не один viewer

А ещё это бессмысленно ибо viewer'ы, в основном, только дают статическую картинку, которая тебе ничем не поможет при таких размерах графов.

П.С. главное чтобы памяти под граф хватило, иначе ручками придётся писать всё :)

Norgat ★★★★★
()

Есть графы очень большого размера: [20M-500M] .dot файлы

Их не нужно открыть - так как этого не сделает не один viewer

А какие из просмотрщиков ты уже пробовал для визуализации? На каких объемах данных они начинали захлебываться?

python-graph

pydot

Python, вероятно, не лучшее решение в данном случае. И по скорости, и по памяти.

Задача: Вырезать из графа его часть по определенным критериям

.dot файлы

Посмотри http://common-lisp.net/project/cl-graph/user-guide.html

Вроде, есть все что тебе необходимо. В том числе - выплевывает .dot.

alienclaster ★★★
()

И эта, если твои данные не из сверхсекретных лабораторий по генной инженерии, можешь залить пару дотов куда-нибудь? Хочу поиграться, а под рукой как-то нет нагенерированных «случайных» данных в таких объемах.

alienclaster ★★★
()

по моему в графвизе есть редактор потоковый для dot

psv1967 ★★★★★
()
Ответ на: комментарий от artin888

ну ты совсем ленивый Gvpr в руки , и вперед:)

anonymous
()
Ответ на: комментарий от artin888

Ты определись, что тебе нужно - отрисовка графа или манипуляция с ним? Я просто не понимаю, начерта тебе вручную работать с графами на миллионы вершин. Про тот же Gephi могу сказать следующее - оно сыровато слегка, а работать с Gephi API это мрак.

Если тебе нужна что-то поменять в графе и сделать другой граф, то напиши программку, которая это сделает для тебя. Как вариант - взять С++ + STL, распарсить ручками .dot файл и запихать результат в std::map, это не сложно.А уже этот map обработать и результат записать в новый .dot файл.

П.С. под кресты есть ещё Boost Graph Library, глянь её ещё, может она умеет то, что тебе нужно.

Norgat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.