backward checking search bt, bm, bj, cbj. an example problem colour each of the 5 nodes, such that...
TRANSCRIPT
![Page 1: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/1.jpg)
Backward Checking SearchBT, BM, BJ, CBJ
![Page 2: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/2.jpg)
An example problem
Colour each of the 5 nodes, such that if they are adjacent, they take different colours
1 2
3
4
5
![Page 3: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/3.jpg)
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)
1 2
3
4
5
![Page 4: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/4.jpg)
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)
1 2
3
4
5
![Page 5: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/5.jpg)
Three Different Views of Search
a tracea tree
past, current, future
![Page 6: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/6.jpg)
• 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})
1 2
3
4
5
3
1 2
4
5
16 checks and 12 nodes
3
1 2
4
5
![Page 7: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/7.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
1 2
3
4
5
v1
v2
v3
v4
v5
![Page 8: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/8.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
1 2
3
4
5
v1
v2
v3
v4
v5
![Page 9: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/9.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
1 2
3
4
5
v1
v2
v3
v4
v5
![Page 10: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/10.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
1 2
3
4
5
v1
v2
v3
v4
v5
![Page 11: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/11.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
v1
v2
v3
v4
v5
1 2
3
4
5
![Page 12: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/12.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
v1
v2
v3
v4
v5
1 2
3
4
5
![Page 13: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/13.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
v1
v2
v3
v4
v5
1 2
3
4
5
![Page 14: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/14.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
v1
v2
v3
v4
v5
1 2
3
4
5
![Page 15: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/15.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
v1
v2
v3
v4
v5
1 2
3
4
5
![Page 16: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/16.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
v1
v2
v3
v4
v5
1 2
3
4
5
![Page 17: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/17.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
v1
v2
v3
v4
v5
1 2
3
4
5
![Page 18: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/18.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
v1
v2
v3
v4
v5
1 2
3
4
5
![Page 19: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/19.jpg)
A Tree Trace of BT (assume domain ordered {R,B,G})
v1
v2
v3
v4
v5
1 2
3
4
5
![Page 20: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/20.jpg)
Another view
1 2
3
4
5
v1
v2
v3
v4
v5
current variable
past variables
future variables
check back
![Page 21: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/21.jpg)
1 2
3
4
5
Can you solve this?
Try bt1 and/or bt2 with constraints C2
- load(“bt2”) - bt(V,D,C2)
this is csp2
![Page 22: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/22.jpg)
Thrashing? (csp3)
1 2
3
9
4
5
67
8
![Page 23: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/23.jpg)
Thrashing? (csp3)
1 2
3
9
4
5
67
8
V1 = Rv2 = Bv3 = Gv4 = Rv5 = Bv6 = Rv7 = Bv8 = Rv9 = conflict
The cause of the conflict with v9is v4, but what will bt do?
Find out how it goes with bt3 and csp4
![Page 24: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/24.jpg)
Where’s the code?
See clairExamples/bt*.cl and clairExample/csp*.cl
![Page 25: 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](https://reader035.vdocuments.mx/reader035/viewer/2022062303/551b34b255034607418b6575/html5/thumbnails/25.jpg)
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?