Предположим, что у нас есть несколько квадратов одинакового размера. Мы хотим нарисовать прямоугольники n
(здесь есть красные и желтые прямоугольники), чтобы содержать эти квадраты.Оптимизированное размещение квадратов одинакового размера в прямоугольниках
Цель состоит в том, чтобы иметь как можно меньше пространства впустую.
В приведенном ниже примере n = 2
, а решение справа предпочтительнее, так как оно приводит к одному свободному пространству.
Существуют ли уже известные алгоритмы для решения этих проблем?
ОБНОВЛЕНИЕ: Расположение квадратов произвольно и они всегда превышают ось X!
UPDATE2: Для того, чтобы вопрос проще, давайте предположим, что так называемые контейнерные прямоугольники друг на друга! (Красные и желтые прямоугольники здесь)
Чуть более сложный случай: давайте предположим, два прямоугольника используются для этого тоже. Как видно, 3-е решение приводит к наименее свободному пространству.
1st: вы можете переборщить эту проблему, 2-й: использовать жадный алгоритм, 3-й: построить дерево и разрезать поддеревья, которые слишком много теряют пробелы – Thomas
Что происходит с перекрывающейся красной/желтой коробкой? разрешено или нет? – Thomas
@ Сила тёмной грусти кажется медленной. Поскольку это проблема в ее простейшей форме, у меня может быть много прямоугольников. – Vahid