Планирование курьерского ресурса в сети пиццерий

No items found.

Автоматизация планирования курьерских смен: стабильное паросочетание, теория очередей и ML для сети из ~100 пиццерий и ~300 курьеров. Невыходы снижены на 20%, время логистов — с часов до минут.

Общая информация

Название проекта: Автоматизация планирования курьерского ресурса в сервисе доставки.

Период реализации: март 2025 — сентябрь 2025 (опытная эксплуатация).

Участники: Команда LamArt — 1 математик, 1 data-инженер.

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

Контекст и предпоссылки

Исходная ситуация. Сеть пиццерий (~100 точек, ~300 курьеров) с собственной доставкой. Расписание курьеров сводит два противоположных требования: мало курьеров — заказы едут дольше, клиенты отказываются из-за ожидания; много курьеров — работа размывается, каждый зарабатывает меньше (оплата за доставленный заказ). Баланс держали логисты вручную: распределяли курьеров по зонам и сменам на основе опыта.

Причины запуска проекта. Ручное планирование не масштабировалось — росло вместе с числом заказов и упиралось в потолок раньше, чем сам сервис. Логисты тратили несколько часов на составление расписания, не учитывали пожелания курьеров и их рейтинги, что приводило к невыходам на подтверждённые смены.

Цели и задачи. Перевести прогноз спроса в потребность в курьерах по единому правилу; собирать расписание автоматически, оставив логисту проверку; снизить невыходы на подтверждённые смены; удерживать стоимость смены при заданных ограничениях по качеству доставки.

Ожидаемые результаты. Автоматическое составление расписания; единое правило расчёта потребности; снижение невыходов; масштабируемость на новые города.

Процесс реализации

Ключевые этапы.

  1. Прогноз спроса. Модель временных рядов прогнозирует количество заказов на два дня вперёд в разрезе логистической зоны и часа. Точность прогноза ~10% MAPE. Пересчёт раз в сутки.
  2. Перевод заказов в курьеров. Теория очередей с конечной очередью и конечным временем ожидания (клиент уходит по истечении времени ожидания). На вход задаются бизнес-ограничения: целевое среднее время доставки и допустимая доля недоставленных заказов. Из истории берутся среднее время доставки в зоне и доля невыходов.
  3. Вывод на смены. Задача о стабильном паросочетании — модификация алгоритма Гейла-Шепли. С одной стороны слоты, с другой курьеры с рейтингом и указанным временем, когда им удобно работать. Курьер получает приглашение и подтверждает; незакрытые слоты уходят вторым прогоном.
  4. Оценка стоимости смены. ML-модель регрессии даёт оценку выплат при известном числе заказов и выведенных курьеров. Фичи — все исторические данные по выплатам в различных агрегациях (скользящие окна и др.). Из вариантов, удовлетворяющих ограничениям по качеству, выбирается самый дешёвый.
  5. Валидация. Расписание утверждает логист. Бизнес задаёт параметры явно: целевое время доставки и допустимая доля недоставленных заказов.

Используемые технологии. Python, ClickHouse (хранение и агрегация исторических данных), временные ряды, модель регрессии, алгоритм Гейла-Шепли, теория очередей.

Методология. Стабильное паросочетание с предпочтениями сторон; теория очередей с конечным временем ожидания; ML-регрессия для оценки стоимости; явные бизнес-параметры вместо неявного опыта логиста.

Сложности и препятствия.

  • ClickHouse. Основной объём сложности пришёлся на настройку и оптимизацию ClickHouse: агрегации исторических данных, скользящие окна, производительность запросов при росте объёма данных.
  • Интеграция с бэкендом. Стоимость смены — функция от решений другого алгоритма (распределения заказов между курьерами). Пришлось строить ML-прокси вместо прямого расчёта.
  • Холодный старт. Отсутствие исторических данных по новым зонам. Решено переносом параметров из аналогичных зон.
  • Результаты и выводы

    Фактические результаты. Выведены в опытную эксплуатацию ~100 пиццерий, ~300 курьеров.

    Отклонения от плана. Изначально планировалось прямое вычисление стоимости смены, но из-за зависимости от внешнего алгоритма распределения заказов пришлось построить ML-модель-прокси.

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

    Уроки и рекомендации

    Главные успехи проекта. Формулировка «курьер — не единица ресурса, а сторона с предпочтениями» изменила подход: стабильное паросочетание вместо классического покрытия спроса дало снижение невыходов на 20% без дополнительных затрат. Явные бизнес-параметры (время доставки, доля недоставленных) позволили бизнесу управлять компромиссом между стоимостью и качеством напрямую, без участия разработчиков.

    Преодолённые вызовы. ClickHouse оказался основным источником сложности — не алгоритмы, а инфраструктура данных. Инвестиции в аналитическую инфраструктуру окупились многократно: скользящие окна, агрегации и исторические данные стали фундаментом и для прогноза, и для ML-модели, и для мониторинга.

    Рекомендации для будущих проектов. Закладывать аналитическую инфраструктуру (ClickHouse или аналог) с первого дня — без неё ни прогноз, ни ML-модель, ни мониторинг не работают. Формализовать бизнес-параметры как явные входные данные модели, а не как неявное знание логиста — это даёт бизнесу рычаг управления и снижает зависимость от конкретных людей. Использовать современные инструменты (LLM, vibe coding) для ускорения прототипирования: то, что раньше требовало двух монографий, сейчас решается за дни.

    Ключевые факторы успеха. Математическая глубина (теория очередей, стабильное паросочетание) в сочетании с практическим ML (регрессия на исторических данных); компактная команда (2 человека), которая контролировала весь стек от данных до внедрения; тесное взаимодействие с логистами для валидации бизнес-параметров.

    Теги кейса

    планирование ресурса, теория очередей, стабильное паросочетание, алгоритм Гейла-Шепли, временные ряды, регрессия, ClickHouse, доставка, логистика, автоматизация расписания