Download presentation
Presentation is loading. Please wait.
1
25 th Feb EBL example GP-CSP Other compilation schemes Setting up encodings
2
The Story Behind Memos… Memos essentially tell us that a particular set S of conditions cannot be achieved at a particular level k in the PG. –We may as well remember this information—so in case we wind up subgoaling on any set S’ of conditions, where S’ is a superset of S, at that level, you can immediately declare failure “Nogood” learning—Storage/matching cost vs. benefit of reduced search.. Generally in our favor But, just because a set S={C1….C100} cannot be achieved together doesn’t necessarily mean that the reason for the failure has got to do with ALL those 100 conditions. Some of them may be innocent bystanders. –Suppose we can “explain” the failure as being caused by the set U which is a subset of S (say U={C45,C97})—then U is more powerful in pruning later failures –Idea called “Explanation based Learning” Improves Graphplan performance significantly…. [Rao, IJCAI-99; JAIR 2000]
3
Explaining Failures with Conflict Sets Conflict set for P 4 = P 4 Whenever P can’t be given a value v because it conflicts with the assignment of Q, add Q to P’s conflict set X X X P1P1 P2P2 P3P3 P4P4 P5P5 P6P6 A5A5 A6A6 A7A7 A8A8 A9A9 A 10 A 11 P2P2 P1P1
4
X X X P1P1 P2P2 P3P3 P4P4 P5P5 P6P6 A5A5 A6A6 A7A7 A8A8 A9A9 A 10 A 11 DDB & Memoization (EBL) with Conflict Sets When we reach a variable V with conflict set C during backtracking --Skip other values of V if V is not in C (DDB) --Absorb C into conflict set of V if V is in C --Store C as a memo if V is the first variable at this level Conflict set for P 3 = P 3 P2P2 P3P3 --Skip over P 3 when backtracking from P 4 Conflict set for P 4 = P 4 P2P2 P1P1 Conflict set for P 1 = P 4 P2P2 P1P1 P3P3 Conflict set for P 2 = P 4 P2P2 P1P1 Absorb conflict set being passed up P1P1 P2P2 P3P3 P4P4 Store P 1 P 2 P 3 P 4 as a memo
5
Regressing Conflict Sets P1P1 P2P2 P3P3 P4P4 P1P1 P2P2 P3P3 P4P4 P5P5 P6P6 G1G1 G2G2 G3G3 G4G4 A1A1 A2A2 A3A3 A4A4 P6P6 P1P1 P 1 P 2 P 3 P 4 regresses to G 1 G 2 -P 1 could have been regressed to G 4 but G 1 was assigned earlier --We can skip over G 4 & G 3 (DDB) Regression: What is the minimum set of goals at the previous level, whose chosen action supports generate a sub-goal set that covers the memo --Minimal set --When there is a choice, choose a goal that has been assigned earlier --Supports more DDB
6
Using EBL Memos If any stored memo is a subset of the current goal set, backtrack immediately Return the memo as the conflict set Smaller memos are more general and thus prune more failing branches Costlier memo-matching strategy --Clever indexing techniques available Set Enumeration Trees [Rymon, KRR92] UBTrees [Hoffman & Koehler, IJCAI-99] Allows generation of more effective memos at higher levels… Not possible with normal memoization
7
Speedups are correlated with memo-length reduction
8
Compiling Planning Graph into CSP
9
Variables/Domains: ~cl-B-2: { #, St-A-B-2, Pick-B- 2,~cl-B-1} he-2: {#, St-A-B-2, St-B-A- 2,Ptdn-A-2,Ptdn-B-2,he-1} h-A-1: {#, Pick-A-1,h-A-0} h-B-1: {#,Pick-B-1,h-B-0 } …. Constraints: he-2 = St-A-B-2 => h-A-1 !=# {activation} On-A-B-2 = St-A-B-2 => On- B-A-2 != St-B-A-2 {mutex constraints} Goals: ~cl-B-2 != # he-2 !=# Conversion to CSP -- This search can also be cast as a CSP Variables: literals in proposition lists Values: actions supporting them Constraints: Mutex and Activation constraints
11
CSP Encodings can be faster than Graphplan Backward Search Do & Kambhampati, 2000 But but WHY? --We are taking the cost of converting PG into CSP (and also tend to lose the ability to use previous level search) --there is NO reason why the search for finding the valid subgraph has to go level-by-level and back to front. --CSP won’t be hobbled by level-by-level and back-to-front
12
2/27 GP-CSP—more Other compilation schemes Setting up encodings
13
Mini-Project1 Observations.. Paction can cause incompleteness –Gripper 20 Why is Hlev giving longer solutions? –Use of parallel rather than sequential graphs in AltAlt ?? –Weighted evaluation f=g+5*h Should have tables (even if no traces) Need access to better machines?
14
Another way of thinking of the CSP compilation….
20
DDB & EBL in CSP N 1 : {x=A} N 2 : {x= A & y = B } N 3 : {x= A & y = B & v = D } N 4 : {x= A & y = B & v = D & u = C } N 5 : {x= A & y = B & v = D & u = C & w= E } N 6 : {x= A & y = B & v = D & u = C & w= D } x A y B v D w E w D u C E 6 : y = B & w = D E 5 : x=A & w=E E 4 : y = B & x=A y=B x=A y = B & x=A x=A Resume Search regression Interior node explanation DDB: Skip a level if the regressed Explanation remains the same EBL: Store interior node failure Explanations x,y,u,v: {A,B,C,D,E} w: {D,E} l : {A,B} x=A w E y=B u D Y=b=> w!= D u=C l A v=D l B
21
It is no good to have too many nogoods.. Keeping no goods around can be a mixed blessing.. –Depth first search takes linear space to solve CSP. With nogoods, it can take exponential space –With n variables of size D, we might—in the worst case, keep O(n D ) nogoods! –Utility problem up the wazzoo.. »Exponential space »Exponential matching cost.. –Yes, Virginia—There is such a thing called too much of a good thing.
22
Ideas to reduce the number of stored nogoods Size-based pruning –The smaller the nogood is the more powerful it is. So, limit the size of the nogoods stored to k or less (k<<n; usually about 5) Only O( k D ) nogoods stored Normal EBL corresponds to k=n Relevance-based pruning –Prune a nogood when it differs in more than k places from the current assignment Anytime we backtrack over a node, we are likely to prune some of the nogoods Normal EBL corresponds to k=n Utility-based pruning –Keep track of the usage of the nogoods. Keep only nogoods which are being used… Costly maintenance. Sort of like page replacement strategies…
23
Using EBL strategies in GP-CSP Size of learning: k = 10 for both size-based and relevance-based Speedup over GP-CSP up to 10x Faster than SAT in most cases, up to 70x over Blackbox
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.