Hoe computers Sudoku oplossen
Bijgewerkt op 2026-10-05
Backtracking
De oplosser probeert een toegestaan cijfer in een lege cel en gaat verder. Als geen enkel cijfer tot een oplossing leidt, maakt hij een eerdere keuze ongedaan en probeert hij een andere. Door eerst de cel met de minste mogelijke cijfers te kiezen, wordt de zoektocht vaak veel korter.
Bronnen: Wikipedia: Sudoku solving algorithms, Peter Norvig: Solving Every Sudoku Puzzle
Exacte overdekking en Dancing Links
Sudoku kan worden geformuleerd als een probleem van exacte overdekking: kies plaatsingen zodat elke cel en elk cijfer in elke rij, kolom en elk blok precies één keer wordt afgedekt. In een artikel uit november 2000 beschreef Donald Knuth Dancing Links, een efficiënte manier om zijn backtrackingalgoritme Algorithm X uit te voeren; toegepast op het model van Sudoku als exacte overdekking vindt het snel alle oplossingen van een puzzel.
Bronnen: Wikipedia: Sudoku solving algorithms, Knuth, Dancing links (arXiv cs/0011047, 2000)
Willekeurig zoeken
Sommige programma's vullen het raster willekeurig in en verwisselen daarna cijfers om het aantal conflicten te verminderen, met methoden zoals gesimuleerde afkoeling of genetische algoritmen. Deze zijn onderzocht als alternatieve benaderingen; hoe goed ze werken, hangt af van het programma en de puzzel.
Bronnen: Wikipedia: Sudoku solving algorithms
Oplossers die denken als mensen
Een hintsysteem heeft een andere taak: niet alleen het antwoord vinden, maar ook de volgende stap laten zien die een persoon kan volgen. Het systeem van onze app probeert menselijke technieken in een vaste volgorde, van de makkelijkste, zoals een Verborgen single, tot de moeilijkste, zoals ketens en bijna vergrendelde verzamelingen, en gebruikt de eerste die tot het plaatsen van een cijfer leidt; de moeilijkere technieken werken door eerst kandidaten uit te sluiten. De moeilijkste techniek die het bij een puzzel gebruikt, bepaalt het niveau van die puzzel in de app.
Bronnen: Wat elk Sudoku-niveau van je vraagt