Привет, Хабр!

Недавно CIO «Магнита» Валентин Щитов опубликовал статью https://habr.com/ru/companies/magnit/articles/570992/ о том, как устроено IT в ритейл-гиганте. Он пишет про 3500 айтишников, Delphi из 90-х и базу данных с ироничным названием БДСМ («База Данных Сети Магнит»).

Валентин ставит амбициозную цель: сократить стоимость владения IT (TCO) на 200 млн рублей. Цифра солидная, но пока 3500 специалистов «наводят порядок в архитектуре», в самой логистике «Магнита» ежегодно сгорает 2,5 миллиарда рублей. Это те деньги, которые компания теряет на неэффективной укладке товара в фуры.

Я пришел к Валентину в комментарии с готовым решением. Итог? Игнор и минус в мой рейтинг на Хабре. Что ж, давайте считать публично.

«Накопленная сложность» vs Реальная физика

Валентин пишет: «УТП контролирует более 10 000 единиц техники... система планирует маршруты и вряд ли имеет аналоги».

Звучит масштабно, но планирование маршрута «из точки А в точку Б» — это вчерашний день. Современный ритейл — это Multi-drop (LIFO). Фура идет по маршруту А -> C -> Г -> Д.

  1. LIFO (Last In — First Out): Товар для первой точки должен быть у двери, для последней — у кабины.

  2. Развесовка и Крен: Выгрузили 5 паллет на первой точке — центр тяжести сместился. Осевая нагрузка «поплыла». Результат — штрафы до 500к на весах или «бой» товара из-за крена на повороте.

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

Технологический стек: 500 000 айтемов в сек

Пока «Магнит» пересматривает техрадары с Kotlin, Go и Kubernetes, мой движок на обычном Питоне выдает 500 000 операций упаковки в секунду.

  • Для фуры/помещения до 20 метров мгновенный расчет можно увидеть в действующем боте.

  • Если нужно обсчитать пространство в 200 метров (палуба или склад), алгоритм сохраняет скорость, требуя 35 Гб оперативной памяти на инициализацию (при сложных габаритах грузов и помещения).

  • Апи по запросу (сейчас защищено ключем)

Экономика вопроса:В сети 45 РЦ и тысячи фур. Даже если мой алгоритм даст всего +2% к плотности загрузки и -3% к оптимизации маршрута за счет мгновенного перебора комбинаций LIFO — это 2,57 млрд рублей чистой экономии в год. Это в 12 раз перекрывает ваш план по снижению TCO!

Публичный вызов: Эксперимент «225 машин»

План простой: берем все ваши 45 РЦ. В каждом выделяем по 5 машин. Итого 225 фур. Планируем их загрузку моим движком и сравниваем с вашими текущими показателями эффективности.

Что мне нужно от «Магнита»:Точные габариты кузовов, весовые ограничения по осям и формализованные правила товарного соседства ну дополнительные параметры, если есть.

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

Мяч на стороне Magnit Tech. 168 часов против 2,5 миллиардов потенциальной экономии.

Результаты расставят всё по местам:

  1. Profit: Мы экономим миллиарды на топливе и штрафах. Математика победила корпоративную инерцию.

  2. Loss: Ваш Delphi-код оказался эффективнее моего алгоритма.

  3. Dirty Data (разнонаправленный результат): Мы найдем «косяки» в процедуре тестирования.

Попробовать в Telegram

Для тех, кто хочет пощупать движок. Создан @routeload_bot. Нажав /demo получите тестовый джейсон, и упакованную фуру с учетом LIFO, веса и крена + визуализацию. Пробросьте исправленный под ваши данные JSON (текстом или файлом) и получите упакованный транспорт (помещение). Это работает уже сейчас, пока гиганты «обновляют архитектуру».

что видим после нажатия /start
что видим после нажатия /start
Что видим после нажатия /demo (Крен 51%, и такое бывает, данные генерируются случайным образом)
Что видим после нажатия /demo (Крен 51%, и такое бывает, данные генерируются случайным образом)

При дальнейшем пробросе получите такого же формата вывод: Открыть 3Д схему и Посмотреть джейсон. У каждого пользователя по 300 попыток.

Вместо эпилога: Ниже — скриншот моего комментария CIO «Магнита», который остался без ответа. Видимо, 2,5 миллиарда прибыли — слишком мелкий аргумент, когда на кону «разумная стандартизация».

Хабр, вопрос к вам: стоит ли «умная архитектура» потерянных миллиардов, или пора признать, что один быстрый алгоритм стоит целого штата архитекторов в Сколково?