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