Задача звучит по-детски просто: есть большой короб и есть коробки поменьше — сколько маленьких поместится в большой? Но каждый, кто хоть раз собирал мастер-короб для маркетплейса, паковал посылку из нескольких товаров или упихивал коробки в багажник перед переездом, знает: это не арифметика, это тетрис. Причём тетрис с реальными последствиями: не влезло — переупаковывай, влезло с воздухом — плати за лишний объём доставки.
Классический способ «прикинуть» — поделить объём большого короба на объём маленькой коробки. Способ этот врёт, и врёт всегда в оптимистичную сторону, а почему — разберём ниже. Ситуация усложняется, когда коробки внутри разные: три таких, пять сяких и ещё пара нестандартных. Ручной подбор здесь превращается в час экспериментов со скотчем, и проще заранее посчитать, сколько коробок разных размеров поместится в короб, в калькуляторе вложенности — он принимает список вложений с разными габаритами и раскладывает их по объёму внешнего короба. К слову, это редкая функция: обычные калькуляторы вложенности работают только с одинаковыми коробками, а жизнь, как назло, поставляет разные.
Кому и зачем это нужно
Продавцам на маркетплейсах. Поставка на склад едет в мастер-коробах, и от того, сколько единиц товара помещается в один короб, зависит и количество коробов, и стоимость логистики, и то, сойдётся ли поставка с тем, что заявлено в документах. Если в поставке несколько артикулов с разными размерами упаковки — задача «сколько чего влезет в короб» встаёт в полный рост.
Фулфилменту и складам. Комплектация заказов из нескольких позиций — это ежедневный подбор транспортной коробки под набор разногабаритных товаров. Ошибся с размером — либо переупаковка, либо оплата воздуха.
Интернет-магазинам. Заказ из трёх товаров в разных коробочках нужно отправить одной посылкой. Какую транспортную коробку взять, чтобы всё вошло и не пришлось доплачивать за габарит?
Обычным людям. Переезд, отправка вещей родственникам, сезонное хранение — везде одна и та же задача: набор разных коробок и ограниченный объём, в который их надо уместить.
Почему деление объёмов врёт
Возьмём короб 60 × 40 × 40 см (96 000 см³) и коробочки 25 × 18 × 12 см (5400 см³). Делим: 96 000 / 5400 = 17,7 — «влезет 17 штук». А теперь попробуем реально уложить.
По длине 60 см помещается: 2 ряда по 25 см (осталось 10 — коробка не влезает). По ширине 40 см: 2 ряда по 18 см (осталось 4). По высоте 40 см: 3 яруса по 12 см (осталось 4). Итого 2 × 2 × 3 = 12 штук. Не 17.
Куда делись пять коробок? Съедены остатками: полосой в 10 см по длине, 4 см по ширине и 4 см по высоте. Объём этих «обрезков» велик, но целая коробка ни в один из них не помещается. Это фундаментальное свойство задачи: объёмы делятся, а прямоугольные коробки — нет. Деление объёмов даёт теоретический потолок, реальная укладка всегда ниже, иногда на треть.
Правда, есть нюанс, работающий в обратную сторону: коробку можно повернуть. Те же коробочки, уложенные в другой ориентации (например, 25 см вдоль ширины короба — не влезает, а вот 18 см вдоль высоты — уже другая раскладка), могут дать 13 или 14 штук вместо 12. Перебор ориентаций вручную — это шесть вариантов поворота на каждый типоразмер, и уже для двух разных коробок число комбинаций укладки становится неприличным. Именно поэтому «прикинуть в уме» для разногабаритного набора не получается в принципе — а калькулятор перебирает варианты за вас.
Разные коробки: почему это отдельная лига
С одинаковыми коробками задача хотя бы регулярная: посчитал ряды по трём осям, перебрал ориентации, взял лучший вариант. С разными начинается настоящий тетрис:
- крупные коробки задают «каркас» укладки, а мелкие заполняют остатки — и порядок укладки влияет на результат;
- у каждого типоразмера свои допустимые ориентации (коробку с товаром «стеклом вверх» крутить нельзя);
- остаток, бесполезный для крупной коробки, может идеально принять две мелких.
Практический алгоритм для ручной укладки (он же — здравый смысл грузчика): сначала самые крупные и тяжёлые места на дно, плотно друг к другу и к стенкам; затем средние — в оставшиеся «колодцы»; мелочь — в щели верхнего яруса. Но предсказать заранее, поместится ли конкретный набор в конкретный короб, этот алгоритм не помогает — он помогает только укладывать. А для планирования (какой короб купить? сколько коробов нужно на партию?) нужен именно расчёт до укладки: задаёте внутренние размеры внешнего короба, списком вводите вложения — каждый типоразмер со своими габаритами и количеством — и видите, что помещается, а что нет.
Практические советы
Считайте по внутренним размерам. У гофрокороба заявленный размер обычно внешний; внутренний меньше на толщину стенок (для трёхслойного гофрокартона — минус 0,5–1 см на каждое измерение). Для вложений, наоборот, берите внешний размер, причём реальный: коробка с товаром часто «пузатее» своих номинальных габаритов.
Оставляйте технологический зазор. Укладка «в ноль» существует только на бумаге. Практический минимум — 5 мм на измерение; если вложения будут доставать и класть обратно, лучше сантиметр.
Помните про вес. Короб, идеально заполненный по объёму, может оказаться неподъёмным или превысить лимит веса места у перевозчика (частый порог — 20–25 кг). Иногда выгоднее два коробка полегче, чем один «оптимальный».
Мягкое — не в расчёт, а в зазоры. Пупырчатая плёнка, крафт-бумага и одежда прекрасно живут в тех самых «обрезках» пространства, куда не влезла целая коробка. Считайте жёсткие коробки, а мягким заполняйте остатки — и груз перестанет греметь.
Проверяйте самое длинное вложение первым. Если самая длинная коробка не помещается ни в одной ориентации — дальше можно не считать, нужен другой короб. Это самая быстрая проверка на отсев.
Коротко
«Сколько коробок влезет в короб» — задача, в которой интуиция и деление объёмов систематически обманывают: реальная укладка всегда беднее теоретической, зато повороты и грамотный порядок укладки отыгрывают часть потерь. Для одинаковых коробок ещё можно посчитать ряды на бумажке; для набора разных размеров единственный честный способ узнать ответ до покупки коробов и мотка скотча — калькулятор вложенности, умеющий работать со списком разногабаритных вложений. Пять минут расчёта против часа переупаковки — обменный курс, который устраивает всех, кроме продавцов скотча.