Complessità di un problema di rete switch


17

Una rete di switch (il nome è inventato) è realizzata con tre tipi di nodi:

  • un nodo iniziale
  • un nodo finale
  • uno o più nodi Switch

Il nodo switch ha 3 uscite: sinistra, su, destra; ha due stati L e R e uno stato target TL o TR . Ogni interruttore può essere attraversato con le seguenti regole:

  • sempre da sinistra a su; lo stato dell'interruttore cambia in L
  • sempre da destra a su; lo stato dell'interruttore cambia in R
  • da Su a Sinistra solo se l'interruttore è nello stato L; lo stato non cambia
  • da Su a Destra se l'interruttore è nello stato R; lo stato non cambia
  • mai da sinistra a destra o da destra a sinistra

cambia nodo
Figura 1. Commutazione nodo nello stato L con stato target TR

Queste proprietà contengono anche:

  • 0, 1 o 2 delle uscite di un interruttore possono essere isolati (non collegati a un altro interruttore);
  • un percorso può semplicemente "toccare" un interruttore per cambiarne lo stato: entrare da sinistra ed uscire da sinistra o entrare da destra ed uscire da destra;
  • non ci sono restrizioni sul numero di volte che un interruttore può essere attraversato / toccato.

Il problema decisionale è: "Esiste un percorso dal nodo Start al nodo End in modo tale che tutti gli stati finali degli switch corrispondano allo stato target corrispondente?"

Ovviamente, tutti gli interruttori che non sono inizialmente nel loro stato target devono essere attraversati (o toccati) almeno una volta;

Questo è un rapido disegno di una rete banale (realizzata con Excel ... Ne farò una migliore):

example2

Una soluzione banale è:

S -> 1 -> 2 -> 3 -> 2 -> E -> 1 -> E

EDIT 2:

  1. Questo problema è noto? ---> mi hai dato il buon riferimento alla tesi di Hearn (grafici di vincolo);

Il problema è in ; prima di pubblicare uno schizzo della mia prova che si trova in NP, ho trovato un errore; quindi le domande aperte sono di nuovo:NPSPACE=PSPACE

2 È ?NP

3 Il problema ha qualche possibilità di essere ?NP-complete


1
Ho dato una rapida occhiata al documento suggerito (ora lo leggerò più attentamente), ma il mio problema sembra diverso: gli interruttori cambiano il loro stato in base alla direzione in cui vengono attraversati. Nell'articolo gli switch sono "riparati" e i problemi (più semplici) sono del tipo: "Esiste una configurazione di switch, tale che ...".
Marzio De Biasi,

4
@Vor: Questo sembra essere strettamente legato ai giochi di logica vincolo di Demaine e Hearn (credo che la tesi di Hearn groups.csail.mit.edu/mac/users/bob/hearn-thesis-final.pdf è un interessante resoconto di questo lavoro ). Mi chiedo se uno potrebbe risolvere la complessità del tuo problema usando le loro tecniche. Sembra che potrebbe essere NEXP completo ...
Joshua Grochow,

3
Stavo solo per sottolineare il lavoro di Hearn / Demaine - nota che ora è anche disponibile come libro, "Giochi, puzzle e calcolo" (ISBN 978-1-56881-322-6), e sicuramente mi sembra germano domanda.
Steven Stadnicki,

2
@Kaveh: per il mio livello di competenza è banalmente in NPSPACE = PSPACE. Sembra non essere in grado di "contare"; ma non vedo alcuna prova facile che se esiste una soluzione, esiste un'altra soluzione in cui ogni interruttore viene attraversato / toccato solo un numero costante di volte.
Marzio De Biasi,

1
Solo una nota a margine: una versione più semplice di questo puzzle è stata presa in considerazione anche da Dillenburg e Nelson ed è presentata nella loro nota di ricerca Ricerca perimetrale
Carlos Linares López,

Risposte:


2

Il problema è almeno NP-difficile, con una riduzione da 3-SAT.

