blazerer's blog

By blazerer, 13 years ago, In Russian

Обычно не очень положительно отношусь к подобного рода штукам в эфире, но тут, мне показалось, что может кому-то быть интересным.

Надо как-то решить следующую задачу:
Даны: основные прямоугольные листы размера a на b в количестве равном n, m заказов, также прямоугольников, характеризующихся своими габаритами, и количеством, в котором они должны быть исполнены. Мы должны размещать листы заказов на основном листе. Все листы заказов по своей максимальной характеристике размера меньше максимальной для основного листа и вообще любой заказ помещается на основной лист.
Требуется: расположить листы заказов на основном листе следующим образом:
1) Чтобы минимизировать количество используемых основных листов (чтобы их было меньше n для начала).
2) Чтобы количество различных конфигураций заполнения основных листов тоже было "достаточно близким к минимуму".
3) Допускается небольшое перевыполнение плана, когда какого-то конкретного заказа напечатано чуть больше, чем надо.
Задача не требует идеальных решений, да и их существования сомнительно для меня. Количество заказов достаточно мало (исчисляется количеством пальцев на паре рук), а размеры не больше максимального количества миллиметров в формате А3, первые два условия не перечислены в порядке предпочтительности. В наличие каких-то глобальных оптимумов, как я уже сказал, я слабо верю. Думал над жадностью, дп, переборами, ничего толкового пока в голову не пришло, что было бы можно назвать "нормальным" решением .
Было бы интересно услышать ваши мысли по этому поводу :)
  • Vote: I like it
  • +5
  • Vote: I do not like it