Coder Social home page Coder Social logo

bfws-public's Introduction

BFWS

Best First Width Search Planner

Getting Started

You first need to install LAPKT by following this instructions: http://lapkt.org/index.php?title#Download

Yoy also need to define LAPKT_PATH as an enviromnent variable. Add the following line to your .bash or .profile file or simply execute it in your terminal:

  export LAPKT_PATH = /Absolute-path-to-LAPKT-folder

BFWS can run using either FF or FD parser.

FF-parser version

The Scons script included in FF-parser-version folder knows which modules from the LAPKT toolkit it needs to recompile.

To compile type

  scons 

FD-parser version

Go to FD-parser-version folder and type to compile

  ./build.py 

Running BFWS

These are BFWS options

  ./bfws --help

Options::
  --help                                Show help message. 
  --domain arg                          Input PDDL domain description
  --problem arg                         Input PDDL problem description
  --output arg                          Output file for plan
  --max_novelty arg (=2)                Max width w for novelty (default 2)

Search Algorithms::
  --DUAL-BFWS arg (=1)                  1-BFWS first, then BFWS using h_ff and h_landcount as in AAAI-17 paper
  --DUAL-C-BFWS arg (=0)                1-C-BFWS first, then BFWS using h_ff and h_landcount
  --BFWS-f5 arg (=0)                    BFWS(w,#g), w_{#r,#g}, as in BFWS(f5) AAAI-17 paper
  --BFWS-f5-initstate-relevant arg (=0) BFWS(f5) but computing relevant fluents only once from s0
  --BFWS-f5-landmarks arg (=0)          BFWS(w,h_landcount), w = w_{#r,h_landcount} 
  --BFWS-goalcount-only arg (=0)        BFWS(w,#g), w = w_{#g}, no relevant fluents count

Polynomial Search Algorithms::
  --1-BFWS arg (=0)                     1-BFWS(w,#g), w_{#r,#g}, pruning w > 1 
  --1-C-BFWS arg (=0)                   1-BFWS using consistency to refine goal counting
  --k-BFWS arg (=0)                     k-BFWS(w,#g), w_{#r,#g}, pruning w > k, where k = bound() argument, default 2
  --k-C-BFWS arg (=0)                   k-BFWS with goal consistency count
  --k-M-BFWS arg (=0)                   Allowing (M) nodes > novelty bound() for each node with novelty <= bound()
  --k-M-C-BFWS arg (=0)                 k-M-C-BFWS with goal consistency

The command to run the FF-parser-version of BFWS, computing novelty 1,2, and greater than 2, and pruning nodes with novelty greater than 2

  ./bfws --domain domain.pddl --problem prob.pddl --max_novelty 2 --k-BFWS true

to use FD-parser version, go to the correct folder and run the same options with the following command

  ./bfws.py domain.pddl prob.pddl k-BFWS

FD-version uses the same options but do not uses tags. To change the default max_novelty 2 and M values, edit bfws.py file

Credits

This project is a joint work by Nir Lipovetzky, and Hector Geffner.

Paper

You can read more about it in the AAAI 2017 paper and ICAPS 2017 paper

bfws-public's People

Contributors

nirlipo avatar

Watchers

 avatar

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.