В соавторстве с Rajesh Kumar Singh, Sanskriti Sinha, Jairaj Sathyanarayana

1. Постановка проблемы

Поддержание оптимального распределения спроса и предложения по зонам города в режиме реального времени - важный аспект гиперлокального бизнеса по доставке еды. Здесь зоны - это небольшие географические точки внутри города, которые рассматриваются как операционные кластеры. Руководители по доставке (DE) связаны с зоной, и все действия, связанные с управлением разрывом между спросом (получаемыми заказами) и доступным предложением DE, выполняются на уровне зоны. Разрыв между спросом и предложением может возникать по разным причинам - от внезапного всплеска спроса до нехватки логинов DE из-за дождей, конкуренции и т. Д.

Еще одним важным фактором разрыва спроса и предложения является то, что мы называем межзональными заказами. Несмотря на то, что границы зоны построены таким образом, что большинство ресторанов и клиентов находятся в одной зоне, нельзя избежать заказов между зонами. В некоторых межзональных заказах DE покидают свои выделенные («домашние») зоны и не получают другого приказа вернуться в свою домашнюю зону из-за дисбаланса спроса и предложения, создаваемого межзональными заказами. Этот дисбаланс приводит к накоплению DE в одних зонах и нехватке в других, что приводит к снижению использования DE в зонах с низким спросом, а также к потере заказов из-за недоступности DE в зонах с высоким спросом.

Следовательно, для контроля дисбаланса спроса и предложения на уровне зоны требуется способ делать рекомендации по перемещению ЭД по зонам в реальном времени. Эти рекомендации должны быть прогнозными / упреждающими (обычно на 15 минут вперед), за исключением которых система Stress в конечном итоге будет постепенно сокращать прием новых заказов для предотвращения задержек и отмен, что, в свою очередь, приводит к невыполненному спросу, что приводит к плохому CX для наших клиентов.

2. Подход

Наше решение состоит из четырех частей (схема ниже).

  • Создание суперзон
  • Четкие определения спроса и предложения, соответствующие стрессу в системе
  • Модели машинного обучения для прогнозирования спроса и предложения в реальном времени на следующие 15 минут.
  • Механизм оптимизации для сопоставления зон избытка и дефицита предложения и выработки рекомендаций по перемещению для DE

2.1 Создание суперзон

Суперзона увеличивает зону доставки DE за счет объединения близлежащих зон. Движение DE, которое изначально было ограничено отдельными зонами, теперь расширено до суперзоны. У этой конструкции есть два преимущества. Во-первых, это упрощает решение задачи оптимизации движения ДЗ для каждой суперзоны независимо. Без суперзоны эффективности DE потенциально препятствует их перемещение в произвольные, потенциально незнакомые зоны для обслуживания межзональных заказов. С суперзонами разработчикам нужно только ознакомиться с зонами, которые являются частью их «домашней» суперзоны. Одним из важных аспектов построения суперзоны является то, что даже несмотря на то, что оптимизация выполняется на уровне суперзоны, все прогнозы спроса и предложения по-прежнему выполняются для отдельных зон. Конструкция суперзоны используется только в части решения Оптимизатора, поскольку фактический DE по-прежнему нанимается для конкретной зоны, и все бизнес-операции выполняются на уровне зоны. Таким образом, нет никаких изменений на местах, необходимых для реализации движения DE в реальном времени.

2.2. Определения спроса и предложения

Чтобы оптимизировать движение DE, нам нужно последовательное и исчерпывающее определение спроса и предложения, которое хорошо отражает наземное напряжение. Прежде чем приступить к определению спроса, необходимо понять два важных термина: пакетные заказы и заказы невыполненной работы. Заказы, которые размещаются из близлежащих ресторанов и имеют близлежащие пункты доставки, могут быть назначены одному и тому же DE для повышения эффективности, считая их пакетными заказами. Журнал невыполненных партий представляет собой заказы, размещенные в предыдущем временном окне и ожидающие назначения.

Ниже приведены возможные определения зонального спроса:

  1. Спрос: общее количество обработанных заказов.
  2. Спрос: общее количество пакетных заказов + отставание неназначенных пакетов
  3. Спрос: общее количество пакетных заказов + отставание неназначенных пакетов - количество пакетных заказов, еще не готовых к назначению

Мы определили поставку как количество DE, которые свободны (еще не назначены ни одному заказу) или станут бесплатными в течение следующих 15 минут.

Мы вычисляем actual_deficit как разницу между спросом и предложением в зоне. Более высокий фактический_дефицит означает больший спрос, чем доступные на местах DE, эта ситуация представляет собой напряжение в системе и может привести к потере заказов.

Мы начали с первого определения спроса, чтобы выяснить, когда спрос достигнет пика. Согласно расчету actual_deficit (рис. 2), мы не смогли увидеть никакого напряжения, которое указывает на то, что большую часть времени это была зона с избытком DE.

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

стресс = Общее количество активных заказов / Общее количество зарегистрированных DE

Как показано на рис. 3, между отметками времени с 233080 по 233140 наблюдается высокое напряжение, но фактический_дефицит всегда ниже 0. Одна из вещей, которые мы проигнорировали в определении 1, заключалась в том, что эффект задержки назначения. Задержка назначения складывается из двух факторов - отставания и вторичного распространения. Допустим, текущее время - 21:00, а размер окна - 15 минут, побочные эффекты и отставание определяются следующим образом:

