Backtracking aday çözümleri adım adım oluşturur ve geçerli bir çözüme yol açamayacağını anlayan anda kısmi bir adayı terk eder (geri adım atar). DFS aracılığıyla çözüm alanını sistematik olarak araştırır ve ölü uçları budayarak optimize eder.
Fikir
Seç -> keşfet -> geri al. Bir seçeneği dene, özyinele; başarısız olursa, geri al ve sonrakini dene.
Örnek: tüm permütasyonlar
():
result = []
():
remaining:
result.append(path[:])
i ((remaining)):
path.append(remaining[i])
backtrack(path, remaining[:i] + remaining[i+:])
path.pop()
backtrack([], nums)
result
permutations([, , ])
