Sudoku ist ein bekanntes Puzzle, das NP-vollständig ist. Binary Sudoku ist eine Variante, die nur die Zahlen und 1 zulässt . Die Regeln sind wie folgt.
- Jede Zeile und jede Spalte muss eine gleiche Anzahl von Nullen und Einsen enthalten.
- Jede Zeile und jede Spalte ist einzigartig.
- Keine Zeile oder Spalte enthält aufeinanderfolgende Dreiergruppen von Nullen oder Einsen ( ist eine aufeinanderfolgende Dreiergruppe von Einsen).
Die Eingabe ist ein Quadrat, das teilweise mit Nullen und Einsen gefüllt ist. Um das Rätsel zu lösen, muss jede Zelle im N × N- Quadrat mit 0 oder 1 gefüllt sein, wobei die obigen Regeln zu beachten sind. Ich konnte kein Ergebnis für die Unlösbarkeit beim Lösen des binären Sudoku-Puzzles finden.
Wie schwer ist es, das binäre Sudoku-Puzzle zu lösen? Ist es NP-vollständig?
Außerdem interessiert mich die Komplexität eines damit zusammenhängenden Problems.
Bei einem vollständig ausgefüllten Quadrat, das nur die obigen Regeln 1 und 2 einhält,
Wie schwierig ist es, eine Permutation von Zeilen und Spalten zu finden, sodass das resultierende Quadrat Regel 3 entspricht?
quelle
Antworten:
BEARBEITEN : Ich habe den Amateur-Beweis, den ich vor ein paar Monaten angefangen habe und nie beendet habe, schnell abgeschlossen.
Sie können es im PDF-Format auf meinem Blog herunterladen ... noch hat niemand es überprüft, daher sind Widerlegungen, Kommentare und Vorschläge willkommen.
Ich weiß nicht, ob es einen offiziellen Beweis gibt, aber vor ein paar Monaten habe ich die Geräte gebaut, um eine planare 3-CNF-Formel nachzuahmen. Die Minianwendungen OR, SPLIT und TURN lauten beispielsweise:
Ich habe die Gadgets mit einem einfachen Constraint-Solver-Programm erstellt / überprüft.
Die Eindeutigkeit jeder Zeile / Spalte (Regel 2) kann durch Markieren mit einer eindeutigen "Binärzahl" unter Verwendung eines 2x2-Blocks erreicht werden, der wie eine "Ziffer" wirkt:
Die gleiche Anzahl von Einsen und Nullen (Regel 3) kann erreicht werden, indem das gesamte Puzzle gespiegelt und die Nullen durch Einsen vertauscht werden.
quelle