Problema di riconfigurazione "Snake"


13

Mentre scrivo un piccolo post sulla complessità dei videogiochi Nibbler e Snake ; Ho scoperto che entrambi possono essere modellati come problemi di riconfigurazione su grafici planari; e sembra improbabile che tali problemi non siano stati ben studiati nell'area della pianificazione del movimento (immaginiamo ad esempio una catena di carrelli o robot collegati). I giochi sono ben noti, tuttavia questa è una breve descrizione del modello di riconfigurazione correlato:

PROBLEMA DEL SERPENTE

Ingresso : dato un grafo planare , l ciottoli p 1 , . . . , P l sono posti su nodi u 1 , . . . , U l che formano un percorso semplice. I ciottoli rappresentano il serpente e il primo p 1 è la sua testa. La testa può essere spostata dalla sua posizione corrente a un nodo libero adiacente e il corpo la segue. Alcuni nodi sono contrassegnati da un punto; quando la testa raggiunge un nodo con un punto, il corpo aumenta disol=(V,E)lp1,...,plu1,...,ulp1 ciottoli nelle seguenti e mosse della testa. Il punto sul nodo viene eliminato dopo l'attraversamento del serpente.ee

Problema : chiediamo se il serpente può essere spostato lungo il grafico e raggiungere una configurazione bersaglio cui la configurazione bersaglio è la descrizione completa della posizione del serpente, cioè la posizione dei ciottoli.T

È facile dimostrare che il problema SNAKE è NP-difficile su grafici planari di massimo grado 3 anche se non vengono utilizzati punti e anche su grafici a griglia SOLID se possiamo usare un numero arbitrario di punti. Le cose si complicano su solidi grafici a griglia senza punti (è correlato a un altro problema aperto).

Vorrei sapere se il problema è stato studiato con un altro nome.
e, in particolare, se c'è una prova che è in NP ...

Modifica: il problema si è rivelato completo per PSPACE anche su grafici planari e il risultato sembra molto interessante, quindi resta da scoprire se si tratta di un nuovo problema e se ci sono risultati noti al riguardo.

inserisci qui la descrizione dell'immagine
Un semplice esempio (i ciottoli sono mostrati in verde, la testa del serpente è P1).


1
NPNPeNP

Potete fornire una definizione migliore e chiara per la configurazione di destinazione? ad es. cosa intendi per descrizione completa della posizione del serpente?
Saeed,

@Saeed: la configurazione target è semplicemente la posizione finale dei ciottoli (cioè il serpente). Aggiungerò una cifra per chiarire il problema.
Marzio De Biasi,

La tua domanda era abbastanza chiara, ma nel mio commento ho confuso la terminologia. Dovrebbe leggere "punti" ovunque anziché "ciottoli".
Tom van der Zanden,

@TomvanderZanden: ok grazie, sono d'accordo con te (vedi anche il mio commento alla risposta di Zimmux). Ho scritto "... con o senza punti ..." per dire che sono irrilevanti; ma non era abbastanza chiaro; così ho modificato la domanda e l'ho resa più esplicita.
Marzio De Biasi,

Risposte:


8

Spostare un serpente da una posizione all'altra è PSPACE completo. Snake è banalmente in PSPACE. Diamo una riduzione della durezza PSPACE dalla logica del vincolo non deterministico di Hearn.

Logica vincolata non deterministica

12223132Gadget NCL

Serpente

Nella nostra costruzione, la testa del serpente inseguirà la coda a una piccola distanza e sarà costretta a ripetere lo stesso ciclo con lievi modifiche. Incorporiamo ogni bordo del grafico del vincolo come nella figura (bordi mostrati in rosso), dove indichiamo la posizione del serpente con linee spesse. Un bordo ha due lati (vertici) e il serpente prende la via centrale sul vertice verso il quale è diretto il bordo. Invertire un bordo

Per invertire un bordo, il serpente prima cancella la rotta centrale e poi prende la rotta centrale una volta che la sua testa raggiunge il vertice opposto.

2

Snake And Snake Or

Infine, le linee nere di tutti i gadget perimetrali sono collegate per formare un singolo ciclo, quindi la testa del serpente insegue la coda. Se tra due gadget di bordo, facciamo il percorso nero sufficientemente lungo, il serpente deve sempre attraversare i percorsi neri nello stesso ordine ciclico.

Per mostrare che i percorsi neri possono sempre essere costruiti in modo planare, prendere in considerazione una sottostruttura spanning (bordi spessi nella figura sotto) del grafico del vincolo. Quindi possiamo fare in modo che i bordi neri seguano questo albero come illustrato di seguito, ottenendo un grafico planare.

Sottostruttura di spanning Ciclo Planare

La posizione target del serpente può essere derivata dalla stessa trasformazione. Quindi, la riconfigurazione di un serpente è completa per PSPACE, anche su grafici planari.


Grande! :-) :-) :-)
Marzio De Biasi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.