powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Графовая СУБД для чайника
12 сообщений из 12, страница 1 из 1
Графовая СУБД для чайника
    #40044219
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!
Нужно в общем виде решить следующую задачу: имеется очень большой граф (узлы со свойствами, попарные связи со свойствами).
Нужно максимально быстро сделать выборку узлов/связей по заданным условиям и построить граф, все узлы которого непосредственно и/или опосредовано связаны со стартовым.
На данном этапе нужно определиться - браться или нет за нее. Опыта работы с подобными задачи не имею, и для решения была бы полезна любая информация, как то: личный опыт, ознакомительная литература, готовые средства и т.п.
...
Рейтинг: 0 / 0
Графовая СУБД для чайника
    #40044239
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятна постановка. Нужно выбрать узлы/связи по каким-то условиям плюс доп. условие - находящиеся в одном связном подграфе со стартовым узлом?
...
Рейтинг: 0 / 0
Графовая СУБД для чайника
    #40044261
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Нужно в общем виде решить следующую задачу: имеется очень большой граф (узлы со свойствами, попарные связи со свойствами).

Посмотри в сторону neo4j
...
Рейтинг: 0 / 0
Графовая СУБД для чайника
    #40044270
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Приветствую!
Нужно в общем виде решить следующую задачу: имеется очень большой граф (узлы со свойствами, попарные связи со свойствами).
Нужно максимально быстро сделать выборку узлов/связей по заданным условиям и построить граф, все узлы которого непосредственно и/или опосредовано связаны со стартовым.
На данном этапе нужно определиться - браться или нет за нее. Опыта работы с подобными задачи не имею, и для решения была бы полезна любая информация, как то: личный опыт, ознакомительная литература, готовые средства и т.п.


ИМХО в начале пучить теорию.
Графы, алгебру, работа с матрицей.
Тут работа скорее для математика, чем для БД.
Т.к. велика вероятность вляпаться в NP-полную задачу.
...
Рейтинг: 0 / 0
Графовая СУБД для чайника
    #40044281
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Не совсем понятна постановка. Нужно выбрать узлы/связи по каким-то условиям плюс доп. условие - находящиеся в одном связном подграфе со стартовым узлом?
Да.
...
Рейтинг: 0 / 0
Графовая СУБД для чайника
    #40044282
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
ИМХО в начале пучить теорию.
Графы, алгебру, работа с матрицей.
Тут работа скорее для математика, чем для БД.
Т.к. велика вероятность вляпаться в NP-полную задачу.
Для графов теории как таковой особо и нет. C остальным я более-менее знаком.
...
Рейтинг: 0 / 0
Графовая СУБД для чайника
    #40044308
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
softwarer
Не совсем понятна постановка. Нужно выбрать узлы/связи по каким-то условиям плюс доп. условие - находящиеся в одном связном подграфе со стартовым узлом?
Да.

Тогда, мне кажется, ключевой вопрос - насколько часто граф модифицируется относительно операций поиска. Если достаточно редко для того, чтобы иметь возможность предрассчитать атрибут "номер связного подграфа", задача становится тривиально-реляционной. Если же нет... тогда, видимо, стоит искать СУБД, которая умеет эффективно просчитывать связность на лету.
...
Рейтинг: 0 / 0
Графовая СУБД для чайника
    #40044425
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если задача вырождается в NP-полную, то веры в "СУБД, которая умеет эффективно просчитывать связность на лету" у меня как-то особо нет.

Эффективнее взять нормальный низкоуровневый язык (C,Java) и банальным перебором/рекурсией. Это если задача должна выполняться на "обычных" компьютерах. Можно конечно библиотеки для работы с графами поискать, но явно что производительность будет на порядки медленнее.

Ну и непонятно, что значит "очень большой граф". Я искал варианты полетов/маршрута/билетов на самолете (около 10 тыс. аэропортов /узлы/, около 100 тыс. рейсов в день по миру /связи/), на дешевеньком сервере от Amazon (4 Gb Ram) варианты перелетов в одну сторону считались вполне успешно (online, секунда-десяток секунд на ответ; "туда и обратно" не осилили)
...
Рейтинг: 0 / 0
Графовая СУБД для чайника
    #40044437
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисДля графов теории как таковой особо и нет.

Есть, есть, куда ж она денется. И туева хуча алгоритмов с именами изобретателей к ней
прилагается. Вышеописанную задачу, например, решает какой-нибудь Форд-Фалкерсон или Flood
Fill. Единственное условие, что граф (а точнее список вершин) должен помещаться в ОЗУ. Так
что пока ваш "большой граф" в пределах пары миллиардов вершин - волноваться особо не о чем.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Графовая СУБД для чайника
    #40044465
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Ну и непонятно, что значит "очень большой граф".
Порядка 10 млн. узлов в предварительном ТЗ. В реальной задаче, возможно, будет на порядок больше.

Dimitry Sibiryakov

Есть, есть, куда ж она денется. И туева хуча алгоритмов с именами изобретателей к ней
прилагается. Вышеописанную задачу, например, решает какой-нибудь Форд-Фалкерсон или Flood
Fill.
Flood Fill - обычная рекурсия на стеке, там никакой суперхитрости нет. Подозреваю, что в первом тоже.
...
Рейтинг: 0 / 0
Графовая СУБД для чайника
    #40044469
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис,

Мне регулярно попадается на глаза Spark GraphX , но сам даже не смотрел на нее.
...
Рейтинг: 0 / 0
Графовая СУБД для чайника
    #40044470
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисFlood Fill - обычная рекурсия на стеке, там никакой суперхитрости нет. Подозреваю, что в
первом тоже.

Рекурсия не требуется, но так-то да, в готовых алгоритмах никакой хитрости уже не
остаётся, просто берёшь и применяешь их.

Четыре байта на узел в упомянутых алгоритмах дают потребление в 40 мегабайт ОЗУ на
предварительное ТЗ и 400 - на возможную реальную задачу. Не вижу проблем с решением грубой
силой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Графовая СУБД для чайника
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]