Les puzzles «zéro-un» sont-ils complets?

18

Je suis intéressé par une légère variante du carrelage, le puzzle: chaque bord d'une tuile (carrée) est étiqueté avec un symbole de , et deux tuiles peuvent être placées l'une à côté de l'autre si le symbole sur le bord opposé d'une tuile est et le symbole sur le bord opposé de l'autre tuile est , pour certains . Puis, étant donné un ensemble de tuiles, peuvent-elles être placées dans un carré de (rotation mais pas retournement des tuiles) avec tous les bords correspondant correctement? (Il existe également une variante de ce problème dans laquelle quatre bords de cadrage de sont fournis et les pièces doivent s'insérer correctement dans ce cadre).k ˉ k k { 1 n } m 2 m × m 1 × m{1n,1¯n¯}kk¯k{1n}m2m×m1×m

Je sais que ce problème est NP-complet pour suffisamment grand , mais les limites que j'ai vues sur semblent être assez grandes; Je m'intéresse au problème pour les petites valeurs de et en particulier pour , le cas «zéro-un» (où chaque bord est étiqueté soit ou et les bords avec un doivent être mis en correspondance avec les bords avec un ). Ici, il n'y a (avec une symétrie de rotation) que six types de tuiles (la tuile tout-zéros, la tuile tout-un, la tuile avec trois zéros et un, la tuile avec trois uns et un zéro, et deux tuiles distinctes avec deux zéros et deux, '0011' et '0101'), donc une instance de problème n'est qu'une spécification den n n = 1 0 1 0 1 mnnnn=10101met un ensemble de cinq nombres , , , , et (représentant le nombre de chaque type de tuile) avec . Le problème est évidemment en NP (avec donné en unaire) puisqu'une solution peut simplement être présentée puis vérifiée en polynôme (en mT0000T0001T0011T0101T0111T1111T0000+T0001+T0011+T0101+T0111+T1111=m2mm), mais est-il connu pour être NP-complet, ou existe-t-il un algorithme de programmation dynamique qui peut être appliqué ici? Qu'en est-il du cas «encadré» où la spécification du problème comprend également les quatre bords du carré qui doivent être appariés? (Évidemment, si le boîtier sans cadre est NP-complet, le boîtier encadré l'est presque certainement aussi)

Steven Stadnicki
la source
2
Il ne peut pas être NP-complet, car il n'y a que entrées possibles, et selon le théorème de Mahaney, vous avez besoin de plus que cela pour rendre un problème NP-complet (sauf P = NP). Mais si vous utilisez un cadre, cette obstruction disparaît. Il pourrait donc être NP-complet avec un cadre. θ(m10)
Peter Shor
1
Une étape intermédiaire serait de prouver que le problème de décider si un puzzle de 6 tuiles partiellement rempli (c'est-à-dire que certaines pièces sont déjà sur le plateau et ne peuvent pas être déplacées) peut être correctement complété est NP-complet.
Vor

Réponses:

3

Puisque vous avez mentionné que vous souhaitez résoudre ce problème pour de petites valeurs de , je vous suggère d'essayer de l'implémenter dans un solveur SAT ou en tant que programme linéaire entier (ILP). Soit on pourra encoder les contraintes, mais de manière légèrement différente:n

  • Pour SAT, il y a un encodage très propre du choix de la tuile qui va dans chaque carré, et un encodage légèrement moins net de la contrainte concernant le nombre de chaque type de tuile (en utilisant l'arithmétique des bits).

  • Pour ILP, il y a un encodage très net de la contrainte concernant le nombre de chaque type de tuile disponible, et un encodage un peu moins net des contraintes sur lesquelles les tuiles peuvent être adjacentes les unes aux autres (mais elle est toujours exprimable, puisque vous pouvez exprimer des formules booléennes arbitraires dans ILP).

J'attendre à ce que pour les petites ou moyennes entreprises , cette approche pourrait fonctionner efficacement.n

DW
la source
Je conviens que cela semble être un moyen raisonnable de résoudre le problème, mais je suis moins intéressé par la résolution spécifique d'instances du problème que par la compréhension de sa complexité. (Par exemple, s'il est en P, il y a presque certainement une sorte d'approche de programmation dynamique qui surpasserait facilement les résolveurs de programmation SAT / linéaire abstraits sur le problème.)
Steven Stadnicki
@StevenStadnicki, OK, assez bien. Cependant, j'ai du mal à concilier ~ "Je suis intéressé à comprendre sa complexité (asymptotique) (par exemple, s'il est NP-complet)" ~ avec ~ "Je suis intéressé par le problème des petites valeurs de " ~ . n
DW
Désolé, cela peut être une certaine confusion dans la spécification du problème; J'utilise pour dénoter (essentiellement) le nombre de formes de bord et je suis particulièrement intéressé par le cas où il n'y a qu'une seule forme de bord à faire correspondre (pensez «innie» ou «outie»); Je m'interroge sur la complexité de ce problème en fonction de m , la taille de la grille. nm
Steven Stadnicki
@StevenStadnicki, ahh, mon erreur! Désolé, je n'ai pas lu assez attentivement. Cela a du sens - merci.
DW
Pas de soucis - j'aurais dû y penser dès le départ; quand je rentrerai, j'essaierai de modifier la question pour utiliser une paramétrisation plus «traditionnelle».
Steven Stadnicki