Le equazioni del sudoku

Transcript

Le equazioni del sudoku
Le equazioni del Sudoku
Di Cristiano Armellini, [email protected]
Risolvere un Sudoku significa disporre dei numeri da 1 a 9 in delle caselle in modo che ogni riga ogni
colonna e ogni quadrato parziale contenga i numeri da 1 a 9.
Se limitiamo la nostra attenzione al quadrato più grande, quello da 9 righe e 9 colonne (Sudoku quindi di 9
quadrati 3 x 3) abbiamo che devono essere rispettati i seguenti vincoli matematici:
Vincolo 1) fissata una colonna j, questa dovrà contenere tutti i numeri da 1 a 9, quindi
1, … ,9 ,
,
1
,
2
3
4
5
6
7
8
9
45
Oppure
1, … ,9 ,
1 2 3 4 5 6 7 8 9
,
,
9!
Vincolo 2) fissata una riga i, questa dovrà contenere tutti i numeri da 1 a 9, quindi
1, … ,9 ,
,
1
,
2
3
4
5
6
7
8
9
45
Oppure
1, … ,9 ,
,
1 2 3 4 5 6 7 8 9
,
Quindi dai primi vincoli deduciamo che ∑ ,
9!
45 9 405
,
Vincolo 3) ogni elemento del Sudoku deve contenere solo numeri interi da 1 a 9, ovvero
,
* +1, … ,9,
,
Vincolo 4) alcuni valori del Sudoku sono già noti, ovvero
-
.,
,
Vincolo 5) in ogni riga e in ogni colonna i numeri devono essere tutti diversi
1, … ,9,
,
/
1, … ,9,
,
/
,0 ,
0,
/.
, /.
Ovviamente queste condizioni devono valere non solo per il quadrato più grande(9x9) ma anche per quelli
minori di ordine 3 (3 x 3 ). Nel nostro modello le equazioni non cambiano vanno solo aggiornati gli indici.
Teoricamente si potrebbe impostare le equazioni per il quadrato più grande e con un calcolatore (risolutore
di equazioni , o ricerca obiettivo di Excel, Libre Office , Open Office) trovare tra tutte le soluzioni quelle che
soddisfano le condizioni anche per i quadrati più piccoli. Il problema quindi può essere ricondotto ad un
problema di ricerca operativa a variabili intere positive oppure usare un semplice sistema di equazioni
lineari. E’ da osservare che ogni quadrato 3 x 3 ha al massimo 9! possibilità (in realtà molte di meno perché
molti casi si possono escludere), quindi al massimo le possibilità di un sudoku 9 x 9 non andranno oltre le 9*
9! possibilità ( ma il numero può essere ridotto)