Google Research представила MilleMiglia — генератор экземпляров задач на C++ для средней мили логистики. Инструмент создаёт реалистичные и при этом приватные данные, которые можно использовать как benchmark для алгоритмов оптимизации. Исходный код и документация опубликованы на GitHub, работа описана в статье «A Novel Instance Generator for Simulating Middle-Mile Logistics Networks».

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

СегментЧто покрываетОсобенность
Первая миляОт производителя до первичного консолидационного пунктаГруз остаётся в одной машине
Средняя миляМежду распределительными центрами разных регионов и странГруз перегружают и консолидируют в промежуточных центрах
Последняя миляОт распределительного центра до покупателяГруз остаётся в одной машине

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

A map tracking a shipment's journey from a manufacturer in Groningen to a customer in Versailles, categorized by first, middle, and last mile logistics.
A map tracking a shipment's journey from a manufacturer in Groningen to a customer in Versailles, categorized by first, middle, and last mile logistics. · Источник: Google Research Blog

До сих пор академические исследования средней мили тормозились из-за отсутствия публичных данных. Логистические компании считают топологию своих сетей и объёмы спроса чувствительной коммерческой информацией и не раскрывают её. MilleMiglia обходит это ограничение: генератор создаёт синтетические, но реалистичные экземпляры задач, сохраняя приватность реальных сетей. Это позволяет сравнивать алгоритмы на воспроизводимых данных — так же, как в других областях ИИ принято использовать открытые benchmark-наборы.

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

MilleMiglia — не готовая система оптимизации, а инструмент для исследователей и инженеров, которым нужна общая площадка для сравнения методов. Google Research описывает работу как фундаментальный строительный блок для будущих результатов в этой области. Появление открытого генератора может ускорить разработку алгоритмов для сегмента, который раньше оставался в тени первой и последней мили.