Страницы: 1
RSS
Подбор лучшего расположения предмета в коробке силами Excel
 
Добрый день, уважаемые посетители форума!

Пытаюсь оптимизировать следующую задачку:
Есть коробка с определённым размером (например, 40х50х30 (см)), в которую упаковываются коробки поменьше (например, 7х18х4 (см)). Необходимо определить сколько максимально поместится маленьких коробок в большую коробку. Очевидно, что при решении задачи "в лоб" (делением длины, ширины и высоты большой и малой коробки, соответственно) получим неоптимальное решение: поместится 70 маленьких коробок в полупустой большой; если же расположить маленькие коробки поперек большой, то влезет уже 98 коробок, что намного эффективнее.
(Файл с примером приложил).

Если есть какие-либо идеи, то буду рад послушать.
Заранее спасибо!
Изменено: vasiliy NO - 17.06.2021 14:22:00
 
Уже после того, как написал, понял, что можно в формулу добавить все варианты деления размеров большой коробки на малую и выбрать максимальное произведение. Но.. нет ли более элегантного решения?
 
и сколько вариантов деления получилось?
 
Если не изменяет память, то должно получиться 3! = 6. Так и получилось. И формула километровая:)
 
Просто рассчитать максимальную вместимость, если все коробки лежат одинаково, можно формулой:
Код
=МАКС(10^МУМНОЖ(LOG(ОТБР(A3:C3/ИНДЕКС(E3:G3;Ч(ИНДЕКС({1;2;3:1;3;2:2;1;3:2;3;1:3;1;2:3;2;1};)))));СТРОКА(1:3)^0))
=МАКС(10^МУМНОЖ(LOG(ОТБР(A3:C3/ИНДЕКС(E3:G3;Ч(ИНДЕКС({1;2;3:1;3;2:2;1;3:2;3;1:3;1;2:3;2;1};)))));{1:1:1}))
Изменено: Светлый - 17.06.2021 15:40:24
 
У Вас результат получился всего 98, меня просто при ручной раскладке 114 (если можно крутить маленькие коробки и не заморачиваться с количеством комбинаций)
- первый ряд: - сторона 40 - 10х4; сторона 50 - 7х7 итого 70 шт
- второй ряд (высота остаток от первого ряда 12) сторона - 40 - 18х2; сторона 50 - 7х7; в высоту 4х3 итого 2х7х3 = 42
- в оставшееся расстояние по стороне 40 (40-18х2) войдет ешё две коробки итого 70 + 42 + 2 = 114
Изменено: msi2102 - 17.06.2021 15:50:27
 
Цитата
msi2102 написал:
И какой результат у Вас получился?
Цитата
Светлый написал:
если все коробки лежат одинаково,
Получилось 98.
 
Ну и моя формула, раз сделал (по сути тоже самое)
 
Благодарю, друзья! Все три варианта рабочие.
msi2102, моя вина, не уточнил, что раскладка должна быть одинаковой для всех маленьких коробок, такое уж требование фасовки..(
Но эффективность наполнения значительно выше у Вас, надо будет подумать как бы это внедрить с технической стороны.
И как теперь для каждой позиции такое просчитать автоматически :D  
 
Еще вариант формулы
Код
=МАКС(10^МУМНОЖ(LOG(ЦЕЛОЕ(A3:C3/ВЫБОР({1;2;3:1;3;2:2;1;3:2;3;1:3;1;2:3;2;1};E3;F3;G3)));{1:1:1}))
 
Я тут немного побаловался. Сделал многослойную загрузку коробки. Позволяет максимально загрузить один слой, потом с поворотом коробочек второй слой и с новым поворотом третью порцию. Пока не разбирался, как полностью оптимизировать. Сделал, чтобы можно было на выбор в каждом слое воспользоваться одним из двух алгоритмов оптимизации. Значения от 0 до 7. Можно сделать четвёртый слой, формулы протягиваемые, но встретится ли такая комбинация, неизвестно. Если оставить 0, то покажет оптимальную загрузку при одинаковом расположении коробочек.
Страницы: 1
Наверх