Оптимальность будет определяться общей длиной пути, суммарной стоимостью, временем, затраченным на преодоление маршрута (включая время между пересадками), количеством пересадок и так далее.
«В эпоху информационных технологий и развитой транспортной системы решение задачи построения маршрута от пункта А до пункта Б с использованием средств общественного транспорта является обыденной операцией. Однако, несмотря на востребованность информационной поддержки и автоматизации поиска оптимальных маршрутов, на сегодняшний день отсутствует удобный инструментарий решения подобных задач.
Большинство поисковых сервисов предлагают не поиск удобного маршрута, а выбор из уже заготовленных списков маршрутов. В случае отсутствия прямого сообщения (возможности проезда на одном виде транспорта без пересадок) это часто приводит к появлению сообщения о том, что маршрут не существует», — говорит автор проекта Роман Алексеев.
По мнению разработчика, для любых двух железнодорожных станций общего пользования должен существовать маршрут, их соединяющий. Возможно, с одной или несколькими пересадками. Но доступных инструментов построения таких маршрутов и тем более выбора оптимального по какому-либо критерию пути нет. Сегодня пользователю приходится самостоятельно формировать и оценивать возможные варианты, руководствуясь знаниями географии и информацией, полученной из сторонних источников.
«Еще сложнее выглядит задача построения маршрута, предусматривающая использование различных видов транспорта. Например, при формировании маршрута из города Курган в город Ноябрьск разумным выглядит привлечение автобусного сообщения на участке Курган — Тюмень вместо того, чтобы искать железнодорожный маршрут с пересадками, заведомо неоптимальный по общей длине пути», — поясняет Роман.
При разработке удобного инструментария поиска оптимального маршрута по заданным критериям оптимальности (с учетом возможности использования как поездов дальнего следования, так и электропоездов) для сбора данных выбрана программная платформа Node.js. Успешное выполнение 1089 запросов обеспечило наполнение словаря в количестве 16 194 станций и остановок.
Были определены географические координаты (широта и долгота) станций, выгруженных с сайта РЖД. В итоге после операций сбора данных разработчики Института математики и компьютерных наук Тюменского государственного университета получили 11 312 записей о железнодорожных станциях, содержащих три поля: название станции, широта и долгота. Кроме того, была создана адаптивная таблица, содержащая карту России с учетом плотности расположения железнодорожных станций.
На данный момент выполнен сбор и агрегирование данных обо всех железнодорожных станциях России и СНГ, а также выбран алгоритм, позволяющий с относительно небольшими затратами ресурсов осуществлять поиск маршрутов, оптимальных по одному из заданных критериев. Кроме того, тюменские программисты разработали и заполнили адаптивную таблицу, содержащую информацию для построения оптимальных маршрутов.
«Для завершения проекта необходимо доработать алгоритм построения оптимального маршрута, собрать и агрегировать информацию о стоимости билетов и расписании движения поездов. Кроме того, предстоит разработать удобный пользовательский интерфейс, разместить поисковый сервис на сервере в интернете, проверить устойчивость к нагрузкам и провести стресс-тесты», — сообщил Роман Алексеев.