Задача об упаковке в контейнеры с ограничениями на остатки

Калькулятор решает задачу об упаковке в контейнеры с ограничениями на оставшееся свободное место в контейнере. Создано по запросу пользователя.

Эта страница существует благодаря следующим персонам

Timur

Timur

Создан: 2016-08-06 14:50:59, Последнее изменение: 2020-11-03 14:19:33
Creative Commons Attribution/Share-Alike License 3.0 (Unported)

Этот материал распространяется на условиях лицензии Creative Commons Attribution/Share-Alike License 3.0 (Unported). Это означает, что вы можете размещать этот контент на своем сайте или создавать на его основе собственный (в том числе и в коммерческих целях), при условии сохранения оригинального лицензионного соглашения. Кроме того, Вы должны отметить автора этой работы, путем размещения HTML ссылки на оригинал работы https://planetcalc.ru/5752/. Пожалуйста оставьте без изменения все ссылки на других авторов данной работы или работы, на основе которой создана данная работа (если таковые имеются в спроводительном тексте).

Данный калькулятор был создан по запросу пользователя Калькулятор раскроя панели по ширине.

Задача формулировалась следующим образом: Нужен калькулятор для раскроя заказов с учетом остатков при порезке. Например: Имеются панели длиной 13500 мм18 шт и есть заказ: 9000мм9 шт и 4500мм9 шт 63002. Суть алгоритма такая: берем 913500 и делаем 99000 и 94500, остаток равен 0. Потом берем 213500 и делаем 26300, остаток 27200, так как остаток в 900 мм не выгоден, если делать с одной панели. Имеется условия: 1) остаток должен быть либо 2000 мм и выше. Либо до 700 мм не больше. То есть, мне необходимо знать как выгоднее раскроить материал либо без остатков, либо с остатком приемлемого размера. Хотелось бы, чтобы условную длину панели для резки можно было вносить вручную.

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

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

PLANETCALC, Задача об упаковке в контейнеры с ограничениями на остатки

Задача об упаковке в контейнеры с ограничениями на остатки

Набор элементов для упаковки

Размер элементаКоличество элементов данного размера
Записей:

Знаков после запятой: 2
Общее число контейнеров
 
Общее использование контейнеров (%)
 
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.

Ссылка скопирована в буфер обмена
PLANETCALC, Задача об упаковке в контейнеры с ограничениями на остатки

Комментарии