Я работаю над проектом, в котором я делаю лист алюминиевой экструзии.
Алюминиевые профили имеют длину 5 м.
У меня есть список меньших длин, которые необходимо вырезать из алюминиевых профилей длиной 5 м.
Меньшую длину необходимо обрезать в том порядке, в котором образуется наименьшее количество обрезанных отходов из алюминиевых профилей длиной 5 м.
В настоящее время я упорядочиваю список вырезов таким образом, что обычно самая длинная из меньших длин обрезается первой, а самая короткая из меньших длин обрезается последней. Исключением из этого правила является то, что когда более короткая длина не подходит к тому, что осталось от 5-метровой длины алюминиевого профиля, я использую самую длинную более короткую длину, которая подходит.
Похоже, что это дает очень эффективный (очень мало срезанных отходов) список резки и не занимает много времени для расчета. Однако я полагаю, что хотя список вырезов эффективен очень , он не обязательно является наиболее эффективным.
Кто-нибудь знает способ расчета наиболее эффективного списка вырезов, который можно рассчитать за разумное время?
РЕДАКТИРОВАТЬ: Спасибо за ответы, я буду продолжать использовать «жадный» подход, поскольку он, кажется, делает очень хорошую работу (out выполняет любые попытки человека создать эффективный список вырезывания) и работает очень быстро.