Upload
alonzo-parish
View
218
Download
0
Embed Size (px)
Citation preview
Hierarchical Task Network Hierarchical Task Network (HTN) Planning(HTN) Planning
Hierarchical Task Network Hierarchical Task Network (HTN) Planning(HTN) Planning
Hai HoangHai Hoang4/17/20074/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– 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)
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
Decomposition
Non-primitive task
precond
method instance
s0 precond effects precond effectss1 s2
primitive taskprimitive task
operator instance operator instance
Non-primitive task
Shows the order plan will be executed later
Tasks vs Control Rules
• We saw control rules – actions NOT to consider
• HTN – actions and tasks to consider
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
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))
)
Only pick up if x is on top
Domain
• Domain dependent – Bridge Baron game
• Domain independent – SHOP
D1 D2 D3
P1 P2 P3
D1 D2 D3
P
Domain
Planner
Planning procedures
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.
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 task1. Non-primitive (compound) – decomposed into
subtasks.
2. Primitive – cannot be decomposed, know how to perform directly (task name is the operator name).
• (!drive-truck ?truck ?loc-from ?loc-to)
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)
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)
Non prim
preconditions
Subtasks list
prim task
preconditions
delete list
Add list
Primitive task
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!!!
STN and HTN• STN – Simple Task Network (simplified version of HTN)
1. TFD – Total-order Forward Decomposition (used in SHOP)1. Example later
Input: tasks are totally orderedOutput: totally ordered plan
2. PFD – Partial-order Forward Decomposition (SHOP2)1. Example later
Input: tasks are partially orderedOutput: totally ordered plan
• HTN – generalization of STN1. More freedom about how to construct the task networks.2. Can use other decomposition procedures not just forward-
decomposition.3. Like Partial-order planning combined with STN Input: partial-order tasks Output: The resulting plan is partially ordered
Task Network• STN
w = (U, E) - an acyclic graph
U – set of task nodes
E – set of edges
• HTNw = (U, C)
U – set of task nodes
C – set of constraints (allow for generic task networks). Different planning procedures.
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,…,xn are 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 sequence
of tasks t1, …, tk
do-nothing(p,q)task: move-stack(p,q)precond: top(pallet,p)subtasks: ()
Pseudo-code for TFD
Applying an operatorChanging the state
Decompose method into tasks
Randomly pick an applicable method
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)
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.
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)
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)
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.
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 problemjava 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
For reference:
• JSHOP manual in the jshop directory
• http://www.cs.umd.edu/~nau/papers/shop-ijcai99.pdf
• Contact me [email protected]