Алгоритм кратчайшего пути для огромной базы данных автобусных маршрутов - PullRequest
0 голосов
/ 01 июня 2018

Я строю карту автобусных маршрутов для Ченнаи.Я использую Postgis.В нашей базе данных есть одна таблица со всеми маршрутами и уникальными идентификаторами для них.Вторая таблица содержит названия автобусных остановок с указанием широты и долготы.Третья таблица объединяет первую и вторую таблицы на основе их идентификаторов.У нас есть записи о маршрутах.

Я хочу построить функцию для поиска кратчайшего маршрута между двумя остановками, у которых нет общего маршрута.Например, существуют две остановки A и B, которые не имеют общих маршрутов.Скажем, есть еще 3 остановки - C, D, E.Я хочу узнать, какой маршрут мне выбрать, чтобы проехать кратчайшее расстояние.Если я уезжаю из A, я должен сойти в C и из C сесть на автобус до B, или сойти в C, сесть на другой автобус до D и оттуда другой автобус до B, или перейти к E и затем сесть на автобус.

В основном я хочу найти кратчайший путь для двух остановок без общего маршрута.Поскольку моя база данных огромна, что необходимо учитывать при выборе алгоритма, потому что он не должен замедлять процесс.

Может кто-нибудь предложить подходящий алгоритм, который не займет много времени?

...