Je m'intéresse au problème d'emballer des copies identiques de rectangles (2 dimensions) dans un polygone convexe (2 dimensions) sans chevauchements. Dans mon problème, vous n'êtes pas autorisé à faire pivoter les rectangles et pouvez supposer qu'ils sont orientés parallèlement aux axes. On vous donne simplement les dimensions d'un rectangle et les sommets du polygone et vous avez demandé combien de copies identiques du rectangle peuvent être regroupées dans le polygone. Si vous êtes autorisé à faire pivoter les rectangles, ce problème est connu pour être NP-difficile, je crois. Cependant, que sait-on si vous ne le pouvez pas? Et si le polygone convexe n'était qu'un triangle? Existe-t-il des algorithmes d'approximation connus si le problème est en effet NP-difficile?
Résumé jusqu'à présent (21 mars '11). Peter Shor observe que nous pouvons considérer ce problème comme l'un des carrés d'unité d'emballage dans un polygone convexe et que ce problème est dans NP si vous imposez une limite polynomiale au nombre de carrés / rectangles à emballer. Sariel Har-Peled fait remarquer qu'il existe un PTAS pour le même cas borné polynomialement. Cependant, en général, le nombre de carrés emballés peut être exponentiel dans la taille de l'entrée qui ne se compose que d'une liste éventuellement courte de paires d'entiers. Les questions suivantes semblent être ouvertes.
La version complète sans limite est-elle en NP? Existe-t-il un PTAS pour la version illimitée? Le cas est-il polynomialement borné en P ou NPC? Et mon préféré, le problème est-il plus facile si vous vous limitez à emballer les carrés d'unité dans un triangle?
Réponses:
Le problème peut être reformulé en choisissant un nombre maximum de points à l'intérieur d'un polygone convexe, de telle sorte que chaque paire d'entre eux soit à distance (sous la métrique ) au moins uns des autres (pensez simplement au centre des carrés ). Ceci est à son tour lié au même problème où l'on utilise la distance euclidienne régulière. Ceci est à son tour lié au maillage, où l'on est intéressé à diviser un polygone en régions bien comportées (c.-à-d., Vous prenez le diagramme de Voronoï des centres [voir les tessellations du centroïde Voronoï]). 1L∞ 1
Quoi qu'il en soit, une approximation est assez facile. Vous faites glisser au hasard une grille de longueur latérale . Coupez le polygone dans la grille et résolvez le problème à l'intérieur de chaque pièce d'intersection du polygone avec la grille en utilisant la force brute. Un algorithme avec le temps d'exécution devrait facilement suivre, où est le nombre de points (c.-à-d. Rectangles), et le est une fonction horrible qui ne dépend que de .O ( 1 / ϵ ) O ( M ∗ n o i s e ( ϵ ) ) M n o i s e ( ϵ ) ϵ( 1 - ϵ ) O ( 1 / ϵ ) O ( M∗ n o i s e ( ϵ ) ) M n o i s e ( ϵ ) ϵ
la source
Ces deux articles abordent votre problème:
EG Birgin et RD Lobato, " Emballage orthogonal de rectangles identiques dans les régions convexes isotropes ", Computers & Industrial Engineering 59, pp. 595-602, 2010.
EG Birgin, JM Martínez, FH Nishihara et DP Ronconi, " Emballage orthogonal d'articles rectangulaires dans des régions convexes arbitraires par optimisation non linéaire ", Computers & Operations Research 33, pp. 3535-3548, 2006.
la source
Peter Shor a observé qu'en redimensionnant, ce problème se posait au sujet de l'emballage des carrés d'unité dans un polygone convexe.
Edit: le reste de cette réponse ne s'applique pas, car il supprime l'exigence explicitement déclarée que les formes à emballer sont toutes de la même taille.
La question connexe NP-Dureté d'un cas particulier de problème d'emballage orthogonal mentionne un papier avec le résultat requis pour la première question:
Extrait du journal:
Par conséquent, le problème est NP-difficile même pour le cas spécial où les rectangles à emballer sont similaires au conteneur. (Contrairement aux auteurs de cet article, je ne suis pas complètement convaincu que le problème est en NP, car les positions peuvent devoir être spécifiées avec une grande précision, ce qui peut faire en sorte que la vérification ne soit plus polynomiale dans la taille d'entrée. )
la source
Peut-être que ce document peut vous intéresser:
Mosaïque d'un polygone avec des rectangles par Kenyon & Kenyon dans FOCS 92.
la source
Si le polygone dans lequel vous souhaitez emballer n'est pas nécessairement convexe, je pense que le problème devient NP-difficile. Voici une preuve très sommaire. La réduction provient d'un problème de type Planar-3-SAT. Pour chaque variable, vous pouvez avoir une place de 1,1 x 1, selon l'endroit où vous placez un carré déterminera si votre variable est vraie ou fausse. De plus, si vous quittez la zone .1 à gauche / à droite, vous pouvez déplacer deux autres carrés un peu plus à l'intérieur, ainsi que ceux derrière eux, pour éventuellement donner un autre espace libre de 0,1 ailleurs, qui ensemble affectent désormais quatre carrés et ainsi de suite. Une fois que vous avez autant de copies que d'occurrences du littéral respectif, vous connectez ces tubes au composant de clause respectif et utilisez à nouveau un gadget similaire pour vous assurer qu'au moins un des trois tubes entrants doit avoir un espace supplémentaire de 0,1.
la source