Обновить
4
Андрей@Andrey_mazo

Пользователь

3
Подписчики
Отправить сообщение

Каггл «200 ёлочек 2025»: призы уже раздали, но мы и за идею задачу укладки порешаем. Часть 1

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.2K

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

Читать далее

«Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели12K

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

Внутри — разбор «Бизнес-Ассемблера», борьба с весовыми лимитами и ответ на вопрос: почему при КПД 61% по объему контейнер может считаться идеально упакованным.

Читать далее

0.3 секунды на фургонный флот. 3D-упаковщик грузов, который понимает LIFO и не давит коробки

Время на прочтение6 мин
Охват и читатели6.3K

Представьте логиста, у которого перед глазами 400 разных коробок и 8 машин. У него есть Excel, калькулятор и два часа времени. Я решил, что это несправедливо, и написал веб-сервис на Django, который делает это мгновенно. Внутри: 3D MaxRects, полная свобода вращения (6 осей) и учет суровой реальности — от очередности выгрузки до предельной нагрузки на нижние ряды.

Для тех, кто предпочитает один раз увидеть: вот 3-минутное демо работы интерфейса и визуализации на Three.js

https://youtu.be/JP80ESX0YiQ

Читать далее

2,5 миллиарда в «БДСМ»: Почему CIO «Магнита» ищет миллионы, теряя миллиарды?

Время на прочтение3 мин
Охват и читатели6.6K

Пока IT-директор «Магнита» ищет способы сэкономить 200 млн рублей на серверах и обновляет техрадары, в их логистике ежегодно «сгорает» 2,5 миллиарда. Я пришел в комментарии к CIO с готовым алгоритмом, который пакует фуры со скоростью 500 000 объектов в секунду с учетом LIFO, развесовки и крена, но получил лишь игнор и минус в рейтинг. Что ж, переходим к публичному вызову: 168 часов против 2,5 миллиардов. Кто быстрее — математика или корпоративный TOGAF?

Читать далее

️ UPDATE: Специально для тех, кому лень составлять JSON (решил ставить даты моих правок, чтобы было понятнее)

Время на прочтение7 мин
Охват и читатели8K

Смотрю на вас как в зеркало... но в ответ не тронь, мы не для таких как ты, правда? Да мы не для таких, мы были созданы для настоящих мужиков. Когда одухотворяют неживые вещи для общения с ними это Антропоморфизм, а как называется когда человек с головой другого человека не разговаривает, но одушевляет части его тела, для общения с ними? Хм, ну да ладно от вымысла к реальности, а реальность у нас - 5ая статья в серии Шампур-Скребок выходит в публичное пространство. Route Load bot (телеграмм) для укладки груза.

Читать далее

3D-Packing на стероидах: как запихнуть 200 000 объектов в «Левиафана» и не вылететь по MemoryError

Время на прочтение5 мин
Охват и читатели7.2K

Если вы следили за моими предыдущими статьями, то знаете, что я одержим скоростью в задачах оптимизации.Сначала была «точка»: мы приручили задачу коммивояжера (TSP), решив её векторным способом — 10 000 точек за 0.4 секунды. Затем была «топология»: мы усложнили мир, победили злую спираль и упрямый трилистник, научились работать с графами (искать тупики) и упаковали 45 000 стандартных контейнеров в трюм, учитывая LIFO, весовые лимиты и еще 4 критических параметра. Тогда наш воркер на FastAPI + Redis справлялся за 2 минуты. И вот подошли к царь-задаче Упаковка разногабарита. Результатом этой работы станет публичный API. Логика простая: вы отправляете JSON с параметрами груза и склада (нужен ли обсчет крена, лимиты по весу, LIFO), а на выходе получаете готовый план загрузки. Но чтобы этот API не «висел» под нагрузкой, мне нужно было решение, которое работает не минуты, а доли секунды. Результатом этой работы станет публичный API. Логика простая: вы отправляете JSON с параметрами груза и склада (нужен ли обсчет крена, лимиты по весу, LIFO), а на выходе получаете готовый план загрузки.

Читать далее

Шампур Логистик: Как упаковать флот и не сойти с ума от 70 000 контейнеров

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.6K

Сегодня мы выходим в продакшн с системой "Шампур Логистик", которая пакует флот из 15 судов и распределяет манифест на 70 000 контейнеров быстрее, чем вы успеете допить кофе.

Это уже не просто «тетрис в вакууме». Мы построили промышленный конвейер на FastAPI и Celery, где математическое ядро с 90% Test Coverage сталкивается с суровой физикой моря: лимитами стекирования в 210 тонн, жестким LIFO-зонированием портов и капризными рефрижераторами.

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

<cut />

Читать далее

LIFO, 3D и Динамический Шампур: как упаковать 6000 объектов в фуру за 12 секунд

Время на прочтение8 мин
Охват и читатели5.3K

В статье представлен подробный разбор разработки высокопроизводительного 3D-движка для оптимизации загрузки транспортных средств. Мы прошли путь от простого полочного алгоритма с КПД 58% до комплексной системы, обеспечивающей плотность упаковки до 90%. Автор делится уникальным опытом решения критических проблем: от устранения коллизий и соблюдения границ трюма до внедрения динамической балансировки веса и строгой очередности выгрузки по городам (LIFO). Особое внимание уделено оптимизации алгоритма Subset Sum, позволившего достичь скорости обработки в 14 000 объектов в секунду, и верификации логики через систему из 12 Unit-тестов. Внутри — чистый код на Python, математические выкладки и эффектная визуализация процесса упаковки

Читать далее

Как решить TSP для 10 000 точек БЕЗ прыжков: метод «Динамического Шампура» с инерцией

Время на прочтение3 мин
Охват и читатели6K

Как обойти 10 000 точек без лишних «холостых» прыжков и геометрической путаницы? Традиционные жадные алгоритмы пасуют перед плотными структурами, заставляя инструменты ЧПУ и роботов метаться по всей рабочей зоне. В этой статье я представляю «Алгоритм Динамического Шампура» (Shampur‑Scraper Method) — иерархический подход к задаче коммивояжера, сочетающий инерционное планирование магистралей и динамическую зачистку зон ответственности. Разберем логику «Скребка», эффект «напряжения тупиков» и посмотрим, как этот метод играючи справляется с самопересекающимися трилистниками и плотными спиралями за доли секунды.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Специалист
Python
PostgreSQL
Git
SQL
Linux
Docker
ООП
PHP
Redis
FastAPI