+ All Categories
Home > Documents > Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same...

Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same...

Date post: 29-Jul-2020
Category:
Upload: others
View: 13 times
Download: 0 times
Share this document with a friend
38
Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik Seipp Malte Helmert Albert-Ludwigs-Universit¨ at Freiburg, Germany ICAPS 2011 Workshop on Knowledge Engineering for Planning and Scheduling June 12th, 2011
Transcript
Page 1: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Fluent Merging forClassical Planning Problems

Jendrik Seipp Malte Helmert

Albert-Ludwigs-Universitat Freiburg, Germany

ICAPS 2011 Workshop onKnowledge Engineering for Planning and Scheduling

June 12th, 2011

Page 2: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

room1 room2

in(ball, room1) ∈ {True, False}in(ball, room2) ∈ {True, False}carry(ball, arm) ∈ {True, False}

ball pos ∈ {in(ball, room1), in(ball, room2), carry(ball, arm)}robby pos ∈ {robby-in(room1), robby-in(room2)}state arm ∈ {free(arm), full(arm)}

Page 3: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

room1 room2

in(ball, room1) ∈ {True, False}in(ball, room2) ∈ {True, False}carry(ball, arm) ∈ {True, False}

ball pos ∈ {in(ball, room1), in(ball, room2), carry(ball, arm)}robby pos ∈ {robby-in(room1), robby-in(room2)}state arm ∈ {free(arm), full(arm)}

Page 4: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

room1 room2

in(ball, room1) ∈ {True, False}in(ball, room2) ∈ {True, False}carry(ball, arm) ∈ {True, False}

ball pos ∈ {in(ball, room1), in(ball, room2), carry(ball, arm)}robby pos ∈ {robby-in(room1), robby-in(room2)}state arm ∈ {free(arm), full(arm)}

Page 5: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

room1 room2

in(ball, room1) ∈ {True, False}in(ball, room2) ∈ {True, False}carry(ball, arm) ∈ {True, False}

ball pos ∈ {in(ball, room1), in(ball, room2), carry(ball, arm)}robby pos ∈ {robby-in(room1), robby-in(room2)}state arm ∈ {free(arm), full(arm)}

Page 6: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Background

Paper by van den Briel, Kambhampati and Vossen at ICAPS2007 Heuristics workshop

Mutex groups in Fast Downward

Page 7: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Fast Downward Planning System

Translation

Knowledge compilation

Search

Page 8: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Fast Downward Planning System

Translation

Fluent Merging

Knowledge compilation

Search

Page 9: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Merging two variables

Definition (SAS+ planning task)

Π = 〈V,O, s0, s?〉

Merging also generalized for conditional effects.

Page 10: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Variables

V = {ball pos, robby pos, arm}Dball pos = {in(ball, room1), in(ball, room2), carry(ball, arm)}Drobby pos = {robby-in(room1), robby-in(room2)}Dstate arm = {free(arm), full(arm)}

New variable: ball pos⊗ state arm

Dball pos⊗state arm

in(ball, room1)⊗ free(arm)in(ball, room2)⊗ free(arm)carry(ball, arm)⊗ free(arm)

in(ball, room1)⊗ full(arm)in(ball, room2)⊗ full(arm)carry(ball, arm)⊗ full(arm)

Page 11: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Variables

V = {ball pos, robby pos, arm}Dball pos = {in(ball, room1), in(ball, room2), carry(ball, arm)}Drobby pos = {robby-in(room1), robby-in(room2)}Dstate arm = {free(arm), full(arm)}

New variable: ball pos⊗ state arm

Dball pos⊗state arm

in(ball, room1)⊗ free(arm)in(ball, room2)⊗ free(arm)carry(ball, arm)⊗ free(arm)

in(ball, room1)⊗ full(arm)in(ball, room2)⊗ full(arm)carry(ball, arm)⊗ full(arm)

Page 12: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Variables

