@Visphord

Как построить оптимальный путь для железнодорожных поездок?

Добрый день.

Пытаюсь разработать планировщик поездок железнодорожным транспортом.
Имеется граф поездов, вершинами которого являются станции, а ребрами соответственно поезда. Одну пару вершин может соединять несколько ребер -> из одной станции в другую может идти несколько поездов.
Так-же в свойствах ребер есть время "в пути", время прибытия и время отправления.
Нужно найти оптимальный путь из вершины А в вершину Б, с учетом времени пересадки (и соответственно ожидания поезда).

Подскажите, пожалуйста, в какую сторону копать?
Пробовал применить алгоритм дейкстры - но не смог разобраться с пересадками (там всегда ищется минимальное время в пути, соответственно алгоритму очень "выгодно" менять поезда, что совсем не выгодно реальному человеку).
Т.е. получается что приходится "расширять" условия задачи: требуется искать не только по одному критерию - времени в пути, но еще и по количеству пересадок, а алгоритм дейкстры "не умеет" искать по двум критериям.
К тому-же, очень хотелось бы иметь возможность искать несколько альтернативных путей.

Может быть есть какое-то другое "решение" или алгоритмы? Думаю я не первый столкнулся с такой задачей, хотелось бы знать в каком направлении копать.

Заранее спасибо за ответы.
  • Вопрос задан
  • 486 просмотров
Пригласить эксперта
Ответы на вопрос 2
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Я бы делал так
  • Тривиальным поиском в ширину найти все пути от Отправление до Назначение
  • Запросить критерии идеального пути Время, Цена, Пересадки, ТочкиИнтереса...
  • Кучевой сортировкой выбрать из найденных путей несколько Хэмминг ближайших по указанным критериям к идеальному
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Кратчайший путь (графы)
Про "выгодность" - расставляйте веса верно!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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