Estoy interesado en el problema de empacar copias idénticas de rectángulos (2 dimensiones) en un polígono convexo (2 dimensiones) sin superposiciones. En mi problema, no puede rotar los rectángulos y puede suponer que están orientados en paralelo con los ejes. Solo se le dan las dimensiones de un rectángulo y los vértices del polígono y se le pregunta cuántas copias idénticas del rectángulo se pueden empaquetar en el polígono. Si se le permite rotar los rectángulos, creo que este problema es NP-duro. Sin embargo, ¿qué se sabe si no puede? ¿Qué tal si el polígono convexo es simplemente un triángulo? ¿Existen algoritmos de aproximación conocidos si el problema es NP-hard?
Resumen hasta el momento (21 de marzo '11). Peter Shor observa que podemos considerar este problema como uno de los cuadrados de unidades de empaque en un polígono convexo y que ese problema está en NP si impone un límite polinómico en el número de cuadrados / rectángulos que se empacarán. Sariel Har-Peled señala que hay un PTAS para el mismo caso polinomialmente delimitado. Sin embargo, en general, el número de cuadrados empaquetados puede ser exponencial en el tamaño de la entrada, que solo consiste en una lista posiblemente corta de pares de enteros. Las siguientes preguntas parecen estar abiertas.
¿Es la versión completa sin límites en NP? ¿Hay un PTAS para la versión ilimitada? ¿Es el caso delimitado polinomialmente en P o NPC? Y mi favorito personal, ¿es el problema más fácil si solo te limitas a empacar cuadrados de unidades en un triángulo?
Respuestas:
El problema puede reformularse como elegir un número máximo de puntos dentro de un polígono convexo, de modo que cada par de ellos esté a distancia (debajo de la métrica ) al menos 1 uno del otro (solo piense en los centros de los cuadrados) . Esto a su vez está relacionado con el mismo problema donde uno usa la distancia euclidiana regular. Esto, a su vez, está relacionado con el mallado, donde uno está interesado en dividir un polígono en regiones de buen comportamiento (es decir, toma el diagrama de Voronoi de los centros [ver Teselaciones Centroidales de Voronoi]).L∞ 1
De todos modos, una aproximación es bastante fácil. Desliza aleatoriamente una cuadrícula de longitud lateral O ( 1 / ϵ ) . Recorte el polígono en la cuadrícula y resuelva el problema dentro de cada pieza de intersección del polígono con la cuadrícula utilizando la fuerza bruta. Se debe seguir fácilmente un algoritmo con tiempo de ejecución O ( M ∗ n o i s e ( ϵ ) ) , donde M es el número de puntos (es decir, rectángulos) y(1−ϵ) O(1/ϵ) O(M∗noise(ϵ)) M noise(ϵ) es una función horrenda que depende solo de .ϵ
fuente
Estos dos documentos abordan su problema:
EG Birgin y RD Lobato, " Empaquetamiento ortogonal de rectángulos idénticos dentro de regiones convexas isotrópicas ", Computers & Industrial Engineering 59, pp. 595-602, 2010.
EG Birgin, JM Martínez, FH Nishihara y DP Ronconi, " Empaque ortogonal de artículos rectangulares dentro de regiones convexas arbitrarias por optimización no lineal ", Computers & Operations Research 33, pp. 3535-3548, 2006.
fuente
Peter Shor observó que al reescalar, este problema se convierte en empacar cuadrados unitarios en un polígono convexo.
Editar: el resto de esta respuesta no se aplica, ya que elimina el requisito explícitamente establecido de que las formas que se empaquetarán sean del mismo tamaño.
La pregunta relacionada NP-Hardness de un caso especial de problema de empaque ortogonal menciona un artículo con el resultado necesario para la primera pregunta:
Del periódico:
Por lo tanto, el problema es NP-duro incluso para el caso especial donde los rectángulos a empacar son similares al contenedor. (A diferencia de los autores de este artículo, no estoy completamente convencido de que el problema esté en NP, ya que las posiciones pueden tener que especificarse con una gran precisión, lo que puede hacer que la verificación ya no sea polinómica en el tamaño de entrada. )
fuente
Quizás este documento pueda ser de su interés:
Mosaico de un polígono con rectángulos de Kenyon & Kenyon en FOCS 92.
fuente
Si el polígono en el que desea empacar no es necesariamente convexo, entonces creo que el problema se vuelve NP-difícil. Aquí hay una prueba muy incompleta. La reducción es de algún problema de tipo Planar-3-SAT. Para cada variable puede tener un lugar de 1.1 x 1, dependiendo de dónde coloque un cuadrado en esta área determinará si su variable es verdadero o falso. Además, si deja .1 área a la izquierda / derecha, entonces puede mover otras dos casillas un poco más adentro, y también las que están detrás de ellas, eventualmente dando otro .1 espacio libre en otro lugar que ahora afecta a cuatro casillas y así sucesivamente. Después de tener tantas copias como las ocurrencias del literal respectivo, conecta estos tubos al componente de la cláusula respectiva y nuevamente utiliza un dispositivo similar para asegurarse de que de los tres tubos entrantes al menos uno tenga un espacio adicional .1.
fuente