Presentation is loading. Please wait.

Presentation is loading. Please wait.

Backward Checking Search BT, BM, BJ, CBJ. An example problem Colour each of the 5 nodes, such that if they are adjacent, they take different colours 12.

Similar presentations


Presentation on theme: "Backward Checking Search BT, BM, BJ, CBJ. An example problem Colour each of the 5 nodes, such that if they are adjacent, they take different colours 12."— Presentation transcript:

1 Backward Checking Search BT, BM, BJ, CBJ

2 An example problem Colour each of the 5 nodes, such that if they are adjacent, they take different colours 12 3 4 5

3 Representation variables v1, v2, v3, v4, and v5 domains d1, d2, d3, d4, and d5 domains are the three colours {R,B,G} constraints v1  v2 v1  v3 v2  v3 v2  v5 v3  v5 v4  v5 Assign a value to each variable, from its domain, such that the constraints are satisfied CSP = (V,D,C) 12 3 4 5

4 Chronological Backtracking (BT) (0) label(variable:vi) (1) let consistent := false (2) assign vi a value x from its domain di (3) consistent := true (4) while consistent, check against past variables vh if inconsistent(vh,vi) then consistent := false (5) if not consistent remove x from di if di is not empty go to (2) (6) return consistent (0) unlabel(variable:vi) (1) restore domain di (set to original value) (2) let h be i-1 (3) remove the value of vh from domain dh (3) if dh is empty then return false else return true (0) BT(integer:i) (1) if i > N then return(true) (2) if i = 1 and d_1 is empty then return(false) (3) if label(v[i]) then bt(i+1) else unlabel(v[i]) bt(i-1) 12 3 4 5

5 Three Different Views of Search a trace a tree past, current, future

6 V[1] := R V[2] := R check(v[1],v[2]) fails V[2] := B check(v[1],v[2]) good V[3] := R check(v[1],v[3]) fails V[3] := B check(v[1],v[3]) good check(v[2],v[3]) fails V[3] := G check(v[1],v[3]) good check(v[2],v[3]) good V[4] := R V[5] := R check(v[2],v[5]) good check(v[3],v[5]) good check(v[4],v[5]) fails V[5] := B check(v[2],v[5]) fails V[5] := G check(v[2],v[5]) good check(v[3],v[5]) fails backtrack! V[4] := B V[5] := R check(v[2],v[5]) good check(v[3],v[5]) good check(v[4],v[5]) good solution found A Trace of BT (assume domain ordered {R,B,G}) 12 3 4 5 3 12 4 5 16 checks and 12 nodes 3 12 4 5

7 A Tree Trace of BT (assume domain ordered {R,B,G}) 12 3 4 5 v1 v2 v3 v4 v5

8 A Tree Trace of BT (assume domain ordered {R,B,G}) 1 2 3 4 5 v1 v2 v3 v4 v5

9 A Tree Trace of BT (assume domain ordered {R,B,G}) 12 3 4 5 v1 v2 v3 v4 v5

10 A Tree Trace of BT (assume domain ordered {R,B,G}) 12 3 4 5 v1 v2 v3 v4 v5

11 A Tree Trace of BT (assume domain ordered {R,B,G}) v1 v2 v3 v4 v5 12 3 4 5

12 A Tree Trace of BT (assume domain ordered {R,B,G}) v1 v2 v3 v4 v5 12 3 4 5

13 A Tree Trace of BT (assume domain ordered {R,B,G}) v1 v2 v3 v4 v5 12 3 4 5

14 A Tree Trace of BT (assume domain ordered {R,B,G}) v1 v2 v3 v4 v5 12 3 4 5

15 A Tree Trace of BT (assume domain ordered {R,B,G}) v1 v2 v3 v4 v5 12 3 4 5

16 A Tree Trace of BT (assume domain ordered {R,B,G}) v1 v2 v3 v4 v5 12 3 4 5

17 A Tree Trace of BT (assume domain ordered {R,B,G}) v1 v2 v3 v4 v5 12 3 4 5

18 A Tree Trace of BT (assume domain ordered {R,B,G}) v1 v2 v3 v4 v5 12 3 4 5

19 A Tree Trace of BT (assume domain ordered {R,B,G}) v1 v2 v3 v4 v5 12 3 4 5

20 Another view 12 3 4 5 v1 v2 v3 v4 v5 current variable past variables future variables check back

21 12 3 4 5 Can you solve this? Try bt1 and/or bt2 with constraints C2 - load(“bt2”) - bt(V,D,C2) this is csp2

22 Thrashing? (csp3) 12 3 9 4 5 6 7 8

23 12 3 9 4 5 6 7 8 V1 = R v2 = B v3 = G v4 = R v5 = B v6 = R v7 = B v8 = R v9 = conflict The cause of the conflict with v9 is v4, but what will bt do? Find out how it goes with bt3 and csp4

24 Where’s the code? See clairExamples/bt*.cl and clairExample/csp*.cl

25 questions Why measure checks and nodes? What is a node anyway? Who cares about checks? Why instantiate variables in lex order? Would a different order make a difference? How many nodes could there be? How many checks could there be? Are all csp’s binary? How can we represent constraints? Is it reasonable to separate V from D? Why not have variables with domains What is a constraint graph? How can (V,D,C) be a graph?


Download ppt "Backward Checking Search BT, BM, BJ, CBJ. An example problem Colour each of the 5 nodes, such that if they are adjacent, they take different colours 12."

Similar presentations


Ads by Google