Fluent Merging: A General Technique to Improve Reachability Heuristics and Factored Planning Menkes van den Briel Subbarao Kambhampati Department of Industrial Engineering Department of Computer Science Arizona State University Arizona State University menkes@asu.edu rao@asu.edu http://rakaposhi.eas.asu.edu/yochan/ Thomas Vossen Leeds School of Business University of Colorado at Boulder vossen@colorado.edu What is fluent merging? • Fluent merging – The process of combining two or more fluents (state variables) into a single super fluent Gripper domain representations Propositions At(1,A) At(1,B) Carry(1) At(2,A) At(2,B) Carry(2) T F T Robby(A) Robby(B) 1 F T 1 F T F 2 T 2 F T F Free 1 T F T F T F 29 = 512 2 Gripper domain representations Propositions At(1,A) At(1,B) Carry(1) At(2,A) State variables T F Ball 1 1 A 1 B 1 1 T G 1 F T 1 F T F Ball 2 2 A 2 2 B 2 At(2,B) Carry(2) T G 2 F T 2 F 1 Free Robby(A) Robby(B) T F Gripper 1 2 2 T F F T F 29 = 512 Robby A B 3 3 3 2 = 54 Gripper domain representations Propositions State variables T At(1,A) F Ball 1 1 1 Domain B 1 1 1 2 2 1 2 1 T At(1,B) A State space 1 F 1 G 3 2 4 T Carry(1) 2 1 1 1 5 F 2 2 6 T At(2,A) F Ball 2 2 A 2 7 2 At(2,B) 8 2 2 Free F 2 2 1 1 2 2 11 F T 1 9 10 Carry(2) 1 G F T 2 2 B T 1 Gripper 1 1 12 2 13 1 2 1 2 2 1 1 T Robby(A) F F T Robby(B) F 29 = 512 Robby 14 2 15 1 2 16 1 2 A B 3 3 3 2 = 54 16 = 16 Gripper domain causalities Propositions At(1,A) At(2,A) Carry(1) Robby(A) At(1,B) Free State variables At(2,B) Carry(2) Robby(B) Ball 1 Ball 2 Gripper Robby State space Domain Gripper domain causalities Propositions At(1,A) At(2,A) Carry(1) At(1,B) Free Robby(A) State variables At(2,B) Carry(2) Robby(B) Ball 1 Ball 2 State space Domain Gripper Robby 2 Exp Decreases domain size of the fluents CG 0 Decreases causal dependencies between fluents How fluent merging helps • Relaxed reachability heuristics – Relaxed reachability heuristics can do a more informed job of distance estimation after fluent merging (since some of the negative interactions have been compiled-in) – Our recent work [van den Briel et al., 2007] shows that we can derive more informed heuristics by merging fluents without experiencing too much computational overhead • Factored planning – Factored planning techniques may require fewer (inter variable) backtracks after fluent merging (since common actions are synchronized the combining phase becomes easier) Important questions • Can we decide up front when fluent merging will help improve search? • Can we dynamically apply fluent merging during planning? Fluent merging • Composition – Given the domain transition graph (DTG) of two fluents c1, c2, the composition of DTGc1 and DTGc2 is the domain transition graph DTGc1||c2 = (Vc1||c2, Ec1||c2) where – Vc1||c2 = Vc1 Vc2 – ((f1,g1),(f2,g2)) Ec1||c2 if f1,f2 Vc1, g1,g2 Vc2 and there exists an action a A such that one of the following conditions hold • pre[c1] = f1, post[c1] = f2, and pre[c2] = g1, post[c2] = g2 • pre[c1] = f1, post[c1] = f2, and prev[c2] = g1, g1 = g2 • pre[c1] = f1, post[c1] = f2, and g1= g2 The term composition is also used in model checking to define the parallel composition of automata [Cassndras & Lafortune, 1999] Example • Two DTGs and their composition f1,,g1 d c f3,g2 f1,g2 f1 a c a f2 a g1 b b c f3,g1 d f2,g1 b d f3 g2 f2,g2 DTGc1 DTGc2 DTGc1 || c2 Example • Two DTGs and their composition – Small in-arcs denote the initial state – Double circles denote the goal f1,,g1 d c f1,g2 f1 a c a f2 a g1 b b c f3,g1 d f2,g1 b d f3 g2 f2,g2 DTGc1 DTGc2 DTGc1 || c2 Identifying mergeable fluents • When should we merge two or more fluents? – Look at the causal graph – Look at the actions that introduce dependencies in the causal graph Causal 2-cycles • Merge two fluents if they form a causal 2-cycle (cycle of length two) in the causal graph – If for every action a that has an effect in state variable c1 (c2) we have that action a has an effect or prevail condition in state variable c2 (c1) Person 1 Person 2 Airplane 1 Airplane 2 Fuel 1 Fuel 2 Causal 2-cycles • Merge two fluents if they form a causal 2-cycle (cycle of length two) in the causal graph – If for every action a that has an effect in state variable c1 (c2) we have that action a has an effect or prevail condition in state variable c2 (c1) Person 1 Person 2 Airplane 1 Airplane 2 Fuel 1 Fuel 2 Causal 2-cycles • Merge two fluents if they form a causal 2-cycle (cycle of length two) in the causal graph – If for every action a that has an effect in state variable c1 (c2) we have that action a has an effect or prevail condition in state variable c2 (c1) Person 1 Person 2 Airplane 1 Fuel1 Airplane 2 Fuel2 Causal dependency • Merge two fluents if they remove a causal link in the causal graph – If the common actions between state variable c1 and c2 all have an effect in state variable c1 and a prevail condition in state variable c2 and Pack 1 A Domain 1 B 2 T 3 4 5 6 Truck 1 A B Causal dependency • Merge two fluents if they remove a causal link in the causal graph – If the common actions between state variable c1 and c2 all have an effect in state variable c1 and a prevail condition in state variable c2 and Pack 1 A Domain 1 B 2 T 3 4 5 6 Truck 1 A B Results 10000 binary 1000 Solution time (sec.) Solution time (sec.) 10000 multi 100 10 1 0.1 binary 1000 multi 100 10 1 0.1 0.01 0.01 1 2 3 4 5 1 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 3 4 5 6 10000 9 10 11 12 13 14 15 10000 binary binary Solution time (sec.) Solution time (sec.) 8 Blocksworld Freecell (IPC2) 1000 7 multi 100 10 1 0.1 1000 multi 100 10 1 0.1 0.01 0.01 1 3 5 7 9 11 13 15 17 Logistics 19 21 23 25 27 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Zenotravel Results Problem log4-0 log4-1 log4-2 log5-1 log5-2 log6-1 log6-9 log12-0 log15-1 freecell2-1 freecell2-2 freecell2-3 freecell2-4 freecell2-5 freecell3-5 freecell13-3 freecell13-4 freecell13-5 driverlog1 driverlog2 driverlog3 driverlog4 driverlog6 driverlog7 driverlog13 driverlog19 driverlog20 LP LP20 19 15 17 8 14 24 42 67 9 8 8 8 9 12 55 54 52 7 19 11 15.5 11 13 24 96.6* 89.5* 16.0* 14.0* 10.0* 12.0* 6.0* 10.0* 18.0* 32.0* 54.0* 9 8 8 8 9 12 55 54 52 3.0* 12.0* 8.0* 11.0* 8.0* 11.0* 15.0* 60.0* 60.0* Problem LP zenotravel1 zenotravel2 zenotravel3 zenotravel4 zenotravel5 zenotravel6 zenotravel13 zenotravel19 zenotravel20 tpp1 tpp2 tpp3 tpp4 tpp5 tpp6 tpp28 tpp29 tpp30 bw-sussman bw-12step bw-large-a bw-large-b LP1 6 6 8 11 11 24 66.2* 68.3* 5 8 11 14 19 25 4 4 12 16 1 3.0* 4.0* 5.0* 8.0* 8.0* 18.0* 46.0* 50.0* 3.0* 6.0* 9.0* 12.0* 15.0* 21.0* 150.0* 174.0* 4 4 12 16 Conclusions • Our recent work [van den Briel et al., 2007] shows that we can derive more informed heuristics by merging fluents without experiencing too much computational overhead • We believe that there may be other ways to identify mergeable fluents that either extend or generalize the ways that we described • It would be interesting to see the impact of fluent merging on existing planning systems