Bilgisayarlar Sudoku'yu nasıl çözer?
Güncellendi: 2026-10-05
Geri izleme
Çözücü, boş bir hücrede kurallara uygun bir rakamı dener ve devam eder. Hiçbir rakam çözüme götürmezse daha önceki bir seçimi geri alır ve başka bir rakam dener. Önce olası rakam sayısı en az olan hücreyi seçmek, aramayı çoğu zaman çok kısaltır.
Kaynaklar: Wikipedia: Sudoku solving algorithms, Peter Norvig: Solving Every Sudoku Puzzle
Tam örtme ve Dancing Links
Sudoku, bir tam örtme problemi olarak yeniden ifade edilebilir: her hücreyi ve her satır, sütun ve kutudaki her rakamı tam olarak bir kez kapsayacak yerleştirmeler seçilir. Donald Knuth, Kasım 2000 tarihli bir makalesinde, geri izlemeye dayalı Algorithm X algoritmasını verimli biçimde çalıştırmanın bir yolu olan Dancing Links'i anlattı; bu yöntem Sudoku'nun tam örtme modeline uygulandığında bir bulmacanın tüm çözümlerini hızla bulur.
Kaynaklar: Wikipedia: Sudoku solving algorithms, Knuth, Dancing links (arXiv cs/0011047, 2000)
Rastgele arama
Bazı programlar tabloyu rastgele doldurur, ardından benzetimli tavlama veya genetik algoritmalar gibi yöntemlerle çakışma sayısını azaltmak için sayıların yerlerini değiştirir. Bunlar alternatif yaklaşımlar olarak araştırılmıştır; ne kadar iyi sonuç verdikleri programa ve bulmacaya bağlıdır.
Kaynaklar: Wikipedia: Sudoku solving algorithms
İnsanlar gibi düşünen çözücüler
Bir ipucu motorunun görevi farklıdır: yalnızca cevabı bulmak değil, bir insanın takip edebileceği sonraki adımı göstermektir. Uygulamamızın motoru, Gizli Tekil gibi en kolay tekniklerden zincirler ve neredeyse kilitli kümeler gibi en zor tekniklere kadar, insanların kullandığı teknikleri sabit bir sırayla dener ve bir rakamın yerleştirilmesine yol açan ilk tekniği kullanır; daha zor teknikler önce adayları eleyerek çalışır. Bir bulmacada kullandığı en zor teknik, o bulmacanın uygulamadaki seviyesini belirler.
Kaynaklar: Her Sudoku zorluk seviyesi senden ne bekliyor?