В мире энтерпрайз-логистики сейчас бушует опасная эпидемия. Симптомы всегда одинаковы: топ-менеджмент читает пару глянцевых статей о том, как «искусственный интеллект совершил революцию», увольняет половину отдела логистики и покупает у модных стартапов «инновационный AI-маршрутизатор». Дальше начинается терминальная стадия: фуры застревают в арках исторических центров, курьеры наматывают восьмерки по промзонам, а метрика SLA (Service Level Agreement) падает в такую пропасть, откуда не возвращаются.
Я CTO компании EasyByte. Мы каждый день препарируем мертвые ИИ-проекты крупного российского бизнеса. И сегодня мы поговорим о том, почему попытка скормить задачу маршрутизации (Vehicle Routing Problem) модной языковой модели или сырой нейронке — это самый быстрый и дорогой способ обанкротить вашу службу доставки. Никакой магии, только суровый инжиниринг, математика и запах жженого сцепления на пандусе склада.
Хроника одного логистического самоубийства
Прошлый ноябрь, Москва. Одному крупному FMCG-ритейлеру (назовем его «БыстроПровал») вендор продал «интеллектуальную систему динамического роутинга на базе Deep Learning». Цена контракта — около 80 млн рублей. Обещали снижение пробега на 30% и полную автономность.
Что произошло в первый день первого серьезного снегопада? Алгоритм, обученный на чистых летних датасетах и не имеющий жестких эвристических ограничений, начал галлюцинировать маршрутами. Он решил, что лучшая оптимизация — это отправлять 10-тонники через пешеходные зоны и разворачивать их на односторонних улицах. Система не учитывала время на маневрирование тяжелой техники. Более того, при падении скорости потока до 10 км/ч, «ИИ» начал истерично пересчитывать маршруты для всех 500 машин каждые 30 секунд, устроив классический DDoS-атаку на собственный биллинг в Yandex Cloud.
Леночка брезгливо стряхивает пыль с распечатки логов из Grafana, щурясь на красные пики. "Смотри на эту красоту. Их «умный» алгоритм решил, что если три фуры одновременно поедут на таран шлагбаума в элитном ЖК на Патриках, то они создадут квантовую запутанность и телепортируются прямо к зоне разгрузки. Итог: два оторванных бампера, пробка на час и счет за облачные вычисления, словно мы тут майнили биткоины, а не везли пельмени. Операционные расходы, говорите? Ну-ну".

Вместо экономии автопарк встал. Убытки за три дня сбоев, штрафы за срыв поставок B2B-клиентам и выплаты за перерасход топлива превысили 25 млн рублей. А технический директор «БыстроПровала» покинул чат и компанию.
Почему нейросети не умеют строить маршруты
Давайте снимем розовые очки. То, что бизнес-ангелы называют «маршрутизацией», в информатике называется CVRPTW (Capacitated Vehicle Routing Problem with Time Windows) — задача маршрутизации транспортных средств с учетом грузоподъемности и временных окон.
Это классическая NP-трудная задача комбинаторной оптимизации. Ее сложность растет факториально. Если у вас 50 точек доставки, количество возможных вариантов маршрута превышает количество атомов в обозримой Вселенной. И вот здесь кроется главная архитектурная ошибка, которую мы в EasyByte видим на каждом втором аудите.
Разработчики пытаются решить задачу комбинаторной оптимизации методами машинного обучения (Machine Learning) или, что еще абсурднее, пытаются прикрутить туда генеративные модели.
Почему это катастрофа:
-
Галлюцинации графа: Нейросеть (даже Graph Neural Network, GNN) аппроксимирует результат. Она может выдать вероятность, что «ехать по этой улице хорошая идея». Но она не умеет жестко соблюдать констрейнты (ограничения). Ей плевать, что физически нельзя загрузить 12 паллет в машину, рассчитанную на 10. Она «оптимизирует» вес ребра графа, а не законы физики.
-
Забытый 152-ФЗ: Многие модные «AI-роутеры» под капотом просто гоняют данные через зарубежные API. Вы передаете координаты клиентов, их телефоны и коды домофонов на чужие сервера. При первой же утечке Роскомнадзор выпишет вам штраф, а клиенты — судебные иски.
-
Нелинейность реального мира: Вы можете обучить модель на исторических данных, но когда на МКАД перевернется грузовик с щебнем, исторические паттерны станут мусором. Нужен детерминированный алгоритм, способный мгновенно перестроить граф дорожной сети.
Леночка задумчиво крутит в руках холодный стакан с эспрессо-тоником, глядя в код конкурентов на экране. "Я сейчас заплачу от умиления. Эти мамкины инноваторы попытались скормить матрицу расстояний 1000x1000 в трансформер. Они реально ждут, что attention-механизм сам поймет, что Газель не умеет ездить задом по Третьему транспортному кольцу. Они сжигают 32 гигабайта VRAM на видеокарте за миллион рублей, чтобы получить маршрут, который обычный жадный алгоритм Дейкстры на калькуляторе посчитал бы лучше и без галлюцинаций. Какое трогательное слабоумие".

