Cum rezolvă calculatoarele Sudoku
Actualizat la 2026-10-05
Backtracking
Rezolvitorul încearcă o cifră permisă într-o celulă goală și continuă. Dacă nicio cifră nu duce la o soluție, anulează o alegere anterioară și încearcă alta. Dacă se alege mai întâi celula cu cele mai puține cifre posibile, căutarea devine adesea mult mai scurtă.
Surse: Wikipedia: Sudoku solving algorithms, Peter Norvig: Solving Every Sudoku Puzzle
Acoperire exactă și Dancing Links
Sudoku poate fi reformulat ca o problemă de acoperire exactă: se aleg plasări astfel încât fiecare celulă, precum și fiecare cifră din fiecare rând, coloană și bloc, să fie acoperită exact o dată. Într-o lucrare din noiembrie 2000, Donald Knuth a descris Dancing Links, o metodă eficientă de a rula Algoritmul X, algoritmul său de backtracking; aplicat modelului de acoperire exactă al Sudoku, acesta găsește rapid toate soluțiile unui puzzle.
Surse: Wikipedia: Sudoku solving algorithms, Knuth, Dancing links (arXiv cs/0011047, 2000)
Căutare aleatorie
Unele programe completează grila la întâmplare și apoi amestecă numerele pentru a reduce numărul de conflicte, cu metode precum călirea simulată sau algoritmii genetici. Acestea au fost studiate ca abordări alternative; cât de bine funcționează depinde de program și de puzzle.
Surse: Wikipedia: Sudoku solving algorithms
Rezolvitoare care gândesc ca oamenii
Un motor de indicii are altă sarcină: nu doar să găsească răspunsul, ci să arate următorul pas pe care îl poate urma o persoană. Motorul aplicației noastre încearcă tehnici umane într-o ordine fixă, de la cele mai ușoare, cum ar fi candidatul unic ascuns, la cele mai grele, cum ar fi lanțurile și seturile aproape blocate, și o folosește pe prima care duce la plasarea unei cifre; cele mai grele funcționează eliminând mai întâi candidați. Cea mai grea tehnică pe care o folosește într-un puzzle stabilește nivelul acelui puzzle în aplicație.
Surse: Ce îți cere fiecare nivel de dificultate la Sudoku