Problème de reconfiguration «serpent»


13

En écrivant un petit post sur la complexité des jeux vidéo Nibbler et Snake ; J'ai trouvé que les deux peuvent être modélisés comme des problèmes de reconfiguration sur les graphes planaires; et il semble peu probable que de tels problèmes n'aient pas été bien étudiés dans le domaine de la planification du mouvement (imaginez par exemple une chaîne de chariots ou de robots liés). Les jeux sont bien connus, mais voici une courte description du modèle de reconfiguration associé:

PROBLÈME DE SERPENT

Entrée : étant donné un graphe planaire , l galets p 1 , . . . , P l sont placés sur des nœuds u 1 , . . . , u l qui forment un chemin simple. Les cailloux représentent le serpent , et le premier p 1 est sa tête. La tête peut être déplacée de sa position actuelle vers un nœud libre adjacent, et le corps la suit. Certains nœuds sont marqués d'un point; lorsque la tête atteint un nœud avec un point, le corps augmente deg=(V,E)lp1,...,plu1,...,ulp1 cailloux dans les e mouvements suivants de la tête. Le point sur le nœud est supprimé après la traversée du serpent.ee

Problème : Nous demandons si le serpent peut être déplacé le long du graphique et atteindre une configuration cible où la configuration cible est la description complète de la position du serpent, c'est-à-dire la position des cailloux.T

Il est facile de prouver que le problème SNAKE est NP-difficile sur les graphes planaires de degré maximum 3 même si aucun point n'est utilisé et également sur les graphes de grille SOLIDE si nous pouvons utiliser un nombre arbitraire de points. Les choses se compliquent sur les graphiques à grille solide sans points (c'est lié à un autre problème ouvert).

Je voudrais savoir si le problème a été étudié sous un autre nom.
et, en particulier, s'il y a une preuve qu'il est en NP ...

Edit: le problème s'est avéré être PSPACE complet même sur les graphes planaires et le résultat semble très intéressant, il reste donc à savoir s'il s'agit d'un nouveau problème et s'il existe des résultats connus à ce sujet.

entrez la description de l'image ici
Un exemple simple (les cailloux sont représentés en vert, la tête du serpent est P1).


1
NPNPeNP

Pouvez-vous fournir une définition meilleure et claire de la configuration cible? Par exemple, que voulez-vous dire par une description complète de la position du serpent?
Saeed

@Saeed: la configuration cible est simplement la position finale des cailloux (ie le serpent). J'ajouterai un chiffre pour clarifier le problème.
Marzio De Biasi

Votre question était suffisamment claire, mais j'ai mélangé la terminologie dans mon commentaire. Il devrait lire "points" partout au lieu de "cailloux".
Tom van der Zanden

@TomvanderZanden: ok merci, je suis d'accord avec toi (voir aussi mon commentaire sur la réponse de Zimmux). J'ai écrit "... avec ou sans points ..." pour dire qu'ils ne sont pas pertinents; mais ce n'était pas assez clair; j'ai donc édité la question et l'ai rendue plus explicite.
Marzio De Biasi

Réponses:


8

Déplacer un serpent d'une position à une autre est PSPACE complet. Snake est trivialement dans PSPACE. Nous donnons une réduction de dureté PSPACE à partir de la logique de contrainte non déterministe de Hearn.

Logique de contrainte non déterministe

12223132 . Le premier type de sommet est appelé Et et le dernier est appelé Ou (voir figure). Gadgets NCL

Serpent

Dans notre construction, la tête du serpent chassera sa queue à une petite distance et sera obligée de répéter le même cycle avec des modifications mineures. Nous incorporons chaque bord du graphe de contraintes comme sur la figure (bords montrés en rouge), où nous indiquons la position du serpent par des lignes épaisses. Un bord a deux côtés (sommets) et le serpent prend la route centrale au sommet auquel le bord est dirigé. Inverser un bord

Pour inverser un bord, le serpent efface d'abord la route centrale puis prend la route centrale une fois que sa tête atteint le sommet opposé.

2

Serpent et Serpent ou

Enfin, les lignes noires de tous les gadgets de bord sont connectées pour former un seul cycle, de sorte que la tête du serpent poursuit sa queue. Si entre deux gadgets de bord, nous rendons le chemin noir suffisamment long, le serpent doit toujours parcourir les chemins noirs dans le même ordre cyclique.

Pour montrer que les chemins noirs peuvent toujours être construits de manière plane, considérons un sous-arbre couvrant (bords épais dans la figure ci-dessous) du graphe de contraintes. Ensuite, nous pouvons faire suivre les bords noirs de cet arbre comme illustré ci-dessous, ce qui donne un graphique planaire.

Spanning Subtree Cycle planaire

La position cible du serpent peut être dérivée par la même transformation. Par conséquent, reconfigurer un serpent est PSPACE complet, même sur des graphes planaires.


Génial! :-) :-) :-)
Marzio De Biasi
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.