Выше находится ссылка на бесплатный проект, который что именно я ищу. Я просто ищу правильное руководство, чтобы заставить его работать.
Я работаю над минимизацией потерь при резке экструзией алюминия для производителей алюминиевых раздвижных окон, и я не способен выяснить, какой алгоритм/структуру данных мне следует использовать для решения этой проблемы.
Я провел фундаментальное исследование и обнаружил, что проблема относится к задаче сокращения запасов (также называемой Одномерная задача разрезания), Задача линейного программирования, Жадный алгоритм. НО я не могу решить, какой из них мне выбрать и с чего начать.
Кратко о проблеме:
Как правило, производители окон могут приобрести 3 размера материалов.
Код: Выделить всё
12 | 15 | 16 (IN FT)
ШИРИНА x ВЫСОТА (В ФУТАХ) >
1) 6 х 8 – 10 окон
2) 9 х 3 – 20 окон
Расчет: (2 х Ширина) + (2 х Высота). Итак, исходя из вышеуказанных размеров окна, их необходимо выдавливать следующим образом.
1) Части размером 6 футов (футы) -> 2 x 10 = 20
2) Детали размером 8 футов (FT) -> 2 x 10 = 20
3) Детали размером 9 футов (FT) -> 2 x 20 = 40
4) Детали размером 3 фута (FT) -> 2 x 20 = 40
Используя рюкзак, мы можем найти комбинацию, но она имеет ограничение на размер только до 1, тогда как здесь, в моем случае, у меня есть 3 разных размера, из которых я хотел бы создать наилучшую оптимальную комбинацию для проблемы раскроя материала. .
Мне нужна помощь в том, как мне действовать при решении вышеуказанной проблемы в отношении структуры данных и алгоритма на Java или любом другом языке. Мои знания по математике не на должном уровне, поэтому я столкнулся с проблемой реализации логики в моем проекте и хотел бы получить помощь от сообщества.
Подробнее здесь: https://stackoverflow.com/questions/570 ... g-knapsack