640 likes | 771 Views
Factored Planning. Eyal Amir (UC Berkeley) Barbara Engelhardt (UC Berkeley). Motivation. Planning in structured domains Scale up planners to large domains Avoid backtracking of search for plans. Techniques : Similar to structured exact logical and probabilistic reasoning
E N D
Factored Planning Eyal Amir (UC Berkeley) Barbara Engelhardt (UC Berkeley) Factored Planning
Motivation • Planning in structured domains • Scale up planners to large domains • Avoid backtracking of search for plans • Techniques: Similar to structured exact logical and probabilistic reasoning • (Pearl’88), (Dechter & Rish’94), (Amir & McIlraith ’00,’01), (McCartney etal. ’03) Factored Planning
Talk Outline • Factored domains • Factored planning algorithm • Decomposition algorithm Factored Planning
Example Planning Domain Room 1 (20 windows) Room 2 (20 windows) Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain • Plan: • move-left • 2. close(1), close(2), … • 3. move-right • close(21), close(22), … Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain Example plan: Room 1 (20 windows) Room 2 (20 windows) at2 Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain Example plan: Room 1 (20 windows) Room 2 (20 windows) at2 Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain Example plan: Room 1 (20 windows) Room 2 (20 windows) at1 Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain Example plan: Room 1 (20 windows) Room 2 (20 windows) at1 Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain Example plan: Room 1 (20 windows) Room 2 (20 windows) at1 Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain Example plan: Room 1 (20 windows) Room 2 (20 windows) done1 at1 Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain Example plan: Room 1 (20 windows) Room 2 (20 windows) done1 at1 Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain Example plan: Room 1 (20 windows) Room 2 (20 windows) done1 at2 Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain Example plan: Room 1 (20 windows) Room 2 (20 windows) done1 at2 Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain Example plan: Room 1 (20 windows) Room 2 (20 windows) done1 at2 Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain Example plan: Room 1 (20 windows) Room 2 (20 windows) done1 done2 at2 Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Example Planning Domain • Plan: • move-left • 2. close(1), close(2), … • 3. move-right • close(21), close(22), … Fluents: closed(x), done1, done2, at1, at2 Actions: close(x), move-R, move-L Goal: done1,done2 (all windows closed) Initial state: at2 Factored Planning
Factored Planning Domain • Plan: • move-left • 2. close(1), close(2), … • 3. move-right • close(21), close(22), … Fluents: closed(x) (1x20) done1, at1, at2 Actions: Close(x) (1x20) Move-R, move-L Fluents: closed(x) (21x40) done1,done2,at1,at2 Actions: Close(x) (21x40) Move-R, move-L at1,at2 done1 Factored Planning
Intuition • Planning separately in different parts • Combine separate plans to form complete plan • Difficulty: want a sound + complete procedure that is always applicable • Potential benefits: • Fast planning & replanning • Scaling to very large domains Factored Planning
Talk Outline • Factored domains • Factored planning algorithm • Decomposition algorithm Factored Planning
Planning via Dynamic Program Room 1 (20 windows) Room 2 (20 windows) Send Messages (one way) Do some Processing In subdomain 1 Do some Processing In subdomain 2 + messages Factored Planning
Planning Algorithm (example) Room 1 (20 windows) Room 2 (20 windows) Find capabilities of subdomain 1 relevant to subdomain 2 Factored Planning
Planning Algorithm (example) Room 1 “if at1, then there is a way to make done1 true” Room 2 (20 windows) Find capabilities of subdomain 1 relevant to subdomain 2 Factored Planning
Planning Algorithm (example) Room 1 “if at1, then there is a way to make done1 true” Room 2 (20 windows) Find capabilities of subdomain 1 Create a new action In subdomain 2: relevant to subdomain 2 “make done1 true” Precond: at1 Effect: done1 Factored Planning
Planning Algorithm (example) Room 1 “if at1, then there is a way to make done1 true” Room 2 (20 windows) Find capabilities of subdomain 1 Find plan in subdomain 2 relevant to subdomain 2 “make done1 true” Precond: at1 Effect: done1 Factored Planning
Planning Algorithm (example) Room 2 Room 1 “if at1, then there is a way to make done1 true” • Plan: • move-left • “make done1 true” • move-right • close(21), • close(22), … Find capabilities of subdomain 1 Find plan in subdomain 2 relevant to subdomain 2 “make done1 true” Precond: at1 Effect: done1 Factored Planning
Planning Algorithm (example) Room 2 Room 1 “if at1, then there is a way to make done1 true” • Plan: • move-left • “make done1 true” • move-right • close(21), • close(22), … Find capabilities of subdomain 1 Expand plan to Include only atomic actions relevant to subdomain 2 Factored Planning
Planning Algorithm (example) Room 2 Room 1 “if at1, then there is a way to make done1 true” • Plan: • move-left • A. close(1), • B. close(2), … • 3. move-right • close(21), • close(22), … Find capabilities of subdomain 1 Expand plan to Include only atomic actions relevant to subdomain 2 Factored Planning
Separator Fluents: closed(x) (0<x<21) done1, at1, at2 Actions: Close(x) (0<x<21) Move-R, move-L Fluents: closed(x) (19<x<41) done1,done2,at1,at2 Actions: Close(x) (19<x<41) Move-R, move-L at1,at2 done1 Summary & Outlook • So far: example of algorithm • Next: algorithm + generalization Factored Planning
Planning Algorithm (2 partitions) INPUT: 2 Partitions of fluents and actions Initial state, Goal condition • Iterate over values V for separator: A. Find achievable goals for part 1 from V B. Send found plans to part 2 • Add new actions for plans of part 1 • Find plan for goal in part 2 • Replace new actions with atomic ones Factored Planning
General Messages Room 1 “if at1, then there is a way to make done1 true” Room 2 (20 windows) power Not true anymore What if we need more interactions between rooms? Example: robot must recharge batteries Factored Planning
General Messages Room 1 “if at1, and when needed battery_ok, then we can make done1 true” Room 2 (20 windows) power What if we need more interactions between rooms? Example: robot must recharge batteries Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Factored Planning
Planning Algorithm INPUT: m Partitions of fluents and actions Initial state, Goal condition Find plan in final partition Replace new actions with atomic actions Factored Planning
Analysis of Algorithm • Theorem: Planning algorithm is sound and complete. • Theorem: Algorithm runs in time O(m• 2k1•k2) m = number of partitions k1 = # fluents in largest partition k2 = “plan width”: # back-and-forth interactions between partitions in a plan Factored Planning
Analysis of Algorithm • Theorem: Planning algorithm is sound and complete. • Theorem: Algorithm runs in time O(m• 2k1•k2) • Two Rooms Example: m = 2 k1 = 24 k2 = 1 Factored planning: O(2 • 224) Traditional planning: O(244) Factored Planning
Experiment: Ring of Rooms Time (in milliseconds) Number of rooms Factored Planning
Talk Outline • Factored domains • Factored planning algorithm • Decomposition algorithm Factored Planning
Decomposition Algorithm • Convert into a graph problem • Find a tree decomposition of low width • Decompose the problem using tree Factored Planning
Decomposition Algorithm 1. Convert into a graph problem closed(1) close(1) close(21) closed(21) closed(2) close(2) close(22) closed(22) done1 move-R done2 move-L at1 at2 Factored Planning