powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Поиск кратчайшего пути
7 сообщений из 7, страница 1 из 1
Поиск кратчайшего пути
    #39921702
Alexey Agafonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

У меня есть таблица связей неких точек из двух колонок - номер точки1, номер точки2 (p1, p2). В ней несколько миллионов записей - варианты связей между точками.
И два вопроса:
- Как найти кратчайшие пути между двумя указанными точками (sql или pl/sql)?
- Как найти все возможные пути между двумя указанными точками (sql или pl/sql)?

И еще - есть ли алгоритм Дейкстры, написанный на pl/sql? Запросы в поисковики ничего вменяемого не дали. Может, есть на github что-то или еще где?

Заранее спасибо
...
Рейтинг: 0 / 0
Поиск кратчайшего пути
    #39921706
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Agafonov
несколько миллионов записей
...
- Как найти все возможные пути между двумя указанными точками (sql или pl/sql)?

а циклы можно?

Alexey Agafonov
И еще - есть ли алгоритм Дейкстры, написанный на pl/sql? Запросы в поисковики ничего вменяемого не дали. Может, есть на github что-то или еще где?

а просто алгоритм, без plsql, тоже не удалось найти?
...
Рейтинг: 0 / 0
Поиск кратчайшего пути
    #39921732
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Agafonov
Всем привет.

Привет, извращенец.
Alexey Agafonov
Запросы в поисковики ничего вменяемого не дали.

Сказать или сам догадаешься почему?
...
Рейтинг: 0 / 0
Поиск кратчайшего пути
    #39921868
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle Spatial ?

Хотя, на мой взгляд, руками на Java будет проще и быстрее.

Когда-то давно писал, получилась достаточно быстро (на рекурсии+дофига оптимизации).
...
Рейтинг: 0 / 0
Поиск кратчайшего пути
    #39921901
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Agafonov
Всем привет.

У меня есть таблица связей неких точек из двух колонок - номер точки1, номер точки2 (p1, p2). В ней несколько миллионов записей - варианты связей между точками.
И два вопроса:
- Как найти кратчайшие пути между двумя указанными точками (sql или pl/sql)?
- Как найти все возможные пути между двумя указанными точками (sql или pl/sql)?

И еще - есть ли алгоритм Дейкстры, написанный на pl/sql? Запросы в поисковики ничего вменяемого не дали. Может, есть на github что-то или еще где?

Заранее спасибо
Если граф представляет собой DAG, то можно относительно эффективно получить с помощью connect by (тоже, впрочем, зависит от "разнообразия" путей) при наличии индексов.

Если есть циклы или хуже того граф ненаправленный, то только PL/SQL но алгоритм обхода предельно тривиален:
Код: plaintext
на каждой итерации добавляешь все связанные вершины с полученными на предыдущей итерации и еще не посещенные.
Это пару десятков строк кода.

Кзклось бы при чем здесь алгоритм Дейстры если ничего не сказано про веса.
...
Рейтинг: 0 / 0
Поиск кратчайшего пути
    #39921923
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Alexey Agafonov,

Лучше pl/SQL, можешь взять почти любой Quick union алгоритм для connected components. Тут на форуме они уже много раз были
...
Рейтинг: 0 / 0
Поиск кратчайшего пути
    #39922584
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle Spatial самый простой вариант. Тем более он теперь бесплатный в любой версии базы данных
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Поиск кратчайшего пути
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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