CS156
Chris Pollett
Mar 5, 2012
Which of the following is true?
Here is some pseudo-code for backtracking search:
function Backtracking-Search(csp) returns a solution, or failure
return Backtrack({},csp)
function Backtrack(assignment, csp) returns a solution, 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)
//this might do AC-3 or the like
if inferences != failure then
add inferences to assignment
result := Backtrack(assignment, csp)
if result != failure then
return result
remove {var = value} and inferences from assignment
return failure
Performance of backtracking can be improved by focusing on: