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