Quanta differenza di complessità può esserci tra trovare una soluzione a un puzzle di Sudoku e PROVARE che la soluzione è la soluzione unica?


14

Quindi di solito il Sudoku è , ma questa domanda si estende anche a puzzle con . Esistono molte regole di deduzione dei tempi polinomiali che possono fare progressi nella ricerca di una soluzione a un puzzle di Sudoku. Ma a volte potrebbe essere necessario indovinare i valori e seguire le catene di conclusioni per eliminare il valore di una cella o una combinazione di valori di celle. Tuttavia, una volta trovata una soluzione valida, ciò non garantisce che la soluzione sia UNICA. Un puzzle di Sudoku valido dovrebbe avere solo una soluzione valida ma quando si generano puzzle casuali, questo può richiedere un calcolo extra per la verifica.n 2 × n 2 n > 39×9n2×n2n>3

Quindi, la mia domanda è, se permettiamo un certo insieme di regole polinomiali di deduzione del tempo (diciamo, l'insieme più comune descritto nella strategia del Sudoku), insieme a indovinare i valori e seguire le conclusioni, allora quanto più difficile può essere determinare una soluzione unica per un determinato puzzle, rispetto alla ricerca di una sola soluzione, in termini di numero di soluzioni non uniche? Esiste una differenza asintotica per alcune classi di puzzle?

Risposte:


14

Yato e Seta dimostrano che per ogni costante , date m soluzioni a un puzzle di Sudoku, è NP-completo per determinare se esiste un'altra soluzione. Mostrano che la stessa proprietà è soddisfatta anche da altri enigmi.mm


Grazie, non ero sicuro di aver formulato la mia domanda in modo sufficientemente accurato, ma questo colpisce l'unghia sulla testa. Quindi, anche se troviamo una soluzione, allora è NP-completo per sapere se c'è un'altra soluzione. Pulito e ordinato! Grazie, +1
user2566092

1

Se ti capisco correttamente, stai cercando di controllare i puzzle di Sudoku che il tuo software ha generato per vedere se sono validi.

Se solo essere "valido" è interessante, Yuval Filmus ti ha già indicato una prova del fatto che NP è completo.

Tuttavia, se l'obiettivo di trovare nuovi puzzle di Sudoku che piacerà a una persona, il problema non è così difficile. (Dover indovinare molti valori, a causa del fatto che il puzzle non è risolvibile usando la "logica" non è divertente!) Pertanto personalmente limiterei il numero di ipotesi a un massimo di 4 e rifiuterei qualsiasi puzzle che non può essere dimostrato di avere un una soluzione unica nei limiti di ciò che si considera ragionevole.

Fare quanto sopra, utilizzando il back tracking standard per visitare tutte le possibili ipotesi (entro il limite) e mostrare che esiste una sola soluzione è molto più semplice di NP NP completo.

Inoltre, puoi valutare quanto è difficile un enigma in base alla complessità delle regole di detrazione di cui ha bisogno e al numero di ipotesi necessarie.


0

Per dimostrare che un puzzle è unico, ogni cella in cui si doveva fare un'ipotesi deve essere ramificata. Quando si esegue una ricerca per trovare semplicemente una risposta, ciò avviene generalmente con il backtracking, in cui la soluzione è il primo percorso nell'albero decisionale che porta a una scheda completa. Per dimostrare l'unicità, è necessario dimostrare che solo un percorso porta a una soluzione valida. È qui che le cose diventano molto difficili da definire in termini di tempo di esecuzione. La complessità è estremamente legata al problema attuale. Se stai osservando lo scenario del caso peggiore, che è estremamente improbabile, si possono considerare la stessa complessità.

Nel peggiore dei casi, quando si esegue la risoluzione, la soluzione è all'interno del ramo finale possibile dell'albero che può essere cercato. L'intero albero doveva essere cercato per trovarlo, mentre una ricerca di unicità avrebbe richiesto anche la stessa ricerca, percorrendo gli stessi identici percorsi.

Realisticamente, tuttavia, non è così, e con quasi tutti i casi che implicano la ricerca di progetti combinatori, la ricerca di una soluzione è sempre più rapida della ricerca di tutte le soluzioni.

In generale entrambi questi problemi sono saldamente radicati in tempi di esecuzione esponenziali, se non peggio.

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.