Разработка AI-системы для оптимизации загрузки транспорта

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

Оптимизация загрузки транспорта: где ломается планирование

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

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

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

В сумме задача перестаёт быть линейной. Число допустимых сочетаний «заявка — машина — окно» растёт быстрее, чем парк, и оптимизация загрузки транспорта упирается в предел человека: проверить все варианты, которые дали бы и полный кузов, и короткий порожний пробег, он физически не успевает. Разбираем, как это закрывается.

Что даёт ИИ-планирование рейсов и маршрутов

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

Порожний пробег падает за счёт обратной загрузки

К каждому рейсу «туда» планировщик ищет пару из обратных заявок и склеивает их в один маршрут, если совпадают окна и тип кузова. Доля порожних пробегов снижается с 30–35% до 12–15%, а оставшиеся перегоны становятся короткими подъездами к следующей точке вместо возврата в базу.

Средняя загрузка кузова и утилизация парка растут

Вместо ручного «кто свободен — того и грузим» алгоритм балансирует загрузку между машинами и добивает недогруженные рейсы попутными заявками. Средняя загрузка кузова выравнивается по парку: разброс, когда часть фургонов идёт вполовину объёма, а часть перегружена, уходит.

В один рейс влезает больше точек

Маршрут собирается по реальной геометрии проездов и времени на разгрузку, а не по средним нормативам. Число точек в рейсе растёт на 15–25% без нарушения окон доставки — рейсы, которые раньше делили на два, едут одним.

Уходит класс отказов планирования

Исчезают срывы из-за конфликтов в расписании водителей, перегруза по массе и двойного назначения машины на две заявки. Диспетчер видит причину, по которой заявка не встала в план, вместо ручной правки маршрутов.

Режимы планирования транспорта: правила, эвристики, модель

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

Ниже — четыре варианта, между которыми реально выбирают, когда строят оптимизацию загрузки транспорта. Они не заменяют друг друга: правила задают границы, эвристики дают скорость, модель — качество плана.

Три режима и их границы

Вариант Когда подходит Ограничения
Жёсткие правила Парк и плечи стабильны, регламенты зафиксированы, нужен объяснимый план на смену Не находит неочевидных уплотнений: загрузка растёт только пересмотром самих правил
Эвристики планирования Нужен быстрый план на день, условия меняются частично Решение близко к ручному, качество зависит от набора правил, на сложных маршрутах уступает оптимизации
Модель на исторических данных Есть путевые листы и телеметрия за сезон, спрос колеблется Чувствительна к качеству данных и редким событиям, готовый план нужно проверять
Смешанное планирование Нужно одновременно выжать загрузку и уложиться в режим труда и отдыха водителя Требует прозрачных логов: без объяснения плана диспетчер перестаёт доверять системе

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

Как проходит внедрение: от аудита данных до передачи

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

  1. Аудит данных о рейсах. Разбираем выгрузки из учётных систем, данные телематики и логистические таблицы: полнота записей, дубли, расхождения по времени и весу, пропуски в точках маршрута. Результат — карта источников и перечень того, что восстанавливаем, а что исключаем из расчёта.
  2. Постановка целевой функции. Фиксируем, что именно оптимизируем: общий пробег, долю порожних прогонов, соблюдение окон доставки или их комбинацию с весами. Ограничения — грузоподъёмность, режим работы водителя, совместимость грузов — согласуем письменно, это база для приёмки.
  3. Пилот на исторических рейсах. Прогоняем систему на прошлых рейсах и сравниваем её план с фактическим: где удалось сократить пробег, а где предложенный маршрут невыполним. Логику проверяем до того, как она коснётся живых перевозок.
  4. Настройка на рабочем контуре. Подключаем систему к текущим источникам, настраиваем обмен и права доступа, договариваемся о том, как диспетчер принимает или отклоняет предложенный план.
  5. Промышленный запуск. Переводим планирование в ежедневный режим, следим за метриками загрузки и стабильностью расчёта, дообучаем правила на новых данных.
  6. Передача системы. Отдаём конфигурации, схемы обмена, регламенты и инструкции, проводим обучение диспетчеров и сопровождаем команду заказчика первые циклы планирования.

Что остаётся у заказчика: конфигурации, схемы, регламенты

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

  • Конфигурация планировщика: приоритеты клиентов и типов груза, ограничения по вместимости, окнам доставки и совместимости грузов в одном рейсе; параметры собраны в редактируемый набор — менять их можно без правки кода.
  • Схема интеграции с учётными системами: какие справочники и события откуда поступают, с какой периодичностью, что происходит при недоступности источника, где проходит граница ответственности между системами.
  • Регламент перепланирования: в каких случаях пересчёт запускается автоматически (новый заказ, отмена, срыв окна), а где решение остаётся за диспетчером; окно заморозки плана перед выездом машин.
  • Документация на систему: описание логики распределения, справочник параметров с допустимыми диапазонами, инструкции для диспетчера и администратора.
  • Матрица ответственности: кто владеет справочниками, кто утверждает изменения правил, кто разбирает расхождения между планом и фактом.
  • Журнал решений: сохранение причин, по которым заказ попал к конкретной машине, — для разбора спорных ситуаций без восстановления логики задним числом.
  • Проверочные сценарии: эталонные дни с известным результатом, на которых видно, что после правок конфигурации решение не деградировало.

Кейс: утилизация парка и порожние пробеги до и после

Автоколонна из 140 машин планировала рейсы вручную в учётной системе 1С:УАТ: диспетчер собирал плечи по опыту и телефонным договорённостям, а обратную загрузку искал уже после выгрузки. Машина уходила с неполным кузовом, обратный пробег часто шёл порожняком, и утилизация парка держалась на авралах в конце месяца. Срывы окон доставки копились там, где новый рейс ставили сразу за предыдущим, без запаса на разгрузку.

Мы сняли метрики до и после на сопоставимых периодах, а планирование перевели в режим подсказки: система предлагает вариант загрузки под кузов и жёсткие окна доставки, диспетчер подтверждает или отклоняет.

Метрика До После
Доля порожних пробегов 36% 17%
Средняя загрузка кузова 62% 85%
Срывы окон доставки 8% рейсов 2% рейсов
Простой у рампы 45 мин 22 мин
Время диспетчера на план смены 3,5 ч 25 мин

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

Что делать, если часть рейсов уже планируется вручную

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

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

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

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

Частые технические вопросы о данных и точности модели

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

Оптимизация загрузки транспорта начинается не с модели, а с инвентаризации источников: справочника точек, ограничений по кузову, истории фактических выездов.

Данные лежат в Excel и трёх системах — этого хватит?

Для старта достаточно истории рейсов и справочника точек с окнами доставки. Мы сводим источники в один слой, помечаем пробелы и задаём правила заполнения; где истории нет, ограничения вводятся явно и согласуются с диспетчером.

Как проверить, что план выполним, а не только «оптимален»?

Каждый маршрут проходит проверку ограничений: тоннаж и объём, режим труда водителя, окна доставки, доступность транспорта. Невыполнимые варианты отсекаются до выдачи — расчёт идёт на решателе OR-Tools, а точность сверяем по факту: доля рейсов без ручных правок и сорванных окон доставки.

Что происходит со срочной заявкой в середине дня?

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

Что будет после запуска — поддерживать всё самим?

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

Обсудим задачу: какие данные прислать для оценки

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

  • Выгрузка рейсов за характерный период: дата, направление, транспорт, фактическое время выхода и возвращения.
  • Данные по заявкам: адреса точек, временные окна доставки, вес и объём груза, тип кузова.
  • Справочник транспорта и водителей: вместимость, ограничения по тоннажу, доступное время смен.
  • История простоев: время ожидания под погрузкой и разгрузкой, причины срывов по факту, а не по регламенту.
  • Действующие правила распределения: кто и по какой логике сейчас закрепляет машину за рейсами.
  • Ограничения: рабочие часы складов, зоны обслуживания, приоритеты клиентов, ночные выезды.
  • Целевые показатели: что считаем улучшением — доля загрузки, число рейсов, повторные выезды.

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

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142