Рассказываем, как решили проблему контролеров
Задача
Создать решение для борьбы с зайцами
Проблема безбилетников в общественном транспорте актуальна для любого региона: согласно данных ГКУ «Организатор перевозок» в Москве за 2019 г. было выписано порядка 500 тыс. штрафов на общую сумму 632 млн рублей, а по данным АО «Яргоэлектротранс» в Ярославле около 40% пассажиров не оплачивают поездку. Постоянное повышение цен на билеты скорее усугубляет проблему, а не решает ее. В результате страдают перевозчики — убытки исчисляются миллионами рублей. Вручную решить такую задачу невозможно: контролеры физически не смогут проверить каждую единицу транспорта, к тому же время нужно закладывать не только на проверку, но и на диалог с пассажирами. Но там, где не может справиться человек, на помощь приходят технологии.
К нам обратилась компания, занимающаяся разработкой и внедрением информационно-технологических решений в области пассажирского транспорта. На тот момент она реализовала решение по диспетчеризации и управлению общественным транспортом в столице одного из регионов и хотела расширить его функционал, чтобы увеличить выручку от использования наземного транспорта.
Постановка задачи и возникшие с данными трудности
Задача была ясна – разработать решение, которое позволит увеличить эффективность прохода контролеров, а именно, за смену встретить наибольшее количество безбилетников. Для ее решения нам нужно было собрать исторические данные о транзакциях (оплатах), маршрутах контролеров, GPS транспорта и расписании.
Однако на этом этапе возникла сложность: данные противоречили друг другу, телеметрия транспорта местами не совпадала с транзакциями. Необходимо было выработать методологию очистки данных и повышения их качества. Также, чтобы разрешить эту проблему системно, заказчику потребовалось связаться с вендором терминалов, чтобы привести данные в порядок в будущем.
Решение
Разработка алгоритма для поиска безбилетников
Разработанное решение представляет собой веб-сервис с RESTful API с основными методами, позволяющими:
- Прогнозировать количество безбилетников на определенном участке маршрута в определенное время
- Динамически формировать оптимальные маршруты для контролеров на день с учетом сменности, начала их маршрута и прочих факторов.
Работает это следующим образом:
- Анализируется информация о актуальном пассажиропотоке и проведенных транзакциях. Для этого весь наземный транспорт оснастили датчиками пассажиропотока, которые подсчитывают количество вошедших и вышедших пассажиров.
- Там, где, грубо говоря, фиксируется самое низкое количество транзакций при большом объеме пассажиров, предположительно больше всего зайцев.
- Далее алгоритм учитывает количество контролеров, режим и время на проверку транспортного средства.
- В результате формируется оптимальный график маршрутов групп контролеров с указанием времени захода в транспорт, времени нахождения и времени выхода, а также указанием конкретных остановок. Контролеры получают заказ-наряд на проверку билетов и отправляются на соответствующие маршруты, чтобы ловить зайцев. Если в течение дня контролер не попадает в график, то он динамически перестраивается.
Что внутри сервиса: комбинированный подход
Полученный алгоритм представляет собой комплексное решение: в нем использовались модели как Machine Learning, так и Operations Research. С помощью ML предсказываются количество безбилетников в к онкретный момент времени в конкретном маршруте, а c OR – оптимизируется суммарный проход всех контролеров с учетом указанной выше целевой функции. Модели представляют собой веб-сервис с доступом по API.
Результаты
Стали ловить на 43% больше зайцев
Для оценки эффективности работы алгоритма заказчик сравнил работу контролеров по стандартному и новому графику. По итогам выяснилось, что на маршрутах, построенных нашим алгоритмом, контролеры поймали на 43% больше безбилетников. Кроме того, на 12% возросло число пассажиров, решивших купить билет в присутствии контролера.
Итоговое решение заказчик внедрил в свой продукт, который впоследствии планируется масштабировать на все виды общественного транспорта в других регионах.