schererl / Pytrich

1 stars 0 forks source link

Pytrich Icon Pytrich HTN Planner

Overview

Pytrich is a progressive search planner for total-order problems in Hierarchical Task Network (HTN).

Prerequisites

To run the planner, ensure the following dependencies are installed and compiled:

After compiling these, move them to pandaBuilds directory before executing the planner.

If you use Ubuntu 22.04 probably the compiled panda files in the project will serve and you won't need to build them again

Pytrich was only tested in Ubuntu if you have any problem to run in a different distro or SO, contact us, or contribute to our project.

Execution Instructions

  1. Initialize and Update Submodules

    git submodule init
    cd htn-benchmarks
    git submodule update
  2. Run the Planner

    python __main__.py htn-benchmarks/Blocksworld-GTOHP/domain.hddl htn-benchmarks/Blocksworld-GTOHP/p01.hddl 

User Guidance

Command-Line Arguments

The script __main__.py supports the following arguments:

Ongoing Research

Several new components of this planner are currently under research. Key projects include:

  1. AND/OR Landmark Generation: We are developing what we call Bidirectional Landmarks using a new AND/OR encoding for HTN planning.
  2. TO Landmark Generation: Exploration of Total-Order landmark computation to capture ordering constraints.
  3. TO Grounding: Pruning unreachable regions in Decomposition Space through Total-Order analysis.
  4. Landmark Ordering: Investigating landmark ordering to inform search, inspired by LAMA.
  5. IP Heuristics: Enhancing Integer Programming (IP) heuristics with landmarks for solving HTN planning problems.
  6. Novelty: Novelty for HTN planning.

Development Roadmap

Parser/Grounder

Search Improvements

Heuristic Development