Оптимизация маршрутизации доставки сводится к одной задаче: распределить заказы по машинам и выстроить порядок остановок так, чтобы каждая точка получила груз в своё окно времени, а суммарный пробег и время смены были минимальными. В учебниках это называют задачей маршрутизации транспорта (VRP). Для ручного расчёта она подходит до 10-15 адресов, дальше выигрыш даёт только алгоритм и хорошие исходные данные.

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

Что именно оптимизируют

Маршрутизация решает три вопроса сразу. Первый: какой заказ едет на какой машине. Второй: в каком порядке машина объезжает адреса. Третий: во сколько приезжает на каждый адрес. Если решать их по отдельности, получаются знакомые проблемы: две машины едут в один район, третья пустая, а курьер приезжает к закрытой проходной.

Цель обычно одна из трёх: минимум километров, минимум времени всех машин или минимум числа машин при соблюдении окон. Выбирать нужно осознанно. Если машина арендована на смену, платите вы за часы, а не за километры, и оптимум по времени отличается от оптимума по пробегу. Для расчёта стоимости рейса пригодится калькулятор стоимости рейса, для себестоимости километра есть калькулятор стоимости километра.

Какие исходные данные нужны

Качество результата зависит прежде всего от входных данных: алгоритм и сервис дадут хороший маршрут, только если данные точные. Минимальный набор такой.

  • Адреса с координатами. Адрес в виде строки геокодер иногда распознаёт на другой улице, поэтому координаты проверяют на карте до расчёта.
  • Окна приёмки по каждой точке: например, магазин принимает с 8:00 до 12:00, склад только до 16:00.
  • Время обслуживания на точке: разгрузка паллеты, подъём на этаж, оформление документов. Для магазина это 10-20 минут, для стройплощадки может быть час.
  • Вес, объём и число мест каждого заказа.
  • Парк: грузоподъёмность и объём кузова каждой машины, где она стартует и где должна закончить смену.
  • Ограничения по машине: высота и масса для въезда, запрет въезда грузовиков в центр в дневные часы, требуемый тип кузова.
  • Режим работы водителя: длительность смены, обеденный перерыв, для международных рейсов нормы труда и отдыха.

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

Ограничения, которые чаще всего забывают

Большая часть жалоб на «плохую оптимизацию» связана с тем, что ограничение не было задано. Диспетчер знает, что к этому клиенту нельзя ехать после обеда, но в системе этого нет.

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

Как работают алгоритмы

Точного решения для большого числа адресов не существует за разумное время, поэтому используют эвристики. Сначала строят первоначальный маршрут простым способом, например всегда едут к ближайшей непосещённой точке. Затем улучшают его: меняют местами соседние остановки, переносят заказ с одной машины на другую, разворачивают участок маршрута. Расчёт останавливают, когда улучшений нет или вышло время.

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

Статическая и динамическая маршрутизация

Статический маршрут строят вечером на завтра по известному списку заказов. Динамический пересчитывают в течение дня: добавился срочный заказ, машина встала в пробке, клиент перенёс окно. Для доставки на 20-30 адресов в день хватает статики с запасом по времени, а для курьерской службы с заказами в реальном времени нужен пересчёт. Разницу подробно разбирает статья про статические и динамические маршруты доставки.

Инструменты

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

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

Пример расчёта с заданными допущениями

Допущения условные и нужны только для демонстрации. Склад в городе, 12 адресов, две одинаковые машины, каждая вмещает все заказы по массе и объёму. Средняя скорость в городе 28 км/ч, остановка на адресе 15 минут. Диспетчер раскладывает заказы по районам вручную: первая машина получает 7 адресов, вторая 5, маршрут строится «по знакомым улицам». Получаются пробеги 64 и 52 км, то есть 116 км в сумме.

Расчётная система разбивает адреса на кластеры по плотности и выстраивает порядок остановок. Предположим, она находит схему на 6 и 6 адресов с пробегами 47 и 43 км, то есть 90 км. Экономия 26 км, примерно 22 процента. В часах: на дорогу вместо 4,1 часа уходит 3,2 часа, плюс 3 часа на остановки для обеих машин в сумме одинаковы. Если километр обходится вам в условные 0,5 евро, экономия за день составляет около 13 евро, за 22 рабочих дня около 290 евро. Значение будет другим при другой геометрии точек, поэтому берите свои данные за 2-3 недели и сравнивайте расчёт с фактом, а не с рекламными процентами.

ПоказательРучной планРасчётный план (условный пример)
Адресов на машину7 и 56 и 6
Пробег за день116 км90 км
Время в движенииоколо 4,1 чоколо 3,2 ч
Соблюдено окон приёмкипо памяти диспетчерапо заданным данным

Как внедрять по шагам

  1. Соберите справочник клиентов с координатами, окнами приёмки и временем обслуживания. Это самая долгая часть работы и она окупается.
  2. Внесите парк: массу, объём, стартовую точку и время смены каждой машины.
  3. Прогоните 5-10 прошлых рабочих дней через расчёт и сравните с фактическими пробегами.
  4. Покажите водителям результат и выслушайте замечания: они знают, где шлагбаум, где нельзя развернуться и где ждут разгрузки час.
  5. Включите расчёт в рабочий процесс и раз в месяц сверяйте плановое время с фактическим по трекерам. Если расхождение больше 10-15 процентов, правьте время обслуживания на точках.

Частые ошибки

Первая ошибка: брать время обслуживания по умолчанию. Если в справочнике везде стоят 10 минут, а реально на объекте уходит 40, весь день сдвигается и расчёт теряет смысл. Вторая: не обновлять адреса. Магазин переехал, склад сменил ворота, а в системе старая точка. Третья: гнаться за минимальным пробегом, нарушая окна. Для клиента важнее прийти вовремя, чем сэкономить 5 километров. Четвёртая: не учитывать возврат на склад, особенно когда нужно сдать выручку, документы или тару.

Вопросы и ответы

С какого количества адресов имеет смысл автоматизация? Заметный эффект появляется примерно с 10-15 адресов на машину или при нескольких машинах, когда ручное разделение заказов начинает давать лишние километры. Для 3-5 адресов хватит обычной карты.

Можно ли учесть пробки? Сервисы с данными о трафике учитывают их при расчёте времени, но прогноз остаётся приблизительным. Закладывайте запас 10-15 процентов времени смены.

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

Нужен ли GPS-мониторинг? Он нужен для проверки плана по факту и для динамического пересчёта. Что умеет такая система, описано в статье про GPS-мониторинг грузового транспорта.

Читайте также

Раздел с материалами по теме: маршрутизация и сервисы.

Проверено: октябрь 2026. Источники: общая теория задач маршрутизации транспорта (VRP, CVRP, VRPTW), документация поставщиков сервисов маршрутизации, практика городской доставки.

Раздел: Технологии и сервисы / Маршрутизация и оптимизация доставки

Похожие записи