Ako počítače riešia sudoku
Aktualizované 2026-10-05
Backtracking
Riešič skúsi v prázdnej bunke povolenú číslicu a pokračuje. Ak žiadna číslica nevedie k riešeniu, vráti späť niektorú skoršiu voľbu a skúsi inú. Ak sa ako prvá vyberie bunka s najmenším počtom možných číslic, hľadanie sa často výrazne skráti.
Zdroje: Wikipedia: Sudoku solving algorithms, Peter Norvig: Solving Every Sudoku Puzzle
Presné pokrytie a Dancing Links
Sudoku možno prepísať ako problém presného pokrytia: umiestnenia sa vyberajú tak, aby každá bunka a každá číslica v každom riadku, stĺpci a bloku boli pokryté práve raz. V článku z novembra 2000 Donald Knuth opísal Dancing Links, efektívny spôsob vykonávania svojho algoritmu X založeného na backtrackingu; pri použití na model sudoku ako problému presného pokrytia rýchlo nájde všetky riešenia hlavolamu.
Zdroje: Wikipedia: Sudoku solving algorithms, Knuth, Dancing links (arXiv cs/0011047, 2000)
Náhodné hľadanie
Niektoré programy vyplnia mriežku náhodne a potom pomocou metód, ako je simulované žíhanie alebo genetické algoritmy, čísla premiešavajú, aby znížili počet konfliktov. Skúmali sa ako alternatívne prístupy; ako dobre fungujú, závisí od programu a od hlavolamu.
Zdroje: Wikipedia: Sudoku solving algorithms
Riešiče, ktoré uvažujú ako ľudia
Systém nápovedí má inú úlohu: nielen nájsť odpoveď, ale aj ukázať ďalší krok, ktorý človek dokáže sledovať. Systém v našej aplikácii skúša ľudské techniky v pevnom poradí, od najľahších, ako je skrytý jediný kandidát, po najťažšie, ako sú reťaze a takmer uzamknuté množiny, a použije prvú, ktorá vedie k umiestneniu číslice; ťažšie techniky fungujú tak, že najprv vylúčia kandidátov. Najťažšia technika, ktorú pri hlavolame použije, určuje úroveň tohto hlavolamu v aplikácii.
Zdroje: Čo od teba vyžaduje každá úroveň obtiažnosti sudoku