htn planning (hierarchical task network)

**HTN planning (Hierarchical Task Network)** is a planning approach that **decomposes high-level tasks into networks of subtasks hierarchically** — using domain-specific knowledge about how complex tasks break down into simpler ones, enabling efficient planning for complex domains by exploiting task structure and procedural knowledge. **What Is HTN Planning?** - **Hierarchical**: Tasks are organized in a hierarchy from abstract to concrete. - **Task Network**: Tasks are connected by ordering constraints and dependencies. - **Decomposition**: High-level tasks are recursively decomposed into subtasks until primitive actions are reached. - **Domain Knowledge**: Decomposition methods encode expert knowledge about how to accomplish tasks. **HTN Components** - **Primitive Tasks**: Directly executable actions (like STRIPS actions). - **Compound Tasks**: High-level tasks that must be decomposed. - **Methods**: Recipes for decomposing compound tasks into subtasks. - **Ordering Constraints**: Specify execution order of subtasks. **HTN Example: Making Dinner** ``` Compound Task: make_dinner Method 1: cook_pasta_dinner Subtasks: 1. boil_water 2. cook_pasta 3. make_sauce 4. combine_pasta_and_sauce Ordering: 1 < 2, 3 < 4, 2 < 4 Method 2: order_takeout Subtasks: 1. choose_restaurant 2. place_order 3. wait_for_delivery Ordering: 1 < 2 < 3 Planner chooses method based on context (time, ingredients available, etc.) ``` **HTN Planning Process** 1. **Start with Goal**: High-level task to accomplish. 2. **Select Method**: Choose decomposition method for current task. 3. **Decompose**: Replace task with subtasks from method. 4. **Recurse**: Repeat for each compound subtask. 5. **Primitive Actions**: When all tasks are primitive, plan is complete. 6. **Backtrack**: If decomposition fails, try alternative method. **Example: Robot Assembly Task** ``` Task: assemble_chair Method: standard_assembly Subtasks: 1. attach_legs_to_seat 2. attach_backrest_to_seat 3. tighten_all_screws Ordering: 1 < 3, 2 < 3 Task: attach_legs_to_seat Method: four_leg_attachment Subtasks: 1. attach_leg(leg1) 2. attach_leg(leg2) 3. attach_leg(leg3) 4. attach_leg(leg4) Ordering: none (can be done in any order) Task: attach_leg(L) Primitive action: screw(L, seat) ``` **HTN vs. Classical Planning** - **Classical Planning (STRIPS/PDDL)**: - **Search**: Searches through state space. - **Domain-Independent**: General search algorithms. - **Flexibility**: Can find novel solutions. - **Scalability**: May struggle with large state spaces. - **HTN Planning**: - **Decomposition**: Decomposes tasks hierarchically. - **Domain-Specific**: Uses expert knowledge in methods. - **Efficiency**: Exploits task structure for faster planning. - **Constraints**: Limited to decompositions defined in methods. **Advantages of HTN Planning** - **Efficiency**: Hierarchical decomposition reduces search space dramatically. - **Domain Knowledge**: Encodes expert knowledge about how tasks are typically accomplished. - **Natural Representation**: Matches how humans think about complex tasks. - **Scalability**: Handles complex domains that classical planning struggles with. **HTN Planning Algorithms** - **SHOP (Simple Hierarchical Ordered Planner)**: Total-order HTN planner. - **SHOP2**: Extension with more expressive methods. - **SIADEX**: HTN planner for real-world applications. - **PANDA**: Partial-order HTN planner. **Applications** - **Manufacturing**: Plan assembly sequences, production workflows. - **Military Operations**: Plan missions with hierarchical command structure. - **Game AI**: Plan NPC behaviors with complex goal hierarchies. - **Robotics**: Plan manipulation tasks with subtask structure. - **Business Process Management**: Plan workflows with task decomposition. **Example: Military Mission Planning** ``` Task: conduct_reconnaissance_mission Method: aerial_reconnaissance Subtasks: 1. prepare_aircraft 2. fly_to_target_area 3. perform_surveillance 4. return_to_base 5. debrief Ordering: 1 < 2 < 3 < 4 < 5 Task: prepare_aircraft Method: standard_preflight Subtasks: 1. inspect_aircraft 2. fuel_aircraft 3. load_equipment 4. brief_crew Ordering: 1 < 2, 1 < 3, 4 < (all others complete) ``` **Partial-Order HTN Planning** - **Flexibility**: Subtasks can be partially ordered — only specify necessary orderings. - **Advantage**: More flexible than total-order plans — allows parallel execution. - **Example**: attach_leg(leg1) and attach_leg(leg2) can be done in any order or in parallel. **HTN with Preconditions and Effects** - **Hybrid Approach**: Combine HTN decomposition with STRIPS-style preconditions and effects. - **Benefit**: Ensures plan feasibility while exploiting hierarchical structure. - **Example**: Check that preconditions are satisfied when selecting methods. **Challenges** - **Method Engineering**: Defining good decomposition methods requires domain expertise. - **Completeness**: HTN planning may miss solutions not captured by defined methods. - **Flexibility**: Limited to predefined decompositions — less flexible than classical planning. - **Verification**: Ensuring methods are correct and complete is challenging. **LLMs and HTN Planning** - **Method Generation**: LLMs can generate decomposition methods from natural language descriptions. - **Task Understanding**: LLMs can interpret high-level tasks and suggest decompositions. - **Method Refinement**: LLMs can refine methods based on execution feedback. **Example: LLM Generating HTN Method** ``` User: "How do I organize a conference?" LLM generates HTN method: Task: organize_conference Method: standard_conference_organization Subtasks: 1. select_venue 2. invite_speakers 3. promote_event 4. manage_registrations 5. arrange_catering 6. conduct_conference 7. follow_up Ordering: 1 < 3, 1 < 4, 2 < 6, 5 < 6, 6 < 7 ``` **Benefits** - **Efficiency**: Dramatically reduces search space through hierarchical decomposition. - **Knowledge Encoding**: Captures expert knowledge about task structure. - **Scalability**: Handles complex domains with many actions. - **Natural**: Matches human problem-solving approach. **Limitations** - **Method Dependency**: Quality depends on quality of decomposition methods. - **Less Flexible**: Cannot find solutions outside defined methods. - **Engineering Effort**: Requires significant effort to define methods. HTN planning is a **powerful approach for complex, structured domains** — it exploits hierarchical task structure and domain knowledge to achieve efficient planning, making it particularly effective for real-world applications where expert knowledge about task decomposition is available.

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account