120 likes | 259 Views
Stratified Heuristic POCL Temporal Planning based on Planning Graphs and Constraint Programming. Ioannis Refanidis University of Macedonia, Thessaloniki, Greece. Introduction. Our context: Deadline goals Durative actions with the effects at the end of the duration Innovations:
E N D
Stratified Heuristic POCL Temporal Planning based on Planning Graphs and Constraint Programming Ioannis Refanidis University of Macedonia, Thessaloniki, Greece ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling
Introduction • Our context: • Deadline goals • Durative actions with the effects at the end of the duration • Innovations: • Simplified way to create the temporal planning graph • POCL heuristic temporal planning with disjunctive constraints • No quantization of time, no-op actions • Threats by emutex and cmutex relations • Heuristic guidance based on temporal planning graph • Completeness preserving pruning rules ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling
Temporal planning graphs • Citation: • Smith, D., and Weld., D. 1999. Temporal planning with mutual exclusion reasoning. Proc. of the 16th Intern. Joint Conf. on Artificial Intelligence, 326,333. • Planning graph nodes: Actions and Propositions • action(A,T) • prop(P,T) • Relations: • emutex(N1,N2) • cmutex(N1,N2,T) • Events: • new_prop(P,T) • end_cmutex(P,Q,T) ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling
Main loop add_effects new_emutex_relations cmutex_action_prop1 cmutex_action_prop2 cmutex_actions update_cmutex_action_prop cmutex_props stop_cmutex_props update_cmutex_props update_cmutex_actions Algorithm outline ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling
Efficient planning graph construction • Computing cmutex between actions: The most costly part of the temporal planning graph construction. • Idea: Do not compute cmutex between actions during planning graph construction. • Omit calls to cmutex_actions and update_cmutex_actions. • Choices: • Compute them once only, after the temporal planning graph construction. • Compute them on demand, during the POCL planning phase. • Depending on the problem, significant savings in overall planning time. ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling
Plan extraction as a CS problem • Temporal constraint variables for: • Open goals, G,T • Actions in the plan, A,TA • Persistence conditions, G,T1,T2 • Algorithm outline: • Call the CSP solver when Agenda is empty. • Three ways to support open goals • Initial state, current plan, new actions • Potential conflicts between persistence conditions (existing and new) and actions (existing and new). ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling
Conflict resolution • Threats are detected based on emutex and cmutex relations. • Suppose two conflicting persistence conditions: • G1,T11,T12 • G2,T21,T22 • Let T be the time where the mutex relations ends. • Two cases for T: • T=inf • T11≥T22 or T21≥T12 • T<inf • T11≥T22 or T21≥T12 or T11≥T or T21≥T ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling
Heuristic POCL Temporal Planning • Adapted by: • Younes, L.S.H., and Simmons, R.G. 2003. VHPOP: Versatile Heuristic Partial Order Planner. Journal of Artificial Intelligence Research, 20, 405-430. • For each set of open goals: • We do not consider duplicate goals. • We do not consider goals that can potentially be supported by actions already inserted in the plan. • From the remaining goals, we sum the maximum of the heuristic values for each "cluster" of goals that are emutexed or cmutexed until the infinite to each other. • In the above sum, we add the number of the goals (tie breaking mechanism). • Subgoal selection: Most costly first. • Tie breaking: Select the newest plans. ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling
switch on goal switch off initial on off off off on off dirty clean clean on dirty clean Repeated subgoal pruning • Def. 1: A primitivesubgoal chain PCHAIN(Gn) is an ordered list of subgoals Gn, Gn-1, …G0, where each subgoal Gi has been inserted in Agenda as a precondition of action Ai, where action Ai was initially inserted in the plan to support subgoal Gi-1. Subgoal G0 is an original goal of the problem instance. • Repeated subgoal pruning rule: A new action A with GEff(A), cannot be inserted in a plan to support a specific subgoal G, if there is any proposition PPrecs(A) such that PPCHAIN(G). ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling
Deleted supports • Suppose two actions in a plan, A and B, such that: • PPrec(A), PPrec(B) • A and B are supported by the same proposition instance P. • Then: • If neither A nor B deletes P, no constraint is posted. • If A deletes P but B preserves it, A is demoted after B. • If B deletes P but A preserves it, B is demoted after A. • If both A and B delete P, the plan is discarded. • The use of disjunctive constraints renders this inconsistency undetectable, so it must be checked explicitly. ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling
Preliminary results • Preliminary implementation in ECLiPSe 5.8. • Time limit 300 secs. • Occasionally solve problems by the Airport and Pipesworld domains. ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling
Future work • Partially instantiated actions. • Stronger propagation rules for disjunctive constraints. • e.g. A#>B, A#<B or A#>C ⊨ A#>C • Expreriments/results in other domains. ICAPS-2005 Workshop on Constraint Programming for Planning and Scheduling