4. Introduction
Simple Hierarchical Ordered Planner 2 (SHOP 2) :
● Based on Hierarchical Task Network (HTN)
● Implemented in LISP
● Developed by D.Nau, T.Au, O.Ilghami, U.Kuter, D.Wu,
and F.Yaman, H. Muñoz-Avila, J.W. Murdock in 2001;
● Award-winning at International Planning Competition
(2002) for its performance
5. Introduction (2)
● Steps of a plan have the same order as their execution
(like SHOP).
>> this speed up reasoning process
● SHOP 2 characteristics go further :
○ task and subtask can be partially ordered;
○ many PDDL features included (e.g. quantifiers,
conditional effects)
○ possibilities to satisfy a method's precondition are
sorted according to specifications provided by the
programmer
○ others
7. Hierarchical Task Networks
(HTNs)
● Produces actions to reach a (complex) task.
● Task can be decomposed in subtasks, primitive or
complex
● Method : how a complex task can be decomposed
● Planner decomposes complex tasks until a primitive one
is found
9. Hierarchical Task Networks
(HTNs) - (3)
Planner :
● Choose a method for decompose a complex task into
subtasks
● Repeat until a plan is found or we came out with an
infeasible plan
● In the latter case, backtrack and try other implementing
methods.
13. Features - Basic Elements
Specify a domain description that consists of a set of
methods, operators and axioms.
>Syntactical Note
A variable is preceded by "?" symbol.
A comment is preceded by ";".
● Tasks
Action to be done. They can be either primitive or
complex.
(s t1 t2 ... tn)
A primitive task is preceded by "!" symbol.
● Operators
Indicates how a primitive task can be executed.
(:operator h P D A [c])
14. Features - Basic Elements - (2)
● Methods
How to decompose a complex task.
(:method h [n1] C1 T1 [n2] C2 T2 ... [nk] Ck
Tk)
● Axioms
Used to infer precondition that are not explicitly
asserted in our current state (e.g. including quantifiers,
implications etc).
(:- a [name1] E1 ... [namen] En)
(:- head tail)
Which means that head is true if tail is true (Horn
clauses).
15. Features - Basic Elements 6
● External Function Call
Result is returned by a procedure, e.g
numeric evaluation.
( call f t1 t2 ... tn )
where f is a function symbol
16. Features - Additional
● Sorting variable bindings
● Branch and Bound Optimization
● PDDL Operator Translation
● Protected Condition and Anti-Interleaving
● Debugging Facilities
18. SHOP 2 Algorithm
if t is primitive, use an instance a of an
operator that matches t and has satisfied
precondition in s. Apply a.
if t is complex, find a method that can be
applied to t and decompose it.
20. Using SHOP 2
● SHOP 2 requires lisp
● JSHOP also available, based on Java
Create a program in SHOP 2
1. Define a domain
2. Define one (or more) problems
3. run!
24. Application - Video Games (2)
● The use of HTNs in video games arise in
the last years.
25. Application - Video Game (3)
● An example : Killzone 2 (Guerrilla Games, PS3 2009)
● First Person Shooter (FPS)
● Planner based on SHOP syntax
● Killzone AI structure : goal driven
● Behavior associated with the selected goal
26. Application - Video Games (4)
● Killzone 2 AI : HTN-based
● High-level rules -> what to do
● Low-level rules -> how to do selected task(s)
● More flexibility
● HTN also control squads
27. Application - Video Games (5)
example
(:method (select_weapon_and_attack_as_turret ?inp_threat)
(branch_use_bullets // Only use bullets against humanoids and turrets.
(and
(or (threat ?inp_threat humanoid) (threat ?inp_threat turret) )
(distance_to_threat ?inp_threat ?threat_distance)
(call lt ?threat_distance @weapon_bullet_max_range) )
((attack_as_turret_using_weapon_pref ?inp_threat wp_bullets))
)
( branch_use_rockets // Don't use rockets against humanoids and turrets.
(and
(not (threat ?inp_threat humanoid)) (not (threat ?inp_threat
turret))
(distance_to_threat ?inp_threat ?threat_distance)
(call lt ?threat_distance @weapon_rocket_max_range) )
((attack_as_turret_using_weapon_pref ?inp_threat wp_rockets))
)
)
28. Application - Video Games (6)
some numbers
Individual bot domain
● 360 methods
● 1048 branches
● 138 behaviors
● 147 continue branches
During multiplayer game (14 bots / max. 10 turrets / max. 6
drones / squads)
● Approx. 500 plans generated per second
● Approx. 8000 decompositions per second
● Avg. 15 decompositions per planning.
● Approx 24000 branch evaluations per second.
29. Application - Evacuation
● US Naval Research Laboratory’s Hierarchical
Interactive Case-Based Architecture for Planning
(HICAP) helps human planners to build evacuation
plans.
● Generative and case-specific planning. SHOP provides
the generative component.
● Interactive plan modification : human expert can modify
tasks and plans interactively.
30. Application - evaluating terrorist
threats
● Naval Research Laboratory’s Analogical
Hypothesis Elaboration for Activity
Detection (AHEAD) helps to understand
and evaluate terrorists threats.
● A HTN domain encode hostile activities.
● AHEAD takes a hypothesis as input and
returns a model of the hostile activity.
31. Application - evaluating terrorist
threats
● SHOP 2 produces a plan compatible with
hypothesis.
● SHOP 2 queries an external evidence
database to make some tests
32. Application - automated
composition of web services
● Web service : a part of web that offer
functionality
● The OWL-S (Web Ontology Language for
Services) is a language for semantic markup
of Web services
● It describes services as complex or atomic
processes with preconditions and effects.
● University of Maryland has developed an
algorithm to translate OWL-S process-
models to SHOP 2 methods and operators.
33. Application - automated
composition of web services (2)
● Goal : compose web services
● User can compose them by using SHOP
2
● Result : HTN plan that corresponds to the
composite process.
34. Application - others
● Fighting forest fires
● Material selection for manifacturing
● Project Planning
etc
Check this paper out SHOP & SHOP 2
applications
35. ● Introduction
● Hierarchical Task Networks
● Features
● SHOP 2 Algorithm
● Using SHOP 2
● Applications
○ Video games
○ Evacuation
○ Location-based services
○ Automated composition of web services
○ ...more.
● References
Overview
36. References
● SHOP 2 : An HTN Planning System - (D.
Nau et al, 2003)
● A hierarchically-layered multiplayer bot
system for a first-person shooter (Tim
Verweij, 2007)
● Killzone 2 Multiplayer Bots - ( Alex
Champandard, Tim Verweij, Remco
Straatman, 2009)
● Application of SHOP and SHOP 2 - (D.Nau
et al, 2005)
● Documentation for SHOP 2