1 / 30

Hierarchical Task Network (HTN) Planning

Hierarchical Task Network (HTN) Planning. Hai Hoang 4/17/2007. Reminder. JSHOP and JSHOP2 come with some sample domain files. You CANNOT use those files. Need to write your own. HTN vs Classical. Like classical planning: Each state of the world is represented by a set of atoms

abra-weaver
Download Presentation

Hierarchical Task Network (HTN) Planning

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hierarchical Task Network (HTN) Planning Hai Hoang 4/17/2007

  2. Reminder • JSHOP and JSHOP2 come with some sample domain files. • You CANNOT use those files. • Need to write your own.

  3. HTN vs Classical • Like classical planning: • Each state of the world is represented by a set of atoms • Each action corresponds to a deterministic state transition • (block b1) (block b2) (block b3) (block b4) (on-table b1) (on b2 b1) (clear b2) (on-table b3) (on b4 b3) (clear b4)

  4. HTN vs Classical • Differs: • Objective: to perform a set of tasks not a set of goals • Terms, literals, operators, actions, plans have same meaning as classical planning. • Added tasks, methods, task networks • Tasks decompose into subtasks • Constraints • Backtrack if necessary

  5. Shows the order plan will be executed later Decomposition Non-primitive task method instance precond Non-primitive task primitive task primitive task operator instance operator instance precond effects precond effects s0 s1 s2

  6. Tasks vs Control Rules • We saw control rules – actions NOT to consider • HTN – actions and tasks to consider

  7. Control Rules • Classical planning efficiency suffers from combinatorial complexity (intractable) • Prune function detects and cuts unpromising nodes • Can improve solving: exponential to polynomial • Φ1(c,d,p) = [GOAL(in(c,p))  q GOAL(in(c,q))]  [GOAL(on(c,d)  e GOAL(on(c,e))] • No goal requiring c in another pile or on top of something else (prune if exist?) • Holds if acceptable when container c is on item d in pile p By: Steve Lee-Urban

  8. Only pick up if x is on top HTN • Instead of detecting and cutting unpromising nodes • HTN methods are only applied only when the preconditions are satisfied. (:method (pick-up ?x)((clear ?x)) ((!pick-up ?x)) )

  9. D1 D2 D3 D1 D2 D3 P1 P2 P3 P Domain Planner Planning procedures Domain • Domain dependent – Bridge Baron game • Domain independent – SHOP

  10. HTN • Domain consists of • methods and operators (SHOP- axioms) • Problem consists of • domain, initial state, initial task network (tasks to accomplish, with some ordering of the tasks defined) • Solution • A plan: Totally ordered collection of primitive tasks (SHOP) • General HTN planner - partially ordered collection of primitive tasks.

  11. TASK • Task: an expression of the form t(u1,…,un) • t is a task symbol, and each ui is a term (variable, constant, function expression (f t1 t2 tn) • (move-block ?nomove) • (move-block (list ?x . ?nomove)) • Two types of task • Non-primitive (compound) – decomposed into subtasks. • Primitive – cannot be decomposed, know how to perform directly (task name is the operator name). • (!drive-truck ?truck ?loc-from ?loc-to)

  12. Methods and Operators • Defined a little differently in the textbook, but we’re more concerned with coding it in SHOP so forget the book for now (book notations later on). • Explain both with an example instead of notations. • Spent a good amount of time arranging the next slide • Help to visualize how they map to a real shop method or operator. • method as defined by SHOP (see manual) (:method h [n1] C1 T1[n2] C2 T2 … [nk] Ck Tk) • h method head – task atom with no call terms • [n1] OPTIONAL name for succeeding Ci Ti pair • C1 conjunct or tagged conjunct? Precondition list?? • T1 task list • Operator (:operator h P D A) • h head – primitive task atom with no call terms • P precondition list (logical atoms) • D delete list (logical atoms) • A add list (logical atoms)

  13. Non prim preconditions Primitive task Subtasks list preconditions prim task delete list Add list Operators and Methods • Method ( decomposes into subtasks) (:method (drive-truck ?truck ?loc-from ?loc-to) ((same ?loc-from ?loc-to)) ((!do-nothing)) () ((!drive-truck ?truck ?loc-from ?loc-to))) • Notice the if else structure • Invoke non-primitive task: (drive-truck ?t ?x ?y) • Operator (achieves PRIMITIVE TASKS) (:operator (!drive-truck ?truck ?locfrom ?locto) () ((truck-at ?truck ?locfrom)) ((truck-at ?truck ?locto))) Invoke primitive task: (!drive-truck ?t ?l1 ?l2)

  14. Review • Relationship between non-primitive tasks and methods • Decomposed by applying a method • Relationship between primitive tasks and operators • Primitive task is achieved by applying an operator • Important that you understand this!!!

  15. STN and HTN • STN – Simple Task Network (simplified version of HTN) • TFD – Total-order Forward Decomposition (used in SHOP) • Example later Input: tasks are totally ordered Output: totally ordered plan • PFD – Partial-order Forward Decomposition (SHOP2) • Example later Input: tasks are partially ordered Output: totally ordered plan • HTN – generalization of STN • More freedom about how to construct the task networks. • Can use other decomposition procedures not just forward-decomposition. • Like Partial-order planning combined with STN Input: partial-order tasks Output: The resulting plan is partially ordered

  16. Task Network • STN w = (U, E) - an acyclic graph U – set of task nodes E – set of edges • HTN w = (U, C) U – set of task nodes C – set of constraints (allow for generic task networks). Different planning procedures.

  17. STN • STN method: 4-tuple m = (name(m), task(m), precond(m), subtasks(m)) • name(m): an expression of the form n(x1,…,xn) • n – name of the method – method symbol • x1,…,xnare parameters - variable symbols • task(m): a nonprimitive task • task that this method could apply to • In SHOP, the task is the head of the method. • precond(m): preconditions (literals) • subtasks(m): a sequenceof tasks t1, …, tk do-nothing(p,q) task: move-stack(p,q) precond: top(pallet,p) subtasks: ()

  18. Pseudo-code for TFD Applying an operator Changing the state Randomly pick an applicable method Decompose method into tasks

  19. DWR • Move the containers, preserving ordering • Use loc1 as example.

  20. Total Order Tasks (SHOP- STD)

  21. Example TFD Goal: move-each-twice Move-stack(p1a, p1b) Move-stack(p1b, p1c) Stack 2 and 3 empty.

  22. Partially Ordered tasks (SHOP2 - PFD)

  23. PFD Example

  24. TFD & PFD • STN doesn’t allow parallel execution, but can interleave steps (PFD) • At the end the resulting plan is totally ordered (both TFD & PFD)

  25. SHOP & SHOP2 • SHOP: Simple Hierarchical Ordered Planner • SHOP is basically TFD STN • SHOP2 is PFD STN – mainly with the addition of the unordered keyword for the task list. Note: resulting plan is still a totally-ordered task list.

  26. Prefix Notation • Domain and problem file are in Lisp like format. • 7 + 3 • (+ 7 3) • p(a,?x) -> (p a ?x) • Any volunteer? p(f (a,b), ?y) • Answer: (p (f a b) ?y) • (call + 3 7)

  27. Axioms (Horn clauses) • (:- a C1 C2 C3 … Cn) • a is true if C1 is true, else if C1 is false and C2 is true, or else if C1 to Cn-1 is false and Cn is true. • (:- (same ?x ?x) nil) • (same 5 5) • (same 5 7)

  28. Above Example • (:- (above ?a ?b) ((on ?a ?b))) • (:- (above ?a ?b) ((on ?a ?c) (above ?c ?b))) • S0 = (on 1 2) (on 2 3) (on 3 4) • Is (above 1 4) true? • (on 1 2) (above 2 4) • (on 1 2) (on 2 3) (above 3 4) • (on 1 2) (on 2 3) (on 3 4) • When all conjuncts are true, (above 1 4) is true.

  29. JSHOP • Domain file: operators, methods, axioms • Problem file: initial state, initial task list (goals) • On Vega in /home/hah3/jshop • To run one of the sample problem java umd.cs.shop.JSJshop logistic/logistic.shp logistic/Log_ran_problems_10.shp 1 all > output.txt java –jar shop.jar logistic/logistic.shp logistic/Log_ran_problems_10.shp 1 all > output.txt java umd.cs.shop.JSJshop domainfile problemfile logLevel numofplan

  30. For reference: • JSHOP manual in the jshop directory • http://www.cs.umd.edu/~nau/papers/shop-ijcai99.pdf • Contact me hah3@lehigh.edu

More Related