Skip to content

Latest commit

 

History

History
23 lines (20 loc) · 1.77 KB

Backtracking-Search.md

File metadata and controls

23 lines (20 loc) · 1.77 KB

BACKTRACKING-SEARCH

AIMA3e

function BACKTRACKING-SEARCH(csp) returns a solution, or failure
return BACKTRACK({}, csp)

function BACKTRACK(assignment, csp) returns a solution, or failure
if assignment is complete then return assignment
var ← SELECT-UNASSIGNED-VARIABLE(csp)
for each value in ORDER-DOMAIN-VALUES(var, assignment, csp) do
   if value is consistent with assignment then
     add {var = value} to assignment
     inferences ← INFERENCE(csp, var, value)
     if inferencesfailure then
      add inferences to assignment
      result ← BACKTRACK(assignment, csp)
      if resultfailure then
       return result
     remove {var = value} and inferences from assignment
return failure


Figure ?? A simple backtracking algorithm for constraint satisfaction problems. The algorithm is modeled on the recursive depth-first search of Chapter ??. By varying the functions SELECT-UNASSIGNED-VARIABLE and ORDER-DOMAIN-VALUES, we can implement the general-purpose heuristics discussed in the text. The function INFERENCE can optionally be used to impose arc-,path-, or k-consistency, as desired. If a value choice leads to failure (noticed either by INFERENCE or by BACKTRACK), then value assignments (including those made by INFERENCE) are removed from the current assignment and a new value is tried.