Hvordan datamaskiner løser sudoku
Oppdatert 2026-10-05
Backtracking
Løseren prøver et lovlig siffer i en tom celle og fortsetter. Hvis ikke noe siffer fører til en løsning, angrer den et tidligere valg og prøver et annet. Å velge cellen med færrest mulige sifre først gjør ofte søket mye kortere.
Kilder: Wikipedia: Sudoku solving algorithms, Peter Norvig: Solving Every Sudoku Puzzle
Eksakt dekning og Dancing Links
Sudoku kan omformuleres som et eksakt dekningsproblem: velg plasseringer slik at hver celle, og hvert siffer i hver rad, kolonne og boks, dekkes nøyaktig én gang. I en artikkel fra november 2000 beskrev Donald Knuth Dancing Links, en effektiv måte å kjøre hans backtrackingbaserte Algoritme X på; brukt på sudoku formulert som eksakt dekning finner den raskt alle løsningene til en oppgave.
Kilder: Wikipedia: Sudoku solving algorithms, Knuth, Dancing links (arXiv cs/0011047, 2000)
Tilfeldig søk
Noen programmer fyller rutenettet tilfeldig og stokker deretter om på tallene for å redusere antall konflikter, med metoder som simulert utglødning (simulated annealing) eller genetiske algoritmer. De er blitt studert som alternative tilnærminger; hvor godt de lykkes, avhenger av programmet og oppgaven.
Kilder: Wikipedia: Sudoku solving algorithms
Løsere som tenker som mennesker
En hintmotor har en annen oppgave: ikke bare å finne svaret, men å vise det neste steget en person kan følge. Motoren i appen vår prøver teknikker som mennesker bruker, i en fast rekkefølge, fra de letteste, som skjult singel, til de vanskeligste, som kjeder og nesten låste sett, og bruker den første som fører til et plassert siffer; de vanskeligere virker ved først å utelukke kandidater. Den vanskeligste teknikken den bruker på en oppgave, bestemmer oppgavens nivå i appen.
Kilder: Hva hvert vanskelighetsnivå i sudoku krever av deg