У меня есть база данных автобусных / железнодорожных / ... остановок и времени прибытия / отправления на каждую дату и так далее. Я ищу способ поиска самого быстрого (самого короткого / самого дешевого / наименьшего количества переходов) между двумя местоположениями. Я хотел бы иметь произвольные местоположения в будущем, используя данные OpenStreetMap для обхода между остановками и от остановок до начала / конца, однако на данный момент я просто хочу найти путь между двумя остановками в базе данных.
Проблема в том, что я не могу найти много информации об этом предмете, например на этой странице Википедии много текста без абсолютно никакой полезной информации.
Я обнаружил формат GTFS , используемый в Google Transit . Хотя мой город не предоставляет общедоступный канал данных (даже частный), у меня уже есть вся важная информация, содержащаяся в GTFS, и преобразование будет тривиальным.
Существует некоторое основанное на GTFS программное обеспечение, такое как OpenTripPlanner , которое также может выполнять маршрутизацию пешеходов / автомобилей / велосипедов с использованием OpenStreetMap .
Однако , код маршрутизации недостаточно хорошо задокументирован (по крайней мере, из того, что я нашел), и мне все это не нужно.
Все, что мне нужно, это хороший обзор алгоритмов, которые я мог бы использовать, их производительность, возможно, какой-нибудь псевдокод.
Итак, вопрос , учитывая список остановок, маршрутов и времени прибытия / отправления / путешествия, как я могу легко найти самый быстрый путь от остановки A до остановки B?