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

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

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

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

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

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

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

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

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

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

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

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

Комментарии