Mientras escribía una pequeña publicación sobre la complejidad de los videojuegos Nibbler y Snake ; Descubrí que ambos pueden modelarse como problemas de reconfiguración en gráficos planos; y parece poco probable que tales problemas no hayan sido bien estudiados en el área de planificación del movimiento (imagine, por ejemplo, una cadena de carros o robots vinculados). Los juegos son bien conocidos, sin embargo, esta es una breve descripción del modelo de reconfiguración relacionado:
PROBLEMA DE LA SERPIENTE
Entrada : dado un grafo planar , l guijarros p 1 , . . . , P l se colocan en los nodos u 1 , . . . , U l que forman un camino simple. Las piedras representan la serpiente , y la primera p 1 es su cabeza. La cabeza se puede mover de su posición actual a un nodo libre adyacente, y el cuerpo la sigue. Algunos nodos están marcados con un punto; cuando la cabeza alcanza un nodo con un punto, el cuerpo aumentará en guijarros en los siguientes correos movimientos de la cabeza. El punto en el nodo se elimina después del recorrido de la serpiente.
Problema : preguntamos si la serpiente se puede mover a lo largo del gráfico y alcanzar una configuración objetivo donde la configuración objetivo es la descripción completa de la posición de la serpiente, es decir, la posición de los guijarros.
Es fácil demostrar que el problema SNAKE es NP-hard en gráficos planos de grado máximo 3 incluso si no se utilizan puntos y también en gráficos de cuadrícula SÓLIDOS si podemos usar un número arbitrario de puntos. Las cosas se complican en gráficos de cuadrícula sólida sin puntos (está relacionado con otro problema abierto).
Me gustaría saber si el problema se ha estudiado con otro nombre.
y, en particular, si hay una prueba de que está en NP ...
Editar: el problema resultó ser completo para PSPACE incluso en gráficos planos y el resultado parece muy interesante, por lo que queda por descubrir si es un problema nuevo y si se conocen resultados al respecto.
Un ejemplo simple (los guijarros se muestran en verde, la cabeza de la serpiente es P1).
fuente
Respuestas:
Mover una serpiente de una posición a otra es PSPACE completo. Snake es trivial en PSPACE. Proporcionamos una reducción de dureza PSPACE de la lógica de restricción no determinista de Hearn.
Lógica de restricción no determinista
Serpiente
En nuestra construcción, la cabeza de la serpiente perseguirá su cola a una pequeña distancia y se verá obligada a repetir el mismo ciclo con modificaciones menores. Incorporamos cada borde del gráfico de restricción como en la figura (los bordes se muestran en rojo), donde indicamos la posición de la serpiente por líneas gruesas. Un borde tiene dos lados (vértices) y la serpiente toma la ruta central en el vértice al que se dirige el borde.
Para revertir un borde, la serpiente primero despeja la ruta central y luego toma la ruta central una vez que su cabeza alcanza el vértice opuesto.
Finalmente, las líneas negras de todos los dispositivos de borde están conectadas para formar un solo ciclo, por lo que la cabeza de la serpiente persigue su cola. Si entre dos dispositivos de borde, hacemos que el camino negro sea lo suficientemente largo, la serpiente siempre debe atravesar los caminos negros en el mismo orden cíclico.
Para mostrar que los trazados negros siempre se pueden construir de manera plana, considere un subárbol de expansión (bordes gruesos en la figura a continuación) del gráfico de restricción. Luego podemos hacer que los bordes negros sigan este árbol como se ilustra a continuación, dando como resultado un gráfico plano.
La posición de destino de la serpiente puede derivarse de la misma transformación. Por lo tanto, la reconfiguración de una serpiente es PSPACE completa, incluso en gráficos planos.
fuente