Complexité du puzzle polygone caché sur les grilles carrées?


10

Hiroimono est un puzzle populaire complet. Je m'intéresse à la complexité informatique d'un puzzle connexe.NP

Le problème est:

Entrée : étant donné un ensemble de points sur une grille carrée x et un entiern knnk

Question : Existe-t-il un polygone rectiligne (ses côtés parallèles à l' axe ou ) tel que le nombre de points sur les coins du polygone est d'au moins ?y kxyk

Chaque coin du polygone doit se trouver à l'un des points d'entrée (les plis ne sont donc autorisés qu'à un point d'entrée).

Quelle est la complexité de ce problème? Quelle est la complexité si la solution se limite aux polygones rectilignes convexes?

EDIT 13 avril: Formulation alternative: Trouvez un polygone rectiligne avec le maximum de coins sur les points donnés.


4
Les polygones rectilignes convexes ne devraient-ils pas être résolubles en temps polynomial par programmation dynamique?
Peter Shor

4
Oui, ça devrait.
Jeffε

@JeffE, qu'en est-il du cas général non convexe? Quelle est votre inclination?
Mohammad Al-Turkistany

2
pour beaucoup de ces problèmes, votre meilleur pari est de commencer avec quelque chose comme planaire 3SAT ou même planaire NAE-SAT. Ce sera horriblement laid, mais la planarité vous donne les structures dont vous pourriez avoir besoin.
Suresh Venkat

5
@Suresh Juste une note: sur Google, j'ai trouvé que la version planaire de NAE3SAT est en P ( portal.acm.org/… ).
Marzio De Biasi

Réponses:


6

J'ai pensé à cette réduction bizarre (les chances que ce soit faux sont élevées :-). Idée: réduction du chemin hamiltonien sur les graphes de grille de degré ; chaque nœud du graphe planaire peut être déplacé de telle manière que chaque "ligne" ( valeur ) et chaque "colonne" ( valeur ) contiennent au plus un nœud. Le graphique peut être mis à l'échelle et chaque nœud peut être remplacé par un gadget carré avec de nombreux points; les liens horizontaux entre les gadgets (les bords du graphique d'origine) sont créés en utilisant des paires de points sur des lignes distinctes, des liens verticaux en utilisant une paire de points sur des colonnes distinctes. Les traversées de nœuds sont forcées à l'aide des "nombreux points" des gadgets carrés.3yx

Le gadget de noeud est représenté dans la figure suivante:

entrez la description de l'image ici

Il a 3 "points d'interface" (sur des colonnes / lignes distinctes), et une bordure intérieure de points. Une polyligne qui traverse le gadget d'un point d'interface à un autre peut avoir un nombre de coins proportionnel à (trois traversées du gadget sont représentées sur la figure), en particulier le nombre de points d'angle est compris entre et (le nombre total de points du gadget est ). Le gadget peut être tourné pour obtenir d'autres combinaisons de points d'interface ( , , ).[W,N,E]C×CC2C2C+2C×C4+6[N,E,S][E,S,W][S,W,N]

Maintenant, nous pouvons déplacer le graphique de la grille planaire de telle manière que pour chaque paire de nœuds , et . Voir la figure suivante d'une simple grille . Ensuite, nous pouvons redimensionner le graphique et remplacer chaque nœud par le gadget ci-dessus. A ce stade, chaque gadget est "isolé": une polyligne ne peut pas passer d'un gadget à un autre.x 1x 2 y 1 y 2 4 × 3(x1,y1),(x2,y2)x1x2y1y24×3

entrez la description de l'image ici

Maintenant, nous pouvons simuler les bords du graphique d'origine en utilisant des paires de points en bas ou à droite, chaque paire sur une ligne séparée ou sur une colonne séparée; voir la figure suivante pour deux nœuds adjacents liés horizontalement (dans une nouvelle rangée du bas deux points sont ajoutés l'un sur la même colonne du point d'interface du premier gadget, l'autre sur la même colonne du point d'interface du deuxième gadget).WEW

entrez la description de l'image ici

Sur chaque gadget, il peut y avoir max points d'angle (1 généré par le point d'interface d'entrée, 1 généré par le point d'interface de sortie, 2 généré par le virage supplémentaire sur les traversées droites et 2C sur le zig-zag intérieur), les points utilisé pour les bords peut générer max points d'angle.2 e4+2C2e

Supposons que le graphe d'origine ait nœuds et arêtes, si nous choisissons , et comme le nombre de points d'angle qui doivent être utilisés, alors nous le polygone "caché" du puzzle à parcourir tous les gadgets; mais chaque gadget peut être entré / quitté exactement une fois (via une paire de cellules d'interface); le problème a donc une solution si et seulement si le graphique de grille d'origine a un chemin hamiltonien.e C > ( 4 n + 2 e ) k = 2 C nneC>(4n+2e)k=2Cn


5

Pas une réponse, juste quelques références. Tout d'abord, j'ai écrit un article (il y a longtemps!) Sur le cas où chaque point dans l'ensemble donné doit être un coin de polygone. Dans ce cas, il n'est pas surprenant qu'il y ait (au plus) un polygone, et il est facile de trouver: "Unicité de Connect-the-Dots Orthogonal", dans Computational Morphology , Ed. GT Toussaint, Elsevier, Hollande du Nord, 1988, 97-104.V

Deuxièmement, il y a une belle mise à jour de ce travail par Maarten Löffler et Elena Mumford, dans un article, " Connected Rectilinear Graphs on Point Sets ", Journal of Computational Geometry , 2 (1), 1-15, 2011. De leur résumé:

Nous étudions la question de savoir s'il existe une orientation telle que est l'ensemble de sommets d'un graphe rectiligne connecté dans cette orientation. ... Nous prouvons qu'au plus une telle orientation peut être possible, jusqu'à des rotations triviales de 90 degrés autour d'un axe.V

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.