Исследования

«Средняя миля — это эстафета»: Google открыла генератор MilleMiglia для логистических бенчмарков

Google Research представила MilleMiglia — открытый генератор инстансов на C++ для реалистичных и при этом не раскрывающих коммерческих данных бенчмарков логистики средней мили. Эта часть маршрута даёт заметную долю затрат и почти не изучена: публичных данных нет, потому что компании считают топологии сетей и объёмы спроса конфиденциальными, а обычные VRP-солверы к средней миле неприменимы из-за фиксированных расписаний, лимитов пропускной способности центров и синхронизации рейсов. Код и документация опубликованы на GitHub.

«Средняя миля — это эстафета»: Google открыла генератор MilleMiglia для логистических бенчмарков

18 сентября 2026 года Google Research рассказала о MilleMiglia — генераторе инстансов для задач логистики средней мили. По замыслу авторов, проект сокращает разрыв между академической теорией и промышленной логистикой, давая открытые и реалистичные бенчмарки, которые позволяют исследователям оптимизировать сложные сети средней мили, а в итоге — делать глобальные цепочки поставок устойчивее и эффективнее. Генератор написан на C++ и создаёт реалистичные бенчмарки задач доставки на средней миле.

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

Первая, последняя и средняя миля

Различие между этапами определяется маршрутом отдельной отправки, а основная операционная цель одна — эффективно использовать парк машин для посещения множества точек. На первой и последней миле конкретная отправка остаётся в одной машине от пункта отправления до пункта назначения; это варианты классической задачи маршрутизации транспорта (VRP), где парк оптимизируется за ограниченное время, обычно в пределах одного дня, а сам вызов сводится к назначению и последовательности остановок.

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

Почему обычные VRP-солверы не подходят

В традиционном VRP — включая открытые инструменты вроде OR-Tools или специализированные API Google Maps Platform Route Optimization — цель обычно в оптимизации маршрутов парка, а фокус на последовательности остановок под жёсткие клиентские сроки. В отличие от последней мили, у средней есть дополнительная гибкость: груз может переходить между машинами. Авторы моделируют это измерение как задачу многопродуктового потока на пространственно-временном графе: узел — это конкретный распределительный центр в конкретном временном интервале, а дуга — движение машины во времени либо хранение отправки в центре.

Жёсткие ограничения средней мили трудно ослабить, не исказив структуру реальной задачи: машины ходят по фиксированным расписаниям, у распределительных центров есть физические лимиты на объём сортировки и кросс-докинга в час, а прибытие одной машины служит предпосылкой для отправки грузов на другой. Из-за этих зависимостей существующие VRP-солверы к средней миле неприменимы: задача требует последовательности промежуточных распределительных центров и назначений между несколькими машинами, часто на горизонте нескольких дней.

Как MilleMiglia строит сети

Генератор опирается на статистические распределения, чтобы синтетические сети выглядели как настоящие распределительные сети и не раскрывали частную информацию. Распределительные центры размещаются гравитационными моделями или пространственной кластеризацией, чтобы отражать реальную плотность населения и промышленности, а отправки создаются парами «источник — назначение» с реалистичными распределениями объёма и веса.

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

Инстансы сериализуются через Protocol Buffers, поэтому всё разнообразие данных хранится в одном файле на инстанс: данные получаются компактными и легко читаются солверами, написанными на разных языках программирования. В отличие от VRP с множеством вариантов — CVRP с вместимостью, VRPTW с временными окнами, PDPTW с доставкой и временными окнами — формат средней мили содержит все интересные ограничения сразу: фиксированные расписания машин, лимиты пропускной способности центров и сложные предпосылки синхронизации являются частью структуры задачи.

Диапазон инстансов и будущий солвер

Замысел — дать сообществу диапазон инстансов: маленькие, эквивалентные академическим «игрушечным» задачам для проверки точных алгоритмов, и промышленные континентального масштаба, где нужны продвинутые эвристики и метаэвристики, а также промежуточные размеры и сложность. Помимо этого генератор поддерживает сценарии обучения: он способен создавать очень большие наборы данных для тренировки ML-алгоритмов.

Авторы называют MilleMiglia первым шагом к стандартизированному набору бенчмарков для логистики средней мили — аналогично тому, что CVRPLIB даёт сообществу VRP. Проект вырос из продолжающегося сотрудничества Google с академическими партнёрами из UniBrescia и ENPC Paris: помимо генерации инстансов авторы работают над специализированным солвером и API под операционные задачи средней мили. Исследование в основном выполнили Aymane Lotfi во время работы студентом-исследователем в Google и Matteo Petris (теперь в ENPC Paris).

Репозиторий or-tools/millemiglia описывает себя как инструмент генерации разнообразных инстансов логистических сетей и посылок, который должен облегчить исследования и разработку в области оптимизации средней мили. Сборка проекта выполняется через CMake, а запуск — одной командой с параметрами вроде числа хабов, отправок, линий и максимальной длины линии.

Первоисточники

  1. Google Research — «MilleMiglia: A realistic instance generator for middle-mile logistics» (18 сентября 2026)
  2. GitHub — or-tools/millemiglia: Instance Generator for Middle Mile Logistics Optimization