I puzzle "zero-one" NP-complete sono completi?


18

Sono interessato a una leggera variante della piastrellatura, il "puzzle": ogni bordo di una tessera (quadrata) è etichettato con un simbolo da e due tessere possono essere posizionate adiacenti gli uni agli altri se il simbolo sul bordo di una piastrella è k e il simbolo sul bordo di una piastrella è ˉ k , per alcuni k { 1 n } . Quindi, dato un insieme di m 2 tessere, possono essere posizionati in un m × m{1n,1¯n¯}kk¯k{1n}m2m×mquadrato (ruotando ma non capovolgendo le piastrelle) con tutti i bordi che corrispondono correttamente? (C'è anche una variante di questo problema in cui sono forniti quattro bordi da 'inquadratura' e i pezzi devono adattarsi correttamente a quel telaio).1×m

So che questo problema è NP-completo per sufficientemente grande , ma i limiti che ho visto su n sembrano essere abbastanza grandi; Sono interessato al problema per i valori piccoli di n e in particolare per n = 1 , il caso 'zero-uno' (in cui ogni bordo è etichettato come 0 o 1 e i bordi con uno 0 devono essere abbinati ai bordi con un 1nnnn=10101). Qui ci sono (con simmetria rotazionale) solo sei tipi di tessere (la tessera di tutti gli zero, la tessera di tutti gli uni, la tessera con tre zero e una, la tessera con tre e uno zero e due tessere distinte con due zero e due, '0011' e '0101'), quindi un'istanza problematica è solo una specifica di un insieme di cinque numeri T 0000 , T 0001 , T 0011 , T 0101 , T 0111 e T 1111 (che rappresentano il conteggio di ogni tipo di piastrella) con T 0000 + T 0001 + T 0011 + TmT0000T0001T0011T0101T0111T1111 . Il problema è ovviamente in NP (conmdato in unario) poiché una soluzione può essere semplicemente esposta e poi verificata in tempo polinomiale (inm), ma è nota per essere NP-completa, oppure esiste un algoritmo di programmazione dinamica che può essere applicato qui? Che dire del caso "incorniciato" in cui la specifica del problema include anche i quattro bordi del quadrato da abbinare? (Ovviamente se il caso senza cornice è NP-completo, quasi sicuramente lo è anche il caso con cornice)T0000+T0001+T0011+T0101+T0111+T1111=m2mm


2
Non può essere NP-completo, poiché ci sono solo possibili input, e dal teorema di Mahaney hai bisogno di più di questo per rendere un NP-problema completo (a meno che P = NP). Ma se usi una cornice, questo ostacolo svanisce. Quindi potrebbe essere NP-completo con un frame. θ(m10)
Peter Shor,

1
Un passaggio intermedio sarebbe dimostrare che il problema di decidere se un puzzle a 6 tessere parzialmente riempito (ovvero alcuni dei pezzi sono già sul tabellone e non possono essere spostati) può essere completato correttamente è NP-completo.
Vor

Risposte:


3

Dato che hai menzionato che sei interessato a risolvere questo problema per piccoli valori di , ti suggerirei di provare a implementarlo in un solutore SAT o come un programma lineare intero (ILP). Uno dei due sarà in grado di codificare i vincoli, ma in un modo leggermente diverso:n

  • Per SAT, esiste una codifica molto chiara della scelta di quale riquadro va in ciascun quadrato e una codifica leggermente meno chiara del vincolo relativo al numero di ciascun tipo di riquadro (usando l'aritmetica di bit).

  • Per ILP, esiste una codifica molto chiara del vincolo relativo al numero di ciascun tipo di riquadro disponibile e una codifica leggermente meno chiara dei vincoli su cui i riquadri possono essere adiacenti l'uno all'altro (ma è comunque espressibile, poiché è possibile esprimere formule booleane arbitrarie in ILP).

Mi aspetterei che per piccole o medie dimensioni , questo approccio potrebbe funzionare in modo efficiente.n


Sono d'accordo che questo sembra un mezzo ragionevole per risolvere il problema, ma sono meno interessato a risolvere in modo specifico le istanze del problema di quanto non lo sia a capire la sua complessità. (Ad esempio, se è in P, c'è quasi sicuramente una sorta di approccio di programmazione dinamica che supererebbe facilmente il problema dei solutori di programmazione SAT / linear astratti sul problema.)
Steven Stadnicki,

n

nm

@StevenStadnicki, ahh, errore mio! Scusa, non ho letto abbastanza attentamente. Questo ha senso - grazie.
DW

Nessun problema: avrei dovuto considerarlo in anticipo; quando torno a casa proverò a modificare la domanda per utilizzare una parametrizzazione più "tradizionale".
Steven Stadnicki,
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.