Maintaining Arc Consistency (MAC)

4

description

Maintaining Arc Consistency (MAC) MAC is the same as Back-tracking, but with calls to AC-3 interleaved... function Backtracking-Search(csp) returns solution/failure return Recursive-Backtracking({ }, csp, domains) function Recursive-Backtracking(assignment,csp,domains) returns domains/failure - PowerPoint PPT Presentation

Transcript of Maintaining Arc Consistency (MAC)

Page 1: Maintaining Arc Consistency (MAC)
Page 2: Maintaining Arc Consistency (MAC)
Page 3: Maintaining Arc Consistency (MAC)

Maintaining Arc Consistency (MAC)

MAC is the same as Back-tracking, but with calls to AC-3 interleaved...

function Backtracking-Search(csp) returns solution/failurereturn Recursive-Backtracking({ }, csp, domains)

function Recursive-Backtracking(assignment,csp,domains) returns domains/failureif assignment is complete then return assignmentvar Select-Unassigned-Variable(Variables[csp], assignment, csp)for each value in Order-Domain-Values(var, assignment, csp) do

if value is consistent with assignment given Constraints[csp] then add {var = value} to assignmentreduced_domains AC-3(assignment,csp) // check for failure tooresult Recursive-Backtracking(assignment, csp, reduced_domains)if result failure then return resultremove {var = value} from assignment

return failure

Page 4: Maintaining Arc Consistency (MAC)

function Min-Conflicts(csp,max_steps) returns soln/failure

current complete, random initial var assignment

for i=1 to max_steps do

if current is a solution (satisfies all constraints) then return current

var randomly chosen conflicted variable

val value that minimizes Conflicts(var,val,current,csp)

current current {var=val}

return failure (or best assignment found)