Как костыли убивают экономику
Вы думаете, проблема только в математике? Архитектура современных логистических стартапов — это франкенштейн из костылей.
Типичный паттерн, который мы встречаем: монолитное приложение на Python, которое тянет матрицы расстояний из публичного API (например, OSRM или Yandex.Routing API), складирует их в оперативную память и пытается крутить генетический алгоритм.
Что ломается на масштабе сурового отечественного энтерпрайза:
-
Смерть от OOM (Out of Memory): Утром логист нажимает кнопку «Рассчитать 10 000 заказов». Матрица расстояний пухнет до гигабайтов. Поды в Kubernetes начинают сыпаться по нехватке памяти. Оркестратор их перезапускает. Возникает бесконечная петля смерти (CrashLoopBackOff). Курьеры курят, бизнес теряет деньги.
-
Сетевые задержки: Каждый запрос к внешнему картографическому API занимает миллисекунды, но когда их миллионы — это часы ожидания.
-
Отрыв от реальности (Трекинг): Система строит идеальный маршрут, но в реальности GPS-трекеры водителей «прыгают» из-за глушилок, или водитель заезжает в зону без покрытия сотовой связи (привет, бетонные склады в Подмосковье). ИИ считает, что машина провалилась сквозь землю, и начинает хаотично переназначать заказы.
Цена иллюзий в твердых рублях
Давайте переведем техническую некомпетентность в язык P&L (Profit and Loss). Возьмем автопарк из 300 машин LCV (Light Commercial Vehicle), работающих в Московском регионе.
Средний пробег одной машины в день — 150 км. Расход топлива — 15 литров дизеля на 100 км. Стоимость литра — около 65 ₽.
Если ваш "ИИ" генерирует маршруты с перепробегом всего в 15% (а поверьте, плохой алгоритм генерирует и +30%), вы ежедневно сжигаете лишние 65 000 ₽ только на солярке. В год это 23 миллиона рублей, вылетевших в выхлопную трубу.
Но топливо — это копейки. Основные потери кроются в другом:
-
Срыв SLA и штрафы: Если машина приезжает в РЦ (распределительный центр) крупной розничной сети не в свое «окно», штраф может составлять от 10 000 до 50 000 ₽ за инцидент, плюс простой машины в очереди.
-
Утилизация кузова: Плохой алгоритм «везет воздух». Вместо 85% загрузки кузова, вы получаете 60%. Это значит, что для того же объема заказов вам нужно не 300, а 380 машин. Лизинг, зарплаты водителей, страховка, ТО — это сотни миллионов рублей раздутого бюджета.
Леночка берет маркер и начинает яростно чертить цифры на стеклянной перегородке переговорки, перечеркивая радужную презентацию очередного вендора. "Считаем, господа капиталисты. Ваш 'визионерский' подход стоил 40 миллионов за внедрение. Из-за кривого графа дорог 15% доставок улетело за SLA. Заказчики выкатили неустоек на 12 миллионов только за этот квартал. А вишенка на торте — ваш кластер в Selectel сожрал 3 миллиона рублей за месяц, потому что алгоритм уходил в рекурсию каждый раз, когда курьер уходил на обед. Вы не оптимизировали логистику, вы профинансировали теплоснабжение дата-центра своими деньгами".

