Алгоритм поиска проезда на общественном транспорте

Подскажите метод (алгоритм) или ссылки по теме поиска проезда на общественном транспорте. Имеется в БД список остановок автобусов (троллейбусов, трамваев), у каждой остановки имеются координаты, список маршрутов проходящих через нее, также имеется в БД список самих маршрутов и координаты линий (координаты точек описывающих линию маршрута). Как реализовать поиск маршрута (с учетом возможных пересадок) по аналогии с 2ГИС или Яндекс карт?
  • Вопрос задан
  • 4954 просмотра
Решения вопроса 1
dobeer
@dobeer Автор вопроса
Спасибо за ответы, надо курить алгоритм поиска A*
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@cat_crash
Пытался решить данную задачу алгоритмом прохождения графа, перебирая каждую остановку и ищя смежные маршруты. Например на остановке 1 есть марршруты A,B,C; на остановке 2 C,Z,K. Значит от остановки 1 до остановки 2 можно добраться маршрутом C. Для «пересадок» делал рекурсивный обход остановок каждого из маршрутов начальной оставки.
НО как показала практика — алгоритм ООООЧЕНЬ тормозной и генерит много запросов. Уверен что есть более правильные алгоритмы
Ответ написан
DanielWolf
@DanielWolf
Поиск по графу?
из влгоритмов — A*, MST, TSP
Ответ написан
Комментировать
dobeer
@dobeer Автор вопроса
При моих размышлениях я приходил к аналогичному алгоритму, но для поиска пересадок очень не эффективно, тем более если пересадок несколько. Мне кажется требуются еще какие либо данные по маршрутам или остановкам для поиска. Спасибо за ответ, ждем новых идей.
Ответ написан
Комментировать
@mresc
У нас в системе резервирования Twiton.com пересадки для автобусных линий перебором считаются, все маршруты в память грузятся в древовидную структуру и перебираются. Более эфективные алгоритмы не пошли т.к. пользователи могут при поиске маршрута задавать макс. время ожидания на пересадке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы