Jak počítače řeší sudoku
Aktualizováno 2026-10-05
Backtracking
Řešič vyzkouší v prázdné buňce číslici přípustnou podle pravidel a pokračuje. Pokud žádná číslice nevede k řešení, vrátí některou z předchozích voleb a zkusí jinou. Když nejprve vybere buňku s nejmenším počtem možných číslic, hledání se často výrazně zkrátí.
Zdroje: Wikipedia: Sudoku solving algorithms, Peter Norvig: Solving Every Sudoku Puzzle
Přesné pokrytí a Dancing Links
Sudoku lze převést na problém přesného pokrytí: vybrat umístění číslic tak, aby každá buňka a každá číslice v každém řádku, sloupci a bloku byly pokryty právě jednou. V článku z listopadu 2000 popsal Donald Knuth Dancing Links, efektivní způsob provádění svého algoritmu X založeného na backtrackingu; při použití na model sudoku založený na přesném pokrytí rychle najde všechna řešení hlavolamu.
Zdroje: Wikipedia: Sudoku solving algorithms, Knuth, Dancing links (arXiv cs/0011047, 2000)
Náhodné hledání
Některé programy vyplní mřížku náhodně a poté přeskupují čísla, aby snížily počet konfliktů, pomocí metod, jako je simulované žíhání nebo genetické algoritmy. Tyto metody byly zkoumány jako alternativní přístupy; jejich úspěšnost závisí na programu a hlavolamu.
Zdroje: Wikipedia: Sudoku solving algorithms
Řešiče, které uvažují jako lidé
Systém nápovědy má jiný úkol: nejen najít řešení, ale také ukázat další krok, kterému člověk dokáže porozumět. Systém v naší aplikaci zkouší lidské techniky v pevně daném pořadí, od nejjednodušších, jako je Skrytý singl, po nejtěžší, jako jsou řetězce a téměř uzamčené množiny, a použije první, která vede k doplnění číslice; obtížnější techniky nejprve vylučují kandidáty. Nejtěžší technika, kterou při řešení hlavolamu použije, určuje jeho úroveň v aplikaci.
Zdroje: Co od vás vyžadují jednotlivé úrovně sudoku