Блок задач

6. Зимние проекты

Сложность 7

Проект «Успеть вовремя»

Реализовать поиск маршрута и расчёт схемы проезда между остановками опираясь на плановое расписание транспорта на сайте nskgortrans.ru.

Входные данные

Файл с плановым расписанием

Студенты могут как самостоятельно взять расписания с сайта для некоторого набора маршрутов, так и воспользоваться уже скачанными и обработанными данными в формате CSV (по состоянию на 2015.12.20).

вид_транспорта,номер_маршрута,направление,тип_расписания
,,,,ID_остановки,имя_остановки,  ,время_рейса1,время_рейса2,время_рейса3,...
,,,,ID_остановки,имя_остановки,  ,время_рейса1,время_рейса2,время_рейса3,...
...
вид_транспорта,номер_маршрута,направление,тип_расписания
,,,,ID_остановки,имя_остановки,  ,время_рейса1,время_рейса2,время_рейса3,...

Пример

bus,65,A,weekdays
,,,,00135,Общ. торговый центр,                            ,06:30,07:30,08:30,09:30,...
,,,,00232,Демакова ул.,                                   ,06:32,07:32,08:32,09:32,...
,,,,01184,Арбузова ул.,                                   ,06:35,07:35,08:35,09:35,...
,,,,00061,Микрорайон "Щ",                                 ,06:37,07:37,08:37,09:37,...
,,,,01184,Арбузова ул.,                                   ,06:39,07:39,08:39,09:39,...
,,,,00058,Магазин №12,                                    ,06:41,07:41,08:41,09:41,...

Параметры поиска маршрута

  • Название начальной остановки
  • Название конечной остановки и желаемое время прибытия

Задача

Система опираясь на плановое расписание должна определить набор возможных маршрутов (с пересадками) и выделить наиболее оптимальный из них (отсортировать по оптимальности), чтобы пользователь не опоздал и потратил на дорогу наименьшее возможное кол-во времени.

Подразумевается так же наличие некоторого "защитного интервала" времени для пересадок (необходимо чтобы время прибытия отстояло от времени следующего отправления на 2-5 минут).

Выходные данные

Набор маршрутов с остановками и временами посадки / пересадки / прибытия.

Тестирование

Необходимо написать полноценный набор тестов, охватывающий все варианты поиска маршрутов: приехать на вокзал Новосибирск-Главный в 3 ночи, построение маршрута с пересадкой, и т.п.