IntroductionSimple 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
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 methods precondition aresorted according to specifications provided by theprogrammer○ others
Hierarchical Task Networks(HTNs)● Produces actions to reach a (complex) task.● Task can be decomposed in subtasks, primitive orcomplex● Method : how a complex task can be decomposed● Planner decomposes complex tasks until a primitive oneis found
Hierarchical Task Networks(HTNs) - (3)Planner :● Choose a method for decompose a complex task intosubtasks● Repeat until a plan is found or we came out with aninfeasible plan● In the latter case, backtrack and try other implementingmethods.
Features - Basic ElementsSpecify a domain description that consists of a set ofmethods, operators and axioms.>Syntactical NoteA variable is preceded by "?" symbol.A comment is preceded by ";".● TasksAction to be done. They can be either primitive orcomplex.(s t1 t2 ... tn)A primitive task is preceded by "!" symbol.● OperatorsIndicates how a primitive task can be executed.(:operator h P D A [c])
Features - Basic Elements - (2)● MethodsHow to decompose a complex task.(:method h [n1] C1 T1 [n2] C2 T2 ... [nk] CkTk)● AxiomsUsed to infer precondition that are not explicitlyasserted 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 (Hornclauses).
Features - Basic Elements 6● External Function CallResult is returned by a procedure, e.gnumeric evaluation.( call f t1 t2 ... tn )where f is a function symbol
Features - Additional● Sorting variable bindings● Branch and Bound Optimization● PDDL Operator Translation● Protected Condition and Anti-Interleaving● Debugging Facilities
SHOP 2 Algorithmif t is primitive, use an instance a of anoperator that matches t and has satisfiedprecondition in s. Apply a.if t is complex, find a method that can beapplied to t and decompose it.
Application - Video Games (2)● The use of HTNs in video games arise inthe last years.
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
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
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 // Dont use rockets against humanoids and turrets.(and(not (threat ?inp_threat humanoid)) (not (threat ?inp_threatturret))(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))))
Application - Video Games (6)some numbersIndividual bot domain● 360 methods● 1048 branches● 138 behaviors● 147 continue branchesDuring multiplayer game (14 bots / max. 10 turrets / max. 6drones / squads)● Approx. 500 plans generated per second● Approx. 8000 decompositions per second● Avg. 15 decompositions per planning.● Approx 24000 branch evaluations per second.
Application - Evacuation● US Naval Research Laboratory’s HierarchicalInteractive Case-Based Architecture for Planning(HICAP) helps human planners to build evacuationplans.● Generative and case-specific planning. SHOP providesthe generative component.● Interactive plan modification : human expert can modifytasks and plans interactively.
Application - evaluating terroristthreats● Naval Research Laboratory’s AnalogicalHypothesis Elaboration for ActivityDetection (AHEAD) helps to understandand evaluate terrorists threats.● A HTN domain encode hostile activities.● AHEAD takes a hypothesis as input andreturns a model of the hostile activity.
Application - evaluating terroristthreats● SHOP 2 produces a plan compatible withhypothesis.● SHOP 2 queries an external evidencedatabase to make some tests
Application - automatedcomposition of web services● Web service : a part of web that offerfunctionality● The OWL-S (Web Ontology Language forServices) is a language for semantic markupof Web services● It describes services as complex or atomicprocesses with preconditions and effects.● University of Maryland has developed analgorithm to translate OWL-S process-models to SHOP 2 methods and operators.
Application - automatedcomposition of web services (2)● Goal : compose web services● User can compose them by using SHOP2● Result : HTN plan that corresponds to thecomposite process.
Application - others● Fighting forest fires● Material selection for manifacturing● Project PlanningetcCheck this paper out SHOP & SHOP 2applications
● Introduction● Hierarchical Task Networks● Features● SHOP 2 Algorithm● Using SHOP 2● Applications○ Video games○ Evacuation○ Location-based services○ Automated composition of web services○ ...more.● ReferencesOverview
References● SHOP 2 : An HTN Planning System - (D.Nau et al, 2003)● A hierarchically-layered multiplayer botsystem for a first-person shooter (TimVerweij, 2007)● Killzone 2 Multiplayer Bots - ( AlexChampandard, Tim Verweij, RemcoStraatman, 2009)● Application of SHOP and SHOP 2 - (D.Nauet al, 2005)● Documentation for SHOP 2
Thanks for your attentionAndrea Tucci@andreatux