раскладка прямоугольников на листе
От: dmitryk1  
Дата: 01.02.07 07:49
Оценка:
Почитал топик про хитрую сортировку, мало что понял, но вспомнил одну так и не решённую мной задачу:

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

Сам я додумался только до последовательного перебора — когда подставляю в верхний левый угол листа один квадратик, к нему справа следущий и так до конца строки, потом снизу новую строку, с проверкой выпирающих в верхней строке.

И дополнительное, не обязательное условие, чтобы можно было полученную раскладку резать по прямым линиям. Например: у нас есть 10 мелких в верхней строке, один крупный в следущей слева и 5 помельче справа. сначала отрезаем мелкие. потом отрезаем крупный от пяти соседних и их уже шинкуем.

В общем вот такой вопрос (такой алгоритм реализуется в мебельных конторах из ДСП детали делают и есть программы, но их алгоритма я не понимаю ).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.