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

Недавно 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 миллиарда прибыли — слишком мелкий аргумент, когда на кону «разумная стандартизация».

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

Комментарии (36)


  1. abcdsash
    09.03.2026 08:06

    ну не знаю... полка в магнитах будет грязно, тускло и бардачно, мне как то плевать на их логистику и 100500 ИТшников... я просто туда не захожу систематически, а летом лишь по необходимости купить бутылку воды... да и то... вечно нет холодильников... что Дикси, что Магнит... что миниленты... фу.


    1. Andrey_mazo Автор
      09.03.2026 08:06

      Спасибо за мнение. Предполагал, что будет два лагеря: ЗаМагнит и ПротивМагнит. С пополнением во втором


  1. iushakov
    09.03.2026 08:06

    С таким подходом разве можно что-то продавать? Вы в статье пытаетесь шатать авторитет текущего топ менеджера в Магните. Думаете, он позитивно это воспримет?


    1. Andriljo
      09.03.2026 08:06

      Конкурент воспримет норм.


      1. Andrey_mazo Автор
        09.03.2026 08:06

        Ой ли. Сделал рассылку в 50 аналогичных мест — ни одного ответа. Даже в бота зайти лень, свой вариант протестировать. Народ крайне тяжелый на подъем, хотя цена вопроса — миллиарды


    1. Andrey_mazo Автор
      09.03.2026 08:06

      Меня не волнует ничей авторитет, а вот 2,5 млрд очень даже. Это математика и вопрос денег


  1. Magnum72
    09.03.2026 08:06

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


    1. Andrey_mazo Автор
      09.03.2026 08:06

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

      По остальному: мое предложение абсолютно конкретно и учитывает все озвученные параметры. Но не надо верить моим словам, поверьте своим глазам. Предлагаю лично вам и каждому: откройте бота @routeload_bot, нажмите /start, затем /demo, скормите ему JSON и проверьте скорость и качество упаковки. После этого ваше мнение будет действительно обоснованным


  1. toor
    09.03.2026 08:06

    Вам не кажется, что вы немного опоздали? Статья, на которую вы ссылаетесь, от 21-го года, а сейчас на дворе уже 26-й - за это время в компании могло многое поменяться, начиная от CIO.


    1. Andrey_mazo Автор
      09.03.2026 08:06

      Законы физики и геометрия не стареют. Задача коммивояжера (TSP) до сих пор не решена оптимально для таких масштабов, а мой алгоритм уникален в подходе к LIFO и развесовке. Даже если бы та статья вышла 25 лет назад, это ничего бы не изменило — Delphi в ядре всё тот же, а деньги о которых идет речь вполне современные


      1. HemulGM
        09.03.2026 08:06

        Законы физики ещё как стареют, потому что их тоже обновляют и уточняют.


        1. Andrey_mazo Автор
          09.03.2026 08:06

          Снимаю шляпу. У меня в комментариях физика постарела


      1. toor
        09.03.2026 08:06

        Почему вы считаете, что за 5 лет они сами не подумали, что такое можно сделать?


        1. Andrey_mazo Автор
          09.03.2026 08:06

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

          Я допускаю разные варианты, но по результатам своих тестов ставлю 95% на то, что мой алгоритм отработает чище. Скорее всего, истина посередине и будет смысл скомбинировать их опыт и мой движок. Но чтобы это понять, нужно переходить от "мыслей" к реальному пилоту


        1. Andrey_mazo Автор
          09.03.2026 08:06

          Мой алгоритм можно улучшать и дальше: например, переезд на Rust удвоит "скорострельность" как минимум. Но суть не в языке, а в математике.

          Почему они не сделали за 5 лет? Во-первых, не только они — вообще никто пока не решил эту NP-трудную задачу "идеальным" способом, включая вашего покорного слугу. Но в моем варианте изменен сам подход к комбинаторике. Почему получилось именно у меня? Может, звезды сошлись, может, интуиция, но тесты говорят то, что говорят. цифры — упрямая вещь


  1. onets
    09.03.2026 08:06

    Там в предыдущих статьях автор запилил какой-то сервис по упаковке. И походу выбрал такой способ продвижения - обвинить CIO Магнита за то, что тот не сидит и не проверяет каждый день коменты в статье 2021 года.

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

    И на Хабр еще наехал. Только причем тут Хабр? Это просто ресурс в интернете, где люди статьи выкладывают.


    1. Andrey_mazo Автор
      09.03.2026 08:06

      Первое. Спасибо, что "посмотрели" мои статьи. Именно посмотрели — всё равно приятно.

      Второе. Дико переживаю, если вы обнаружили в тексте обвинения в чей-либо адрес или тем более в адрес Хабра. Я их там не вижу и надеюсь, их там нет. Повторюсь: эта статья — не про личности или обиды, это вопрос денег и только


  1. SdrRos
    09.03.2026 08:06

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

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

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


    1. Andrey_mazo Автор
      09.03.2026 08:06

      Физика работает иначе: выгрузка хвоста за счет плеча рычага запросто "пробивает" нагрузку на ведущую ось. Но это не в комментах решается теорией.

      Есть бот @routeload_bot — зашел, проверил на конкретных цифрах, показал скрин с ошибкой. А сыпать необоснованными догадками — это просто неуважение к аудитории. Математика либо работает в коде, либо нет


      1. toor
        09.03.2026 08:06

        Вы сами знаете, как устроен этот процесс в Магните изнутри? Или просто предполагаете? Получается, что вы точно так же рассуждаете теоретически, при этом наезжаете на человека.


        1. Andrey_mazo Автор
          09.03.2026 08:06

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

          Противоречия тут нет: если бы я знал их "кухню", мы бы решали это в рабочем порядке, а не публично. Мой посыл — проверить теорию практикой (тест 225 машин). Если расчеты совпадут с реальностью — профит, если нет — будем искать "косяки". По-моему, нормальный путь.


      1. SdrRos
        09.03.2026 08:06

        Хвост от задней оси у фур, это одна, максимум две палеты, не должен сильно влиять. Эксплуатация на пределе допустимого не выглядит безопасной.


        1. Andrey_mazo Автор
          09.03.2026 08:06

          "Не должен сильно влиять" — это как раз та серая зона, где сгорают деньги на штрафах. В стандартной еврофуре (13.6 м) за задней тележкой осей остается приличное плечо. Выгрузка даже 1.5–2 тонн с самого края создает момент, который догружает ведущую ось тягача.

          На бумаге это "чуть-чуть", а на весах — пробитие лимита на 200-300 кг и протокол. Мой алгоритм уходит от "не должен" к точным цифрам. Безопасность и экономика как раз и начинаются там, где кончаются гадания на глаз. Зайдите в бот, проверьте развесовку на реальных координатах


  1. ivanopulos
    09.03.2026 08:06

    Весна началась.


    1. Andrey_mazo Автор
      09.03.2026 08:06

      Верно. Когда аргументы по существу (код, алгоритмы, физика) в предыдущих 5 статьях игнорируются (практически без комментариев), приходится переходить на язык цифр и прямых вызовов. Увы, не мой выбор


  1. SmileyK
    09.03.2026 08:06

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


    1. Andrey_mazo Автор
      09.03.2026 08:06

      Я не инсайдер и не знаю, что сейчас внутри "Магнита" или "Пятерочки". Выбор пал на них случайно — просто прочитал статью их техдиректора на Хабре.

      Мой посыл не в критике конкретных людей или даже систем, а в том, что нельзя терять из виду базовую математику, которая приносит реальные деньги. Если есть шанс сэкономить 2,5 млрд рублей в год, то как-то странно от него отворачиваться


    1. Andrey_mazo Автор
      09.03.2026 08:06

      с


  1. HemulGM
    09.03.2026 08:06

    Ваш Питон тоже из 90-ых


    1. Andrey_mazo Автор
      09.03.2026 08:06

      А вот сейчас было обидно...


      1. HemulGM
        09.03.2026 08:06

        Я вам больше скажу, Питон появился в 1991 году, а Делфи в 1995 году. Так что вы пытаетесь заменить код с помощью более старого инструмента.


        1. Andrey_mazo Автор
          09.03.2026 08:06

          Судьбоносное замечание в контексте этой статьи. Пойду запишу


  1. shornikov
    09.03.2026 08:06

    Помню резали мы бумагу большого формата на А4. У всех получалось 8 листов, а у меня 11 (условно). Но 8 листов получалось почти в 2 раза быстрее.

    Ваш "мой алгоритм" - учитывает грузчиков и их комфорт, или "математику" проблемы негров не волнуют?


    1. Andrey_mazo Автор
      09.03.2026 08:06

      Коллега, жму руку! Битва PHP с API маркетов — это отдельный вид промышленного альпинизма, уважаю.

      "Мой алгоритм" называется "Шампур-Скребок" (или Skewer). И название тут говорящее: "Шампур" — мы пронизываем пространство с невероятной скоростью жадного алгоритма. "Скребок" — укротитель. Мы выскребаем каждый сантиметр и каждый килограмм полезной нагрузки, чтобы не возить воздух, с учетом LIFO, веса и баланса.

      Это не "математика против людей", а математика для людей. Чтобы грузчик на складе получил четкую карту сборки: "Паллету А ставь сюда, паллету Б — туда". Без гаданий и лишних перекладываний. Зайдите в @routeload_bot, гляньте демо. Там как раз видно, что "Шампур" — это про порядок, а не про мучения склада


      1. shornikov
        09.03.2026 08:06

        Тут ведь какие проблемы (в контексте маркетов): загрузили машину по lifo - приехали в wb - а те говорят: идите лесом, принять не можем... и всё. возвращаемся на базу, потому что озон и яндекс, которые глубже - не достать.
        И вся красивая математика разбивается об то, что дешевле выходит отправить три машины поменьше, чем одну на 40 паллет.
        Поэтому, возможно, нет большой нужды забивать фуру под завязку, форсмажоры съедают всю экономию и подкидывают проблем.
        Я было полез в эту область (у нас FF-склады) но на складах дали понять, что им это всё нафиг не уперлось - вес, порядок загрузки... скажи нам количество паллет и ступай


        1. Andrey_mazo Автор
          09.03.2026 08:06

          Коллеги, давайте разделим «мух и котлеты»: физические риски логистики и возможности математического ядра.

          1. Про «билет в один конец» (LIFO):
            Да, LIFO — это всегда риск. Если на первой точке у вас не приняли 2 паллеты, они становятся «пробкой». Но давайте будем честны: возить всё вперемешку или гонять три полупустые машины вместо одной — это не решение проблемы, а капитуляция перед неэффективностью. Весь современный ритейл строится на попытках обуздать LIFO, потому что альтернатива — это просто сжигание денег в баке фуры.

          2. Алгоритм — это инструмент, а не догма:
            Главное заблуждение критиков: «Алгоритм заставит нас грузить так, что мы не выгрузимся». Нет.
            Моему движку абсолютно всё равно, сколько и каких ограничений (constraints) вы в него загрузите.

            • Нужен технический проход в 60 см для доступа к дальним паллетам? Пожалуйста.

            • Хотите ограничить плотность загрузки до 85%, чтобы оставить место для маневра? Легко.

            • Нужно исключить LIFO для определенных категорий товара? Одна строчка в JSON.

          3. Суть предложения:
            «Шампур-Скребок» — это не «сферическая фура в вакууме». Это универсальный математический решатель. Он не спорит с вашими бизнес-процессами, он их обсчитывает мгновенно.Если завтра «Магнит» скажет: «Нам нужно возить по 20 паллет, но с идеальной развесовкой по осям и учетом 15 правил товарного соседства», — алгоритм выдаст схему за миллисекунды. Пока система считает это «на глаз» или в тяжелых легаси-системах, она проигрывает математике.

          Итог: Мой вызов «225 машин» остается в силе. Давайте добавим в условия теста любые ваши «страшилки» про грузчиков и возвраты на WB. Если алгоритм их пережует и всё равно покажет экономию — признаем, что математика сильнее инерции. Если нет — я публично признаю поражение.

          Мяч на стороне тех, кто платит за бензин и штрафы.