Giter Club home page Giter Club logo

genfond's Introduction

Generalized FOND Planning

Installation

There are two option to run genfond, in a local virtual env or in a container.

Installing in a virtualenv

You can install all dependencies in a virtualenv managed by pipenv:

  1. Install pipenv:
    pip install --user pipenv
    
  2. Install dependencies:
    pipenv install
    
  3. Activate a virtualenv shell (you will need to redo this every time you open a new terminal):
    pipenv shell
    

You can then run all the scripts with the virtualenv python, e.g.:

python genfond.py -h

Building a Container Image

Alternatively, you can build a container image with docker or podman:

docker build -t genfond .

You can then use a container to run all the scripts, e.g.:

docker run --rm -ti genfond python genfond.py -h

Learning Policies

In the following, we assume you are using a local virtualenv, but all commands work similarly by prefixing docker run --rm -ti genfond, as shown above.

To learn a policy for a domain, run the following, e.g., for acrobatics:

python genfond.py domains/non-deterministic/acrobatics/{domain.pddl,p*.pddl}

There are multiple options, e.g., you can use the transition-based variant by specifing --constraints trans. See python genfond.py -h for a full list of options.

One-shot solver

The solver implemented in genfond.py iteratively solves the given problems by incrementally adding problems to the training set and by iteratively increasing the maximal feature complexity. If you instead want to run the solver once for a given feature complexity on a set of problems, you can use the oneshot solver implemented in genfond_oneshot.py, e.g.,:

python genfond_oneshot.py --complexity 6 --max-cost 10 domains/non-deterministic/acrobatics/{domain.pddl,p0002*}

Executing a policy

After learning a policy and writing it to a file (by writing a policy file with --output <policyfile>, both for genfond.py and genfond_oneshot.py), you can execute the policy with execute_policy.py, e.g.,:

python execute_policy.py domains/non-deterministic/acrobatics/{domain.pddl,p0005.pddl} acrobatics.policy

Copyright

All rights reserved by the authors.

Upon publication, this project will be made publicly available and licensed under an open-source license.

genfond's People

Contributors

morxa avatar

Stargazers

Omar Adalat avatar

Watchers

 avatar

Forkers

timisorean

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.