In primo luogo prendere in considerazione il problema di trovare un percorso dal Inizia alla Exit dei seguenti grafo orientato con la restrizione che nessun percorso può visitare tutti i tre nodi (quadrati) di una clausola:

3SAT

(X1X2X3)(X1¬X2X4)

Trasformiamo questi grafici in una rete di switch. Per questo usiamo tre gadget:

  1. Ogni nodo circolare e bordo bidirezionale diventa a filo , formando le connessioni tra gli interruttori.
  2. Ogni fronte diretto diventa a gadget a senso unico costituito da un singolo interruttore (vedi sotto).
  3. Ogni nodo quadrato rappresenta uno dei tre switch che fanno parte di una clausola gadget (vedi sotto).

Nelle illustrazioni seguenti, gli interruttori sono disegnati come due frecce in arrivo, una delle quali è tratteggiata (disabilitata). La direzione del bersaglio viene disegnata con un cerchio nero (in modo tale che la freccia solida debba trovarsi sul lato del cerchio).

Nota: Useremo grassetto per distinguere il uscita del grafico dalle uscite dei gadget.

UNBBUNX1X2X3X1'X2'X3'

Gadget a senso unico Gadget clausola

Ricordalo per il grafico originale, trovando un percorso che ha portato all'uscita e non ha visitato tutti e tre i nodi quadrati di una clausola era NP-completo. Ora considera il problema di raggiungere l' uscita del grafico trasformato senza preoccuparti delle posizioni target degli interruttori.

Si noti che qualsiasi percorso che rappresenta una soluzione al problema del grafico originale è anche una soluzione per il grafico trasformato. Supponiamo quindi che un percorso per il grafico trasformato non sia una soluzione per il grafico originale. Ciò può accadere in due casi:

  1. BUN ).
  2. Un percorso attraversa tutti e tre i percorsi di alcuni gadget Clausola .

Nel primo caso, il gadget a una via deve essere stato prima attraversato nella direzione prevista, nel qual caso il percorso avrebbe potuto evitare di attraversarlo in primo luogo.

Considera quindi il secondo caso in cui il percorso attraversa tutti e tre gli interruttori di alcuni gadget Clause . Quindi quel gadget avrà tutti i suoi tre interruttori girati (vedi sotto). È qui che utilizziamo le posizioni target. Si noti che la spina dorsale grigia del gadget Clause non può più essere raggiunta, il che significa che gli interruttori non possono più essere indirizzati alle loro posizioni target. In questo caso, diciamo che questo gadget Clausola è irrecuperabile.

Clausola deadlock

Resta da dimostrare che per qualsiasi soluzione del problema del grafico originale, gli interruttori del grafico trasformato possono essere posizionati nella loro posizione target. Per questo, ci avvaliamo del fatto che il cavo di uscita può essere raggiunto solo quando esiste una soluzione, oppure alcuni gadget della clausola diventano irrecuperabili.

Per posizionare gli interruttori nella posizione di destinazione, ora possiamo aggiungere ulteriori gadget a una via dal cavo di uscita all'ingresso di ogni gadget a una via esistente , nonché ai tre fili di uscita di tutti i gadget della clausola . Quindi, una volta che il token raggiunge l' uscita , tutti i gadget a una via aggiuntivi possono essere attraversati (e quindi posizionati nella loro posizione target), e anche mettere i restanti interruttori nelle loro posizioni target (a meno che non ci sia una clausola irrecuperabile). Infine, il token può tornare all'uscita e il puzzle è risolto.

Dobbiamo notare che i gadget della clausola possono essere recuperati solo se inseriti da un'uscita non attraversata; e a causa dei gadget unidirezionali posizionati tra i gadget della clausola e la variabile successiva, ciò non può accadere fino a quando non viene raggiunto il filo di uscita .

Quindi, il problema della rete di switch è NP-difficile.


Non è ancora chiaro se il problema è in NP o PSPACE. Una riduzione della durezza NP che costruisce una rete di switch planare avrà grandi implicazioni per le varianti limitate di Sokoban, in particolare perché tutti gli switch sono equivalenti al gadget Sokoban di seguito.

Sokoban

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.