ics 275 spring 2014dechter/courses/ics-275a/spring...spring 2014 ancestors and parents ! anc(x7) =...
TRANSCRIPT
![Page 1: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/1.jpg)
Backtracking search: look-back
ICS 275 Spring 2014
Spring 2014
![Page 2: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/2.jpg)
Look-back: Backjumping / Learning
l Backjumping: • In deadends, go back to
the most recent culprit.
l Learning: • constraint-recording, no-
good recording. • good-recording
Spring 2014
![Page 3: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/3.jpg)
Backjumping
l (X1=r,x2=b,x3=b,x4=b,x5=g,x6=r,x7={r,b}) l (r,b,b,b,g,r) conflict set of x7 l (r,-,b,b,g,-) c.s. of x7 l (r,-,b,-,-,-,-) minimal conflict-set l Leaf deadend: (r,b,b,b,g,r) l Every conflict-set is a no-good
Spring 2014
![Page 4: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/4.jpg)
Backjumping
l (X1=r,x2=b,x3=b,x4=b,x5=g,x6=r,x7={r,b}) l (r,b,b,b,g,r) conflict set of x7 l (r,-,b,b,g,-) c.s. of x7 l (r,-,b,-,-,-,-) minimal conflict-set l Leaf deadend: (r,b,b,b,g,r) l Every conflict-set is a no-good
Spring 2014
![Page 5: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/5.jpg)
Gaschnig jumps only at leaf-dead-ends Internal dead-ends: dead-ends that are non-leaf
Spring 2014
![Page 6: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/6.jpg)
Gaschnig jumps only at leaf-dead-ends Internal dead-ends: dead-ends that are non-leaf
Spring 2014
![Page 7: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/7.jpg)
Backjumping styles
l Jump at leaf only (Gaschnig 1977) • Context-based
l Graph-based (Dechter, 1990) • Jumps at leaf and internal dead-ends, graph
information
l Conflict-directed (Prosser 1993) • Context-based, jumps at leaf and internal dead-ends
Spring 2014
![Page 8: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/8.jpg)
Conflict Analysis
• Conflict set • Leaf deadend • Nogood • Safe jump
Spring 2014
![Page 9: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/9.jpg)
Gaschnig’s backjumping: Culprit variable
l
Spring 2014
![Page 10: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/10.jpg)
Gaschnig’s backjumping Implementation [1979]
l
Spring 2014
![Page 11: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/11.jpg)
Gaschnig’s backjumping
Spring 2014
![Page 12: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/12.jpg)
Example of Gaschnig’s backjump
![Page 13: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/13.jpg)
Properties
l Gaschnig’s backjumping implements only safe and maximal backjumps in leaf-deadends.
Spring 2014
![Page 14: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/14.jpg)
Gaschnig jumps only at leaf-dead-ends Internal dead-ends: dead-ends that are non-leaf
Spring 2014
![Page 15: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/15.jpg)
Gaschnig jumps only at leaf-dead-ends Internal dead-ends: dead-ends that are non-leaf
Spring 2014
![Page 16: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/16.jpg)
Graph-based backjumping scenarios Internal deadend at X4
l Scenario 1, deadend at x4: l Scenario 2: deadend at x5: l Scenario 3: deadend at x7: l Scenario 4: deadend at x6:
} , { ) , , (
} , { ) , , (
} { ) , (
} { ) (
3 1 4 5 6 4
3 1 4 5 7 4
1 5 4 4
1 4 4
x x x x x I
x x x x x I
x x x I
x x I
=
=
=
=
Spring 2014
![Page 17: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/17.jpg)
Graph-based backjumping l Uses only graph information to find culprit l Jumps both at leaf and at internal dead-ends l Whenever a deadend occurs at x, it jumps to the most
recent variable y connected to x in the graph. If y is an internal deadend it jumps back further to the most recent variable connected to x or y.
l The analysis of conflict is approximated by the graph. l Graph-based algorithm provide graph-theoretic bounds.
Spring 2014
![Page 18: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/18.jpg)
Ancestors and parents
l anc(x7) = {x5,x3,x4,x1} l p(x7) =x5 l p(r,b,b,b,g,r) = x5
Spring 2014
![Page 19: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/19.jpg)
Internal Deadends Analysis
The induced-parents of a variable X along an ordering, approximates its induced parent set
![Page 20: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/20.jpg)
Graph-based backjumping scenarios Internal deadend at X4
l Scenario 1, deadend at x4: l Scenario 2: deadend at x5: l Scenario 3: deadend at x7: l Scenario 4: deadend at x6:
} , { ) , , (
} , { ) , , (
} { ) , (
} { ) (
3 1 4 5 6 4
3 1 4 5 7 4
1 5 4 4
1 4 4
x x x x x I
x x x x x I
x x x I
x x I
=
=
=
=
Spring 2014
![Page 21: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/21.jpg)
Graph-based backjumping algorithm, but we need to jump at internal deadends too
When not all variables In the session above X_i are relevant deadends? read example 6.6
![Page 22: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/22.jpg)
Properties of graph-based backjumping
l
Spring 2014
![Page 23: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/23.jpg)
Conflict-directed backjumping (Prosser 1990)
l
Spring 2014
![Page 24: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/24.jpg)
Example of conflict-directed backjumping
Spring 2014
![Page 25: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/25.jpg)
Properties
l Given a dead-end , the latest variable in its jumpback set is the earliest variable to which it is safe to jump.
l This is the culprit. l Algorithm conflict-directed backtracking jumps back
to the latest variable in the dead-ends’s jumpback set, and is therefore safe and maximal.
ia!
iJ
Spring 2014
![Page 26: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/26.jpg)
Conflict-directed backjumping
![Page 27: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/27.jpg)
Graph-Based Backjumping on DFS Orderings
Spring 2014
![Page 28: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/28.jpg)
Graph-based Backjumping on DFS ordering
l
Spring 2014
![Page 29: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/29.jpg)
Complexity of Graph-based Backjumping
l
1+= mmm kbT
Spring 2014
![Page 30: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/30.jpg)
DFS of graph and induced graphs
Spanning-tree of a graph; DFS spanning trees, Pseudo-tree Pseudo-tree is a spanning tree that does not allow arcs across branches.
Spring 2014
![Page 31: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/31.jpg)
Complexity of Backjumping uses pseudo-tree analysis
Simple: always jump back to parent in pseudo tree Complexity for csp: exp(tree-depth) Complexity for csp: exp(w*log n)
Spring 2014
![Page 32: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/32.jpg)
Complexity of Backjumping
Spring 2014
![Page 33: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/33.jpg)
Look-back: No-good Learning
l
Learning means recording conflict sets used as constraints to prune future search space.
Spring 2014
![Page 34: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/34.jpg)
Learning, constraint recording
l Learning means recording conflict sets l An opportunity to learn is when deadend is
discovered. l Goal of learning is to not discover the same
deadends. l Try to identify small conflict sets l Learning prunes the search space.
Spring 2014
![Page 35: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/35.jpg)
Nogoods explain deadends
l Conflicts to record are explanations
• (x1=2,x2=2,x3=1,x4=2) 4-ary • (x1=2,x2=2,x3=1,x4=2)à (x5 ≠1) and • (x3=1,x4=2) à • (x4=2) à (x5 ≠1)
Learning means recording explanations to conflicts They are implied constraints
(x5 ≠1)
Spring 2014
![Page 36: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/36.jpg)
Learning example
Spring 2014
![Page 37: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/37.jpg)
Learning Issues l Learning styles
• Graph-based or context-based • i-bounded, scope-bounded • Relevance-based
l Non-systematic randomized learning l Implies time and space overhead l Applicable to SAT
Spring 2014
![Page 38: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/38.jpg)
Graph-based learning algorithm
Spring 2014
![Page 39: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/39.jpg)
Deep learning
l Deep learning: recording all and only minimal conflict sets
l Example: l Although most accurate, overhead can be
prohibitive: the number of conflict sets in the worst-case:
r
rr
22/
=⎟⎟⎠
⎞⎜⎜⎝
⎛
Spring 2014
![Page 40: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/40.jpg)
Jumpback Learning
l Record the jumpback assignment
![Page 41: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/41.jpg)
Bounded and relevance-based learning Bounding the arity of constraints recorded. l When bound is i: i-ordered graph-based,i-order jumpback or
i-order deep learning. l Overhead complexity of i-bounded learning is time and
space exponential in i.
Spring 2014
![Page 42: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/42.jpg)
Complexity of Backtrack-Learning for CSP
The number of dead-ends is bounded by Number of constraint tests per dead-end are Space complexity is Time complexity is Learning and backjumping: )(
)()(
1)(*
1)(*2
)(*
+
+
⋅
⋅
dw
dw
dw
knmO
knOnkO
l The complexity of learning along d is time and space exponential in w*(d):
)( )*(dwnkO)(eO
m- depth of tree, e- number of constraints
Spring 2014
![Page 43: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/43.jpg)
Good caching: Moving from one to all or counting
E 0 1 0 1 0 1 0 1
0 C 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
F 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 B 1 0 1
A 0 1
E 0 1 0 1 0 1 0 1
0 C 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
F 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 B 1 0 1
A 0 1
E 0 1 0 1 0 1 0 1
0 C 1 0 1 0 1 0 1 0 1 0 1 0 1
F 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 B 1 0 1
A 0 1
E 0 1 0 1 0 1 0 1
0 C 1 0 1 0 1 0 1 0 1
F 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 B 1 0 1
A 0 1
E 0 1 0 1 0 1 0 1
0 C 1 0 1 0 1 0 1 0 1 0 1
F 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 B 1 0 1
A 0 1
E 0 1 0 1 0 1 0 1
0 C 1 0 1 0 1 0 1
F 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 B 1 0 1
A 0 1
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1
0 1
0 1 0 1
E
C
F
D
B
A 0 1
0 1
0 1 0 1 0 1
A
D
B C
E
F
![Page 44: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/44.jpg)
Summary: Time-space for constraint processing (consistency and counting)
l
Spring 2014
![Page 45: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/45.jpg)
Non-Systematic Randomized Learning
l Do search in a random way with interupts, restarts, unsafe backjumping, but record conflicts.
l Guaranteed completeness.
Spring 2014
![Page 46: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/46.jpg)
Look-back for SAT
l σ
σσ
Spring 2014
![Page 47: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/47.jpg)
Integration of algorithms
Spring 2014
![Page 48: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/48.jpg)
Spring 2014
![Page 49: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/49.jpg)
Relationships between various backtracking algrithms
Spring 2014
![Page 50: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/50.jpg)
Empirical comparison of algorithms
l Benchmark instances l Random problems l Application-based random problems l Generating fixed length random k-sat
(n,m) uniformly at random l Generating fixed length random CSPs l (N,K,T,C) also arity, r.
Spring 2014
![Page 51: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/51.jpg)
The Phase transition (m/n)
Spring 2014
![Page 52: ICS 275 Spring 2014dechter/courses/ics-275a/spring...Spring 2014 Ancestors and parents ! anc(x7) = {x5,x3,x4,x1} ! p(x7) =x5 ! p(r,b,b,b,g,r) = x5 Spring 2014 Internal Deadends Analysis](https://reader034.vdocuments.us/reader034/viewer/2022050311/5f7352f11a26166de361210d/html5/thumbnails/52.jpg)
Some empirical evaluation l Sets 1-3 reports average over 2000 instances of random
csps from 50% hardness. Set 1: 200 variables, set 2: 300, Set 3: 350. All had 3 values.:
l Dimacs problems