Quanto è difficile una variante del puzzle di Sudoku?


8

Il sudoku è un puzzle ben noto che è noto per essere NP-completo ed è un caso speciale di problema più generale noto come quadrati latini. Una soluzione corretta del quadrato consiste nel riempire ogni riga e ogni colonna con numeri da aN×N1N a condizione che ogni numero appaia esattamente una volta in qualsiasi riga o colonna.

Definisco un nuovo problema. L'input è una soluzione corretta diN×NPuzzle di Sudoku (più generalmente un problema con il quadrato latino). Vorrei decidere se esiste la permutazione delle righe e la permutazione delle colonne in modo tale che nessuna riga e nessuna colonna contenga triple consecutive.

Un esempio per una riga senza triplo consecutivo è 9 5 6 2 3 8 4 7 1. Un esempio per una riga con triplo consecutivo è 8 9 5 2 3 4 7 6 1. Il triplo è 2 3 4.

Sospetto che il problema sia NP-difficile ma non sono riuscito a trovare una riduzione.

Quanto è difficile risolvere questa variante del puzzle di Sudoku? NP-complete?

EDIT : per chiarire, la stessa permutazione deve essere applicata alle colonne e alle righe.


1
Solo un'informazione: per i quadrati latini hai un semplice esempio in cui tale permutazione non esiste?
Vor

Perché l'input è una griglia corretta? Le permutazioni cambieranno questa proprietà.
Saadtaame,

@saadtaame Nota che l'input è una soluzione corretta del problema del quadrato latino e non del problema che ho definito sopra.
Mohammad Al-Turkistany,

Sì, perché deve essere una soluzione corretta di piazza latina?
Saadtaame,

@saadtaame perché tutte le righe e le colonne nel riquadro di input sono solo permutazioni libere a virgola fissa dei numeri da 1 per N.
Mohammad Al-Turkistany,

Risposte:


4

Quando le permutazioni di riga e colonna sono diverse e le triple triple devono aumentare: la risposta è sempre SÌ.

Supponiamo che la matrice abbia dimensioni N×N. Considera una permutazione casuale delle colonne. Ogni riga (da sola) è una permutazione casuale. La probabilità che i numerii,i+1,i+2 apparire in posizioni t,t+1,t+2 è 1/(N(N1)(N2)). Ci sonoN2 scelte per t e i, e Nfile diverse. Pertanto il numero previsto di triple consecutive èN(N2)2/(N(N1)(N2))<1. Concludiamo che esiste una certa permutazione delle colonne, sotto la quale non ci sono triple consecutive in nessuna delle file. Ora ripeti lo stesso argomento per le colonne - nota che permutare le righe non può creare una tripla consecutiva in nessuna di esse.

Quando le permutazioni di riga e colonna sono uguali e le triple triple possono essere in aumento o in diminuzione: la risposta è ancora SÌ, per dimensioni sufficientemente grandi N.

L'idea è di usare la versione sbilenco del lemma locale di Lovász , attraverso il documento di Lu e Székely Utilizzo del lemma locale di Lovász nello spazio delle iniezioni casuali . Nella prova precedente, abbiamo considerato gli eventiX,i,t,σ per σ{±1}, che per una linea (una riga o una colonna), dichiaralo (i+σδ)=t+δ per δ{0,1,2}. Questi sono esempi degli eventi canonici considerati da Lu e Székely: se la permutazione casuale (che consente sia le file che le colonne) èπ, quindi sono della forma π(t)=j0,π(t+1)=j1,π(t+2)=j2, dove jδ=1(i+σδ). Due eventiX,i,t,σ,X,i,t,σ conflitto se{t,t+1,t+2}{t,t+1,t+2} o {j0,j1,j2}{j0,j1,j2}(questa è in realtà solo una condizione necessaria). Ogni evento è in conflitto con al massimo2N2251=40N1 altri eventi (2Nlinee, due orientamenti, due modi di conflitto, cinque posizioni contrastanti). Mentre gli eventi non in conflitto dipendono in generale, usando la versione sbilenco del lemma locale di Lovász possiamo ignorarlo e lasciare che il nostro grafico delle dipendenze includa i bordi solo per gli eventi in conflitto. Poiché la probabilità che si verifichi ogni evento èp=1/(N(N1)(N2)) e la dimensione di ogni quartiere è d40N1, il lemma si applica ogni volta ep(d+1)1, questo è

40eNN(N1)(N2).
Questa condizione è soddisfatta per N12. Concludiamo che perN12, la permutazione richiesta esiste sempre. Utilizzando la recente versione costruttiva di LLL, possiamo persino trovarla in modo efficiente.

Grazie per la tua risposta. Hai applicato la stessa permutazione su righe e colonne?
Mohammad Al-Turkistany,

No, per prima cosa applico una buona permutazione sulle colonne e poi una buona permutazione sulle righe. Non c'è motivo per cui siano uguali.
Yuval Filmus,

Ci scusiamo per non essere stato chiaro nella mia domanda. Voglio una singola permutazione che viene applicata contemporaneamente alle righe e alle colonne.
Mohammad Al-Turkistany,

2
Ecco cosa hai scritto: "decidi se esiste una permutazione delle righe e una permutazione delle colonne tale che ...".
Yuval Filmus,

Scusami ancora per non essere stato chiaro nella mia domanda. Se non ti dispiace, modificherò la domanda per chiarire.
Mohammad Al-Turkistany,
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.