Dieses Projekt implementiert einen Sudoku-Löser mithilfe von Answer Set Programming (ASP) und Clingo.
sudoku.lp: Die ASP-Regeln für den Sudoku-Lösersudoku_instance.lp: Eine Beispiel-Sudoku-Instanzformat_sudoku.py: Ein Python-Skript zur formatierten Ausgabe der Lösung
-
Installieren Sie Clingo:
brew install clingo # macOS -
Stellen Sie sicher, dass Python 3 installiert ist.
Um das Sudoku zu lösen:
clingo sudoku.lp sudoku_instance.lp 0 | python3 format_sudoku.py- Definiert die Regeln für ein gültiges Sudoku
- Stellt sicher, dass jede Zeile, Spalte und jeder 3x3-Block die Zahlen 1-9 enthält
- Verwendet Constraints, um ungültige Lösungen auszuschließen
- Enthält die vorgegebenen Zahlen des zu lösenden Sudokus
- Format:
initial(X,Y,V)wobei X,Y die Position und V der Wert ist
- Verarbeitet die Clingo-Ausgabe
- Stellt das Sudoku in einem übersichtlichen Raster dar
┌───────┬───────┬───────┐
│ 7 6 5 │ 8 4 3 │ 2 1 9 │
│ 4 1 2 │ 6 9 7 │ 8 5 3 │
│ 9 3 8 │ 2 5 1 │ 7 6 4 │
├───────┼───────┼───────┤
│ 3 2 4 │ 1 8 6 │ 5 9 7 │
│ 1 8 9 │ 5 7 4 │ 6 3 2 │
│ 6 5 7 │ 9 3 2 │ 4 8 1 │
├───────┼───────┼───────┤
│ 8 7 1 │ 4 6 9 │ 3 2 5 │
│ 5 9 3 │ 7 2 8 │ 1 4 6 │
│ 2 4 6 │ 3 1 5 │ 9 7 8 │
└───────┴───────┴───────┘