V = {ball pos, robby pos, arm}Dball pos = {in(ball, room1), in(ball, room2), carry(ball, arm)}Drobby pos = {robby-in(room1), robby-in(room2)}Dstate arm = {free(arm), full(arm)}

New variable: ball pos⊗ state arm

Dball pos⊗state arm

in(ball, room1)⊗ free(arm)in(ball, room2)⊗ free(arm)carry(ball, arm)⊗ free(arm)

in(ball, room1)⊗ full(arm)in(ball, room2)⊗ full(arm)carry(ball, arm)⊗ full(arm)

Page 13: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Variables

V = {ball pos, robby pos, arm}Dball pos = {in(ball, room1), in(ball, room2), carry(ball, arm)}Drobby pos = {robby-in(room1), robby-in(room2)}Dstate arm = {free(arm), full(arm)}

New variable: ball pos⊗ state arm

Dball pos⊗state arm

in(ball, room1)⊗ free(arm)in(ball, room2)⊗ free(arm)carry(ball, arm)⊗ free(arm)

in(ball, room1)⊗ full(arm)in(ball, room2)⊗ full(arm)

carry(ball, arm)⊗ full(arm)

Page 14: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Operator 1

move-room1-room2 =〈{robby-in(room1)},{robby-in(room2)}〉

Page 15: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Operator 2

pick-ball-in-room1 =〈{robby-in(room1), in(ball, room1), free(arm)},{carry(ball, arm), full(arm)}〉

Page 16: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Operator 2

pick-ball-in-room1 =〈{robby-in(room1), in(ball, room1)⊗ free(arm)},{carry(ball, arm)⊗ full(arm)}〉

Page 17: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Operator 3

drop-ball-in-room1 =〈{robby-in(room1), carry(ball, arm)},{in(ball, room1), free(arm)}〉

Page 18: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Operator 3

drop-ball-in-room1 =〈{robby-in(room1), carry(ball, arm)},{in(ball, room1)⊗ free(arm)}〉

Page 19: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Operator 3

drop-ball-in-room1-with-full(arm) =〈{robby-in(room1), carry(ball, arm)⊗ full(arm)},{in(ball, room1)⊗ free(arm)}〉

Page 20: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Initial state

s0 = robby-in(room1) ∧ in(ball, room1) ∧ free(arm)

Page 21: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Initial state

s0 = robby-in(room1) ∧ in(ball, room1)⊗ free(arm)

Page 22: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Goal

s? = in(ball, room2)

in(ball, room2)⊗ free(arm)→ in(ball, room2)?

pseudo-op =〈{in(ball, room2)⊗ free(arm)}, {in(ball, room2)}〉Dball pos⊗state arm ← Dball pos⊗state arm ∪ {in(ball, room2)}

Page 23: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Goal

s? = in(ball, room2)

in(ball, room2)⊗ free(arm)→ in(ball, room2)?

pseudo-op =〈{in(ball, room2)⊗ free(arm)}, {in(ball, room2)}〉Dball pos⊗state arm ← Dball pos⊗state arm ∪ {in(ball, room2)}

Page 24: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Why is Fluent Merging interesting for KEPS?

Fluent Merging as an attempt to show that the underlyingrepresentation is not set in stone

Page 25: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Fluent Selection

Random variables

Number of mutexes

Minimize total domain size

Heavily connected variables in causal graph

Two-cycle pairs in causal graph

Goal variables

Minimize number of operators

Page 26: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Experiments - Settings

5 merges, only variable pairs

Worse performance with bigger values

30 minutes, 2 GB memory

Greedy best-first search with deferred evaluationand hcea

(Helmert and Geffner, 2008)

Page 27: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Experiments - Results

