Google выпустила MilleMiglia, открытый генератор данных для логистики «средней мили»

Google выпустила MilleMiglia, открытый генератор данных для логистики «средней мили»

Google Research совместно с академическими партнёрами из UniBrescia и ENPC Paris открыла исходный код MilleMiglia, генератора реалистичных тестовых наборов данных для задач оптимизации «средней мили» в логистике. Инструмент описан в статье «A Novel Instance Generator for Simulating Middle-Mile Logistics Networks», код и документация выложены на GitHub. «Средняя миля», это участок цепочки поставок между региональными распределительными центрами, в отличие от «первой мили» (от производителя до склада) и «последней мили» (от склада до потребителя). На этом участке груз может передаваться между несколькими разными машинами через сеть распределительных центров, а не ехать одной фурой от точки А до точки Б: например, товар из Гронингена сначала едет в Утрехт, оттуда в Антверпен, затем в Париж и только потом попадает в город доставки, Версаль. На каждом промежуточном узле груз должен успеть на конкретный исходящий рейс по расписанию: опоздание на стыковку означает ожидание до следующего цикла и заметную задержку. Авторы утверждают, что «средняя миля» математически сложнее классической задачи маршрутизации транспорта (VRP), которую решают инструменты вроде OR-Tools или Google Maps Platform Route Optimization: она требует моделирования как многотоварного потока во времени и пространстве, с учётом фиксированных расписаний машин, ограничений пропускной способности узлов и синхронизации пересадок. По их словам, «из-за этих зависимостей существующие решения задачи маршрутизации (VRP) неприменимы к логистике „средней мили“». При этом до сих пор в этой области почти не было открытых данных для исследований: логистические компании держат топологию своих сетей и объёмы перевозок как коммерческую тайну. MilleMiglia решает эту проблему статистически, генератор строит синтетические сети, которые статистически похожи на реальные распределительные сети (на основе комбинации открытых отраслевых данных и данных, переданных партнёрами на непубличной основе), но не раскрывает ничьих реальных данных. Инструмент написан на C++, использует Protocol Buffers для сериализации и хранит каждый сгенерированный экземпляр задачи в одном компактном файле, который можно читать из решателей на разных языках программирования. Помимо тестирования классических решателей, генератор годится и для создания больших синтетических датасетов для обучения ML-моделей. Авторы называют MilleMiglia первым шагом к появлению стандартизированного набора бенчмарков для «средней мили», по аналогии с тем, чем для классической VRP служит библиотека CVRPLIB, и говорят, что хотели бы запустить отраслевой челлендж по этим задачам, чтобы привлечь к ним внимание академических и индустриальных разработчиков решателей. Отдельно упоминается, что команда параллельно работает над специализированным решателем и API именно для задач «средней мили», но сроки их появления не называются. Исследование, по данным поста, в основном провёл Эймани Лотфи в бытность студентом-исследователем в Google, вместе с Маттео Петрисом (сейчас в ENPC Paris); соавтором поста выступил Тибо Кювелье из Google Research, с благодарностью также упомянут Бруно Де Бакер, а научное руководство и поддержку оказала Клаудия Аркетти (сейчас в UniBrescia).

Ключевые факты

  • Google Research вместе с UniBrescia и ENPC Paris выпустила MilleMiglia, открытый C++-генератор реалистичных синтетических бенчмарков для логистики «средней мили».
  • «Средняя миля», перевозка груза между региональными распределительными центрами с пересадками между машинами и жёсткими окнами стыковки, математически сложнее классической задачи маршрутизации (VRP) и до сих пор не имела публичных данных из-за коммерческой тайны логистических компаний.
  • Генератор строит синтетические сети, статистически похожие на реальные, не раскрывая ничьих реальных данных; каждый экземпляр задачи хранится в одном файле формата Protocol Buffers.
  • Авторы называют MilleMiglia первым шагом к стандартизированному набору бенчмарков для «средней мили» (по аналогии с CVRPLIB для VRP) и хотят организовать отраслевой челлендж по этим задачам.
  • Команда параллельно разрабатывает специализированный решатель и API для задач «средней мили», но без объявленных сроков; код и документация MilleMiglia уже доступны на GitHub.

Почему это важно

«Средняя миля», перевозка между распределительными центрами, занимает существенную часть логистических издержек, но в отличие от «первой» и «последней» мили почти не изучена в операционных исследованиях: у неё более сложная математическая структура (грузы пересаживаются между несколькими машинами через сеть узлов с расписаниями и окнами стыковки) и почти нет публичных данных, потому что логистические компании держат топологию сетей и объёмы перевозок как коммерческую тайну. MilleMiglia впервые даёт исследователям открытый, реалистичный, но приватный источник таких данных.

Кому это важно

В первую очередь, исследователям в области операционных исследований и логистической оптимизации, разработчикам решателей задач маршрутизации, а также компаниям и разработчикам, которые строят или тестируют алгоритмы для сетей распределительных центров: производителям, ритейлерам, логистическим операторам. Проект, результат сотрудничества Google Research с University of Brescia (UniBrescia) и ENPC Paris.

Как это применить

Код и документация MilleMiglia доступны на GitHub, включая пример готового экземпляра задачи. Инструмент написан на C++, использует Protocol Buffers и хранит каждый сгенерированный экземпляр в одном компактном файле, который можно читать из решателей на разных языках. Его можно применять и как тестовую площадку для классических решателей, и как источник больших синтетических датасетов для обучения ML-моделей на задачах логистики.

Можно ли доверять

Источник, официальный блог Google Research, материал написан инженерами-авторами проекта и опирается на отдельную научную статью «A Novel Instance Generator for Simulating Middle-Mile Logistics Networks». Проект, совместная работа с университетскими партнёрами (UniBrescia, ENPC Paris), а не только внутренняя разработка Google, что снижает риск маркетингового приукрашивания.

Риски и подводные камни

В посте нет ни количественных характеристик сгенерированных наборов данных (сколько экземпляров, какого размера), ни результатов тестирования решателей на них, ни версии или лицензии репозитория на GitHub. Не указаны и сроки появления анонсированного специализированного решателя и API для «средней мили», пока это только заявленное направление работы.

«Из-за этих зависимостей существующие решения задачи маршрутизации (VRP) неприменимы к логистике «средней мили».»

— исследователи Google Research