Я работаю над проектом, где я создаю список разрезания алюминиевой экструзии.
Алюминиевые экструзии имеют длину 5 м.
У меня есть список меньших длин, которые нужно вырезать из 5-миллиметровой длины алюминиевых профилей.
Меньшие длины должны быть разрезаны в порядке, при котором образуется наименьшее количество отработанных отходов с 5-миллиметровой длины алюминиевых профилей.
В настоящее время я заказываю список резки таким образом, что в большинстве случаев самая длинная из меньших длин разрезается первой, а самая короткая из меньших длин уменьшается. Исключением из этого правила является всякий раз, когда более короткая длина не будет соответствовать тому, что осталось от алюминиевой экструзии длиной 5 м, я использую самую длинную более короткую длину, которая будет соответствовать.
Это, по-видимому, создает очень эффективный (очень маленький отрезной отрезной) список сокращений и не требует много времени для расчета. Я полагаю, однако, что хотя режущий список эффективен очень, он не обязательно эффективен наиболее.
Кто-нибудь знает способ расчета наиболее эффективного списка реза, который может быть рассчитан за разумный промежуток времени?
EDIT: Спасибо за ответы, я продолжу использовать "жадный" подход, поскольку он, кажется, делает очень хорошую работу (из-за каких-либо попыток человека создать эффективный список реза) и очень быстро.