Domain no-merge rand mutex size conn cycles goals opsdepot (22) 17 11 14 12 15 15 13 14freecell (80) 78 75 77 76 72 72 57 37pathways (30) 15 14 16 17 14 14 13 15pipes-nt (50) 38 5 8 16 14 14 9 16pipes-t (50) 24 9 3 17 11 8 9 15rovers (40) 34 31 34 35 34 34 34 24schedule (150) 60 58 59 59 54 52 39 60tpp (30) 28 20 24 24 22 24 23 16trucks (30) 17 15 14 16 14 14 16 6. . . . . . . . .Total (880) 709 616 625 660 619 608 583 548

Each method best in at least one domain

No method comes close to reference

Page 28: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Same object method

First-order PDDL representation

Examples:

Dv = {painted(chair1),not-painted(chair1)}Du = {at(c2 loc1), at(c2 loc2), at(c2 loc3)}

Merge only variables that speak about the same object

Page 29: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Same object method

First-order PDDL representation

Examples:

Dv = {painted(chair1),not-painted(chair1)}Du = {at(c2 loc1), at(c2 loc2), at(c2 loc3)}

Merge only variables that speak about the same object

Page 30: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Same object method

First-order PDDL representation

Examples:

Dv = {painted(chair1),not-painted(chair1)}Du = {at(c2 loc1), at(c2 loc2), at(c2 loc3)}

Merge only variables that speak about the same object

Page 31: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Same object method

First-order PDDL representation

Examples:

Dv = {painted(chair1),not-painted(chair1)}Du = {at(c2 loc1), at(c2 loc2), at(c2 loc3)}

Merge only variables that speak about the same object

Page 32: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Same object method

First-order PDDL representation

Examples:

Dv = {painted(chair1),not-painted(chair1)}Du = {at(c2 loc1), at(c2 loc2), at(c2 loc3)}

Merge only variables that speak about the same object

Page 33: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Experiments - Settings

Discouraging results with optimal configurations

Greedy best-first search with deferred evaluation and

hcea: Context-enhanced additive heuristic (Helmert and Geffner, 2008)

hCG: Causal graph heuristic (Helmert 2004)

hFF: FF/additive heuristic (Hoffmann and Nebel, 2001)

Page 34: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Experiments - Results

Merges hFF

Domain 0 2 5 10 15 20 30depot (22) 19 18 19 20 20 20 20freecell (80) 76 80 78 77 79 78 75miconic (150) 150 150 150 150 150 80 80pprinter (30) 23 22 22 22 22 22 22pipes-nt (50) 43 41 42 42 43 42 42pipes-t (50) 38 39 38 37 39 37 37rovers (40) 40 40 40 40 40 40 37schedule (150) 150 149 149 149 149 149 148sokoban-sat (30) 24 28 29 28 28 28 28storage (30) 20 20 20 20 19 19 19trucks (30) 19 17 17 18 18 18 18wood-sat (30) 29 29 28 28 28 28 29. . . . . .Total (908) 820 822 821 820 824 750 744

Page 35: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Mutex threshold

Suggested by reviewer|Da⊗b||Da|·|Db| < x ?

For gripper example: (3·2)−33·2 = 0.5

Page 36: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Mutex threshold - Experiments

70% 80% 90%# Merges → 0 2 5 10 2 5 10 2 5 10depot (22) 17 18 17 18 19 17 18 20 18 19freecell (80) 76 76 76 75 76 76 75 76 76 76trucks-strips (30) 18 21 17 17 21 17 17 21 17 17Total (132) 111 115 110 110 116 110 110 117 111 112

Table: Greedy best-first search with deferred evaluation and hFF

Other domains: No mutexes or no change compared to hFF

Page 37: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Future Work

Inspect impact on heuristics in detail

Fluent merging with boolean fluents

Use automatic parameter configuration methods

Page 38: Fluent Merging for Classical Planning Problems · Background Fluent Merging Fluent Selection Same object method Mutex threshold Fluent Merging for Classical Planning Problems Jendrik

Background Fluent Merging Fluent Selection Same object method Mutex threshold

Summary

First general implementation and experimental evaluation

Improvements in some domains

Find out which and how many fluents to merge


Recommended