Estou interessado no problema de empacotar cópias idênticas de retângulos (bidimensionais) em um polígono convexo (bidimensional) sem sobreposições. No meu problema, você não tem permissão para girar os retângulos e pode assumir que eles estão orientados paralelamente aos eixos. Você recebe as dimensões de um retângulo e os vértices do polígono e pergunta quantas cópias idênticas do retângulo podem ser empacotadas no polígono. Se você tem permissão para girar os retângulos, esse problema é conhecido como NP-hard, acredito. No entanto, o que se sabe se você não pode? E se o polígono convexo for simplesmente um triângulo? Existem algoritmos de aproximação conhecidos se o problema é realmente NP-difícil?
Resumo até agora (21 de março de 11). Peter Shor observa que podemos considerar esse problema como um dos quadrados da unidade de empacotamento em um polígono convexo e que esse problema está no NP se você impuser um limite polinomial ao número de quadrados / retângulos a serem empacotados. Sariel Har-Peled ressalta que existe um PTAS para o mesmo caso polinomialmente limitado. No entanto, em geral, o número de quadrados empacotados pode ser exponencial no tamanho da entrada, que consiste apenas em uma lista possivelmente curta de pares de números inteiros. As seguintes perguntas parecem estar abertas.
A versão completa e ilimitada está no NP? Existe um PTAS para a versão ilimitada? O caso polinomialmente delimitado está em P ou NPC? E meu favorito pessoal, o problema é mais fácil se você apenas se limitar a empacotar quadrados de unidades em um triângulo?
Respostas:
O problema pode ser reformulado como escolher um número máximo de pontos dentro de um polígono convexo, de modo que a cada par deles é na distância (sob a métrica) pelo menos 1 entre si (basta pensar sobre os centros dos quadrados) . Por sua vez, isso está relacionado ao mesmo problema em que se usa a distância euclidiana regular. Por sua vez, isso está relacionado à criação de malhas, onde se interessa em dividir um polígono em regiões bem comportadas (ou seja, você toma o diagrama de Voronoi dos centros [ver mosaicos de Centoral Voronoi]).L∞ 1
De qualquer forma, um aproximação ϵ ) é bastante fácil. Você desliza aleatoriamente uma grade do comprimento lateral S ( 1 / ϵ ) . Prenda o polígono na grade e resolva o problema dentro de cada parte da interseção do polígono com a grade usando força bruta. Um algoritmo com tempo de execução O ( M ∗ n o i s e ( ϵ ) ) deve seguir facilmente, onde M é o número de pontos (ou seja, retângulos) e n o i s e ( ϵ )(1−ϵ) O(1/ϵ) O(M∗noise(ϵ)) M noise(ϵ) é uma função horrenda que depende apenas de .ϵ
fonte
Estes dois documentos abordam seu problema:
EG Birgin e RD Lobato, " Embalagem ortogonal de retângulos idênticos dentro de regiões convexas isotrópicas ", Computers & Industrial Engineering 59, pp. 595-602, 2010.
EG Birgin, JM Martínez, FH Nishihara e DP Ronconi, " Embalagem ortogonal de itens retangulares dentro de regiões convexas arbitrárias por otimização não linear ", Computers & Operations Research 33, pp. 3535-3548, 2006.
fonte
Peter Shor observou que, ao redimensionar, esse problema se torna sobre empacotar quadrados de unidades em um polígono convexo.
Editar: o restante desta resposta não se aplica, pois elimina o requisito explicitamente declarado de que as formas a serem compactadas são do mesmo tamanho.
A questão relacionada NP-Dureza de um caso especial de problema de empacotamento ortogonal menciona um artigo com o resultado necessário para a primeira pergunta:
Do artigo:
Portanto, o problema é NP-difícil, mesmo no caso especial em que os retângulos a serem embalados são semelhantes ao contêiner. (Ao contrário dos autores deste artigo, não estou completamente convencido de que o problema esteja no NP, pois as posições podem precisar ser especificadas com grande precisão, o que pode fazer com que a verificação não seja mais polinomial no tamanho da entrada. )
fonte
Talvez este artigo possa ser do seu interesse:
Mosaico de polígonos com retângulos de Kenyon & Kenyon no FOCS 92.
fonte
Se o polígono no qual você deseja compactar não for necessariamente convexo, acho que o problema se torna difícil para NP. Aqui está uma prova muito superficial. A redução é devido a algum problema do tipo Planar-3-SAT. Para cada variável, você pode ter um lugar de 1,1 x 1, dependendo de onde nesta área você colocar um quadrado irá determinar se sua variável é verdadeira ou falsa. Além disso, se você deixar a área .1 esquerda / direita, poderá mover outros dois quadrados um pouco mais para dentro e também os que estão atrás deles, eventualmente dando outro espaço .1 livre em outro lugar que juntos agora afetem quatro quadrados e assim por diante. Depois de ter tantas cópias quanto as ocorrências dos respectivos literais, você conecta esses tubos ao componente de cláusula respectivo e, em seguida, novamente usa algum dispositivo semelhante para garantir que dos três tubos de entrada pelo menos um tenha espaço .1 extra.
fonte