Дополнительный эффект: заказы, размещенные в текущем окне и назначенные в следующем окне с 9.15 до 21.30.

Backlog: заказы, размещенные до 21:00, но назначенные в текущем окне. Задержка для этого окна будет вторичным эффектом для предыдущего окна.

Предположение в определении 1 заключалось в том, что отставания для последующих окон равны, что означает, что отставание для окна 7 PM будет примерно таким же для 7.15 PM.

На рис. 4 мы наблюдали увеличение значений Backlog, особенно в часы пик. Это компонент, которого нам не хватало в определении 1 спроса. Эта дополнительная коррекция отставания, рассматриваемая в определении 2, составляет 30% потребности в пиковое время.

После исправления этого в определении 2 мы наблюдали значительные улучшения, особенно в слотах для обеда и ужина. Теперь мы приблизились к реальной картине, где мы видим дефицит во время обеденного пика. Кроме того, корреляция между actual_demand и стрессом теперь в 6 раз выше по сравнению с определением 1.

Таким образом, мы пришли к выводу, что определение 2 лучше отражает спрос. Определение 3 оказалось трудно вычислить из-за сложности, связанной с вычислением задержки назначения в будущих заказах и, следовательно, припаркованных на данный момент.

Расчет поставки включает в себя определение количества DE, подлежащего освобождению, во временном окне. Здесь мы рассмотрели три параметра.

  1. Назначенный DE: количество DE, которым назначено выполнение пакетного заказа в 15-минутном окне.
  2. DE без активности: количество DE, которые доставили заказ в течение предыдущего 15-минутного окна и были назначены на новый пакетный заказ в последующем 15-минутном окне.
  3. Занят DE: DE, которые доставляют заказы в зоне (местоположение клиента), а также привязаны к этой зоне.

Мы добавляем эти три параметра, чтобы получить окончательное определение предложения.

2.3 Разработка модели

Мы построили прогностическую модель для прогнозирования спроса и предложения на уровне зоны на 15-минутном горизонте. Поскольку DE необходимо эффективно мобилизовать в суперзонах на основе разрыва спроса и предложения в реальном времени, модели обновляют свои прогнозы (в настоящее время) каждые 2 минуты.

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

У нас есть функции реального времени, которые являются общими для моделей спроса и предложения, такие как идентификатор зоны, время дня, день недели, идентификатор города и т. Д. Эти функции реального времени отправляются в вызовах API вывода. . Мы извлекаем исторические данные о количестве размещенных пакетов и количестве бесплатных отсчетов DE в 15-минутном окне за предыдущий день / неделю.

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

2.4 Оптимизатор

В идеале все бесплатные DE должны быть отнесены к зонам дефицита, но есть также расходы, связанные с перемещением DE. Используя оптимизатор, нам нужно определить движение DE в суперзоне на основе спроса и предложения составляющих зон. Мы используем подход ограниченной оптимизации (CO), как только мы прогнозируем спрос и предложение для каждой из зон.

Комбинированная многоцелевая функция:

y {i, j} - переменная решения, представляющая присвоение i-го DE j-й зоне.

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

Ограничение №1: Ограничения равенства для контроля текущего местоположения DE.

  • DE следует назначить только одной зоне среди всех применимых зон.

Ограничение № 2: Ограничения неравенства по отношению к спросу и предложению в зонах поглотителя и источника.

  • Зона с дефицитом DE должна закупить DE, чтобы уменьшить его дефицит.
  • Зона с излишком в DE должна обеспечить удовлетворение внутреннего спроса (перед поставкой DE в зоны дефицита)

Ограничение №3: все "занятые" DE должны быть ограничены родительской / настоящей зоной.

Мы использовали Gurobi для решения этой проблемы с CO. Эта система в настоящее время находится в теневом / экспериментальном режиме.

3. Показатели оценки

Мы используем wMAPE для оценки точности прогнозов спроса и предложения. В нашем текущем наборе моделей wMAPE находится в диапазоне 10–15%.

Получив прогнозы спроса и предложения, мы рассчитываем дефицит и оцениваем точность его направленности. Мы рассчитываем точность и повторяемость зон источника и погружения, что подразумевает, выполнено ли предполагаемое движение в правильном направлении или нет. Например, если DE ошибочно направлен на движение к исходной зоне, это приводит к переизбытку предложения в этой зоне и в конечном итоге увеличивает время ожидания назначения DE. С другой стороны, DE, неправильно мобилизованный из зоны стока, еще больше увеличивает разрыв между спросом и предложением в этой зоне. В настоящее время наши показатели точности поглотителя и источника составляют 90% +.

Наконец, мы измеряем точность рекомендаций, которая дает нам процент случаев, когда оптимизатор правильно рекомендует DE перейти из одной зоны в другую.

Некоторые дополнительные уроки

Иногда трудно полностью понять бизнес-проблему только на основе ее постановки и допущений. Необходима тщательная проверка на основе данных, чтобы выявить нюансы и внести ясность. Обнаружение определения спроса 2 является примером этого. Переход к этому определению не только прояснил постановку проблемы, но также привел к 3-кратному повышению точности источника / приемника. На передней панели оптимизатора, в текущей цели,

возможно, что во время стресса DE распространяются на далеких расстояниях, достигающих 4–6 км / с. Тогда будет компромисс между перемещением DE на расстоянии 4 км и достижением цели перемещения самого DE.

Этот гиперпараметр необходимо настроить на этапе эксперимента, чтобы найти правильный баланс между стоимостью и выгодой от движения DE.