Парадигма EasyByte: Как правильно оркестрировать систему
Как же снизить пробег автопарка на те самые заветные 25% и не обанкротиться? В EasyByte мы применяем подход жесткого прагматизма: Разделяй предсказания (ML) и оптимизацию (OR - Operations Research).
Искусственный интеллект не должен строить маршрут. Искусственный интеллект должен предсказывать параметры среды, а маршрут строит детерминированный математический солвер.
Наша эталонная архитектура выглядит так:
-
Слой данных и гео-инфраструктуры (On-Premise / Local Cloud): Мы разворачиваем собственный движок маршрутизации (например, кастомизированный GraphHopper или Valhalla) прямо в вашем контуре (в Yandex Cloud или Selectel). Никаких запросов наружу. Никаких нарушений 152-ФЗ. Граф дорог обновляется ежедневно из OpenStreetMap и обогащается приватными данными клиента (где шлагбаумы, где охрана).
-
Слой предсказаний (Machine Learning - вот тут работает ИИ):
Мы используем градиентный бустинг (CatBoost) и нейросети для предсказания трех вещей:
-
Матрица скоростей: Как быстро поедет поток на конкретном ребре графа в 17:30 в пятницу перед Новым годом.
-
Service Time (Время обслуживания): ML-модель анализирует историю конкретного водителя, этаж клиента, наличие грузового лифта и вес заказа, чтобы понять, сколько водитель проведет на точке (5 минут или 45 минут). Это критически сужает вариативность для солвера.
-
Вероятность отмены: Если клиент с вероятностью 80% не примет заказ, система строит "гибкий" узел в маршруте.
-
-
Слой оптимизации (Solver):
Сердце системы — метаэвристические алгоритмы. Мы используем ALNS (Adaptive Large Neighborhood Search). Суть в том, что алгоритм берет начальный (даже плохой) маршрут и начинает "вырывать" из него проблемные заказы (destroy operators) и вставлять их в более выгодные места (repair operators). Этот процесс идет асинхронно. Микросервисы на Rust или C++ пережевывают матрицы на огромной скорости, потребляя минимум RAM.
-
Слой оркестрации и аналитики:
Вся телеметрия с машин (GPS, CAN-шина) летит через Apache Kafka прямо в ClickHouse. Если машина отклонилась от маршрута из-за перекрытия дороги, триггер в Kafka инициирует локальный перерасчет только для этой машины, а не перетряхивает весь федеральный автопарк.
Этот симбиоз жесткой математики (OR) и мягких предсказаний (ML) позволяет достичь утилизации автопарка на уровне 92% и реального сокращения пробега. Мы не пытаемся заставить языковую модель водить грузовик. Мы даем грузовику идеальную карту реальности, очищенную от шума.
Леночка с громким щелчком закрывает крышку своего ноутбука, только что отправив финальный pull request с новой эвристикой в прод. "Я переписала их 'гениальный' генеративный пайплайн на суровый Rust с нормальным солвером. Итог: потребление памяти упало в 40 раз, время расчета роутинга для 2000 машин сократилось с 50 минут до 80 секунд. Теперь эти бедные Газели хотя бы не будут пытаться форсировать Москву-реку вброд в поисках кратчайшего пути. Скукотища. Никакого огня, никаких панических атак у логистов, никаких слез инвесторов. Все просто работает".

Вердикт: Искусственный интеллект или естественная компетентность?
Внедрение ИИ в логистику — это не покупка API-ключа у модного стартапа. Это глубокий инфраструктурный инжиниринг. Если ваш текущий подрядчик рассказывает вам про "самообучающиеся нейросети, которые решат все проблемы бизнеса", но не может объяснить сложность O(n!) или не знает, как настроить ClickHouse под гео-аналитику — гоните его в шею. Иначе вы оплатите его обучение своими серверами, своей репутацией и своими контрактами.
Логистика не прощает иллюзий. Она наказывает рублем за каждый лишний километр и каждую минуту простоя. Оставьте магию сказочникам. Оптимизацию оставьте инженерам.
Готовы прекратить сжигать топливо и бюджеты на кривых алгоритмах? Пора переходить на взрослую архитектуру.