Алгоритмы vs. безбилетники: как вычислить зайца в транспорте с помощью математики

Кейс F5Devs, посвященный решению проблемы транспортных контролеров

Алгоритмы vs. безбилетники: как вычислить зайца в транспорте с помощью математики

Проблема безбилетников в общественном транспорте актуальна для любого региона: согласно данных ГКУ «Организатор перевозок» в Москве за 2019 г. было выписано порядка 500 тыс. штрафов на общую сумму 632 млн рублей, а по данным АО «Яргоэлектротранс» в Ярославле около 40% пассажиров не оплачивают поездку. Постоянное повышение цен на билеты скорее усугубляет проблему, а не решает ее. В результате страдают перевозчики — убытки исчисляются миллионами рублей. Вручную решить такую задачу невозможно: контролеры физически не смогут проверить каждую единицу транспорта, к тому же время нужно закладывать не только на проверку, но и на диалог с пассажирами. Но там, где не может справиться человек, на помощь приходят технологии.

К нам обратилась компания, занимающаяся разработкой и внедрением информационно-технологических решений в области пассажирского транспорта. На тот момент она реализовала решение по диспетчеризации и управлению общественным транспортом в столице одного из регионов и хотела расширить его функционал, чтобы увеличить выручку от использования наземного транспорта.

Постановка задачи и возникшие с данными трудности

Задача была ясна – разработать решение, которое позволит увеличить эффективность прохода контролеров, а именно, за смену встретить наибольшее количество безбилетников. Для ее решения нам нужно было собрать исторические данные о транзакциях (оплатах), маршрутах контролеров, GPS транспорта и расписании.

Однако на этом этапе возникла сложность: данные противоречили друг другу, телеметрия транспорта местами не совпадала с транзакциями. Необходимо было выработать методологию очистки данных и повышения их качества. Также, чтобы разрешить эту проблему системно, заказчику потребовалось связаться с вендором терминалов, чтобы привести данные в порядок в будущем.

Как итоговое решение ищет зайцев

Разработанное решение представляет собой веб-сервис с RESTful API с основными методами, позволяющими:

  • Прогнозировать количество безбилетников на определенном участке маршрута в определенное время
  • Динамически формировать оптимальные маршруты для контролеров на день с учетом сменности, начала их маршрута и прочих факторов.

Работает это следующим образом:

  1. Анализируется информация о актуальном пассажиропотоке и проведенных транзакциях. Для этого весь наземный транспорт оснастили датчиками пассажиропотока, которые подсчитывают количество вошедших и вышедших пассажиров.
  2. Там, где, грубо говоря, фиксируется самое низкое количество транзакций при большом объеме пассажиров, предположительно больше всего зайцев.
  3. Далее алгоритм учитывает количество контролеров, режим и время на проверку транспортного средства.
  4. В результате формируется оптимальный график маршрутов групп контролеров с указанием времени захода в транспорт, времени нахождения и времени выхода, а также указанием конкретных остановок. Контролеры получают заказ-наряд на проверку билетов и отправляются на соответствующие маршруты, чтобы ловить зайцев. Если в течение дня контролер не попадает в график, то он динамически перестраивается.

Что внутри сервиса: комбинированный подход

Полученный алгоритм представляет собой комплексное решение: в нем использовались модели как Machine Learning, так и Operations Research. С помощью ML предсказываются количество безбилетников в конкретный момент времени в конкретном маршруте, а c OR – оптимизируется суммарный проход всех контролеров с учетом указанной выше целевой функции. Модели представляют собой веб-сервис с доступом по API.

Результаты

Для оценки эффективности работы алгоритма заказчик сравнил работу контролеров по стандартному и новому графику. По итогам выяснилось, что на маршрутах, построенных нашим алгоритмом, контролеры поймали на 43% больше безбилетников. Кроме того, на 12% возросло число пассажиров, решивших купить билет в присутствии контролера.

Итоговое решение заказчик внедрил в свой продукт, который впоследствии планируется масштабировать на все виды общественного транспорта в других регионах.

Что делать, если моей компании нужен похожий сервис

Если вам понравился кейс и есть задачи или процессы, которые требуют оптимизации, обращайтесь к нам. Мы поможем найти оптимальное решение, сформулируем и протестируем гипотезы, а также просчитаем возможный экономический эффект от каждой. Почта для связи: email@f5devs.ru

77
4 комментария

Комментарий недоступен

1

Спасибо большое за комментарий! Да, вы правы, такая цель тоже имеет место быть) правильно распоряжаться человеческими ресурсами очень важно
а то, что вполне очевидно, где больше зайцев — не спорим с этим, так и есть, это просто важно учесть в создании модели, как и остальные данные!

"Что внутри сервиса: комбинированный подход
Полученный алгоритм представляет собой комплексное решение: в нем использовались модели как Machine Learning, так и Operations Research. С помощью ML предсказываются количество безбилетников в конкретный момент времени в конкретном маршруте, а c OR – оптимизируется суммарный проход всех контролеров с учетом указанной выше целевой функции. Модели представляют собой веб-сервис с доступом по API."
а можно какие-то детали?
вообще решение выглядит как некоторый анализ изменения функций построенных на пассажирских потоках

Верно, только не только пассажиропоток, но и транзакции оплат.

Первая модель регрессии обучается на этих исторических данных и потом прогнозирует на каждый момент времени на каждый участок маршрута, сколько будет безбилетников. Затем эти предсказания накладываются на динамический граф, где, грубо говоря, вершина — это участок маршрута и время, а ребро — это переход между разными вершинами контролером, выраженный временем и расстоянием. Вторая модель, используя данный граф, обходит его и подбирает для n контролеров n маршрутов так, чтобы максимизировать количество увиденных зайцев за смену.

1