|  | 
| 
Графовая СУБД для чайника | |||
|---|---|---|---|
| #18+ Приветствую! Нужно в общем виде решить следующую задачу: имеется очень большой граф (узлы со свойствами, попарные связи со свойствами). Нужно максимально быстро сделать выборку узлов/связей по заданным условиям и построить граф, все узлы которого непосредственно и/или опосредовано связаны со стартовым. На данном этапе нужно определиться - браться или нет за нее. Опыта работы с подобными задачи не имею, и для решения была бы полезна любая информация, как то: личный опыт, ознакомительная литература, готовые средства и т.п. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 10.02.2021, 22:41 |  | ||
| 
Графовая СУБД для чайника | |||
|---|---|---|---|
| #18+ Не совсем понятна постановка. Нужно выбрать узлы/связи по каким-то условиям плюс доп. условие - находящиеся в одном связном подграфе со стартовым узлом? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.02.2021, 01:20 |  | ||
| 
Графовая СУБД для чайника | |||
|---|---|---|---|
| #18+ Соколинский Борис Нужно в общем виде решить следующую задачу: имеется очень большой граф (узлы со свойствами, попарные связи со свойствами). Посмотри в сторону neo4j ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.02.2021, 04:57 |  | ||
| 
Графовая СУБД для чайника | |||
|---|---|---|---|
| #18+ Соколинский Борис Приветствую! Нужно в общем виде решить следующую задачу: имеется очень большой граф (узлы со свойствами, попарные связи со свойствами). Нужно максимально быстро сделать выборку узлов/связей по заданным условиям и построить граф, все узлы которого непосредственно и/или опосредовано связаны со стартовым. На данном этапе нужно определиться - браться или нет за нее. Опыта работы с подобными задачи не имею, и для решения была бы полезна любая информация, как то: личный опыт, ознакомительная литература, готовые средства и т.п. ИМХО в начале пучить теорию. Графы, алгебру, работа с матрицей. Тут работа скорее для математика, чем для БД. Т.к. велика вероятность вляпаться в NP-полную задачу. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.02.2021, 07:52 |  | ||
| 
Графовая СУБД для чайника | |||
|---|---|---|---|
| #18+ softwarer Не совсем понятна постановка. Нужно выбрать узлы/связи по каким-то условиям плюс доп. условие - находящиеся в одном связном подграфе со стартовым узлом? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.02.2021, 08:52 |  | ||
| 
Графовая СУБД для чайника | |||
|---|---|---|---|
| #18+ mad_nazgul  ИМХО в начале пучить теорию. Графы, алгебру, работа с матрицей. Тут работа скорее для математика, чем для БД. Т.к. велика вероятность вляпаться в NP-полную задачу. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.02.2021, 09:06 |  | ||
| 
Графовая СУБД для чайника | |||
|---|---|---|---|
| #18+ Соколинский Борис softwarer Не совсем понятна постановка. Нужно выбрать узлы/связи по каким-то условиям плюс доп. условие - находящиеся в одном связном подграфе со стартовым узлом? Тогда, мне кажется, ключевой вопрос - насколько часто граф модифицируется относительно операций поиска. Если достаточно редко для того, чтобы иметь возможность предрассчитать атрибут "номер связного подграфа", задача становится тривиально-реляционной. Если же нет... тогда, видимо, стоит искать СУБД, которая умеет эффективно просчитывать связность на лету. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.02.2021, 10:17 |  | ||
| 
Графовая СУБД для чайника | |||
|---|---|---|---|
| #18+ Если задача вырождается в NP-полную, то веры в "СУБД, которая умеет эффективно просчитывать связность на лету" у меня как-то особо нет. Эффективнее взять нормальный низкоуровневый язык (C,Java) и банальным перебором/рекурсией. Это если задача должна выполняться на "обычных" компьютерах. Можно конечно библиотеки для работы с графами поискать, но явно что производительность будет на порядки медленнее. Ну и непонятно, что значит "очень большой граф". Я искал варианты полетов/маршрута/билетов на самолете (около 10 тыс. аэропортов /узлы/, около 100 тыс. рейсов в день по миру /связи/), на дешевеньком сервере от Amazon (4 Gb Ram) варианты перелетов в одну сторону считались вполне успешно (online, секунда-десяток секунд на ответ; "туда и обратно" не осилили) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.02.2021, 13:45 |  | ||
| 
Графовая СУБД для чайника | |||
|---|---|---|---|
| #18+ Соколинский БорисДля графов теории как таковой особо и нет. Есть, есть, куда ж она денется. И туева хуча алгоритмов с именами изобретателей к ней прилагается. Вышеописанную задачу, например, решает какой-нибудь Форд-Фалкерсон или Flood Fill. Единственное условие, что граф (а точнее список вершин) должен помещаться в ОЗУ. Так что пока ваш "большой граф" в пределах пары миллиардов вершин - волноваться особо не о чем. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.02.2021, 14:16 |  | ||
| 
Графовая СУБД для чайника | |||
|---|---|---|---|
| #18+ Leonid Kudryavtsev Ну и непонятно, что значит "очень большой граф". Dimitry Sibiryakov Есть, есть, куда ж она денется. И туева хуча алгоритмов с именами изобретателей к ней прилагается. Вышеописанную задачу, например, решает какой-нибудь Форд-Фалкерсон или Flood Fill. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.02.2021, 15:24 |  | ||
| 
Графовая СУБД для чайника | |||
|---|---|---|---|
| #18+ Соколинский БорисFlood Fill - обычная рекурсия на стеке, там никакой суперхитрости нет. Подозреваю, что в первом тоже. Рекурсия не требуется, но так-то да, в готовых алгоритмах никакой хитрости уже не остаётся, просто берёшь и применяешь их. Четыре байта на узел в упомянутых алгоритмах дают потребление в 40 мегабайт ОЗУ на предварительное ТЗ и 400 - на возможную реальную задачу. Не вижу проблем с решением грубой силой. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.02.2021, 15:35 |  | ||
|  | 

| start [/forum/topic.php?fid=32&fpage=2&tid=1539816]: | 0ms | 
| get settings: | 10ms | 
| get forum list: | 13ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 30ms | 
| get topic data: | 11ms | 
| get forum data: | 3ms | 
| get page messages: | 50ms | 
| get tp. blocked users: | 2ms | 
| others: | 225ms | 
| total: | 350ms | 

| 0 / 0 | 
