/HSP2

Primary LanguageC++

QUICK SETUP
===========

git clone https://github.com/EbTech/HSP2.git
cd HSP2
sudo apt-get install bison
sudo apt-get install flex
export HSPHOME='pwd'
make compile


Everything below this line is from the old README.
=========================================================

This is Alpha Release 2.0 of the Heuristic Search Planner.



HISTORY
=======

This release, 2.0, fusion HSP and HSPR into one single planner, 
better state representation, no more C compilation, etc.


HSP
===

HSP does Strips planning by heuristic search.
The search can proceed either forward from the
initial state towards the goal states, or backwards
from the goal states to the initial state.
The heuristic is extracted from the Strips
representation of the problem, and is plugged into 
Weighted Best-First Algorithm.
A paper describing HSP-R, and a note describing HSP can 
be found in the ./hspr/docs directory (see below).
This document describes the installation procedure,
the contents of the distribution, and the test suite.



REQUIREMENTS
============

In order to install/solve problems you will need a standard C compiler
(like gcc) and some general unix tools: make, sed, nawk, ln, etc. 
Be sure to have these commands in your path.



QUICK INSTALLATION
==================

1) unpack distribution files, for example

    $ gzip -dc hsp-2.0.tar.gz | tar -xvf -

2) set the var HSPHOME to the hsp directory, for example (using ksh)

    $ export HSPHOME=`pwd`/hsp-2.0

3) run "make compile" in $HSPHOME to compile parser and planner, 

    $ cd $HSPHOME; make compile



RUNNING SOME SAMPLES
==================== 

The sample problems are in the pddl directories. 
Here is an example for solving some of them:

1) change to the logistics problems, 

    $ cd $HSPHOME/pddl/blocks-world

2) solve the problems

    $ make solve

The results are in the file "solutions.all".



THE PLANNER
===========

In order to run now the planner you must define the environment
variable HSPHOME with the absolute path of the ./hsp directory
(e.g., in bash you can say "export HSPHOME=/home/john/hsp").
After that, you can move to any pddl directory (e.g., pddl/blocks-world)
and execute the command "make solve". This command apply the planner
to the problem set specified in the PROBLEMS file.
The plan and timing information are left in the file "solutions.all".
Edit the PROBLEMS file in order to specify different subsets of problems.

There are several flags that modify the behaviour of the planning
search algorithm:

  1) "-a" set the search algorithm to be used (1 = BFS, or 2 = GBFS),
  2) "-d" set the direction of the search (1 = FORWARD, or 2 = BACKWARD),
  3) "-h" set the heuristic to be used in the search (1 = HPLUS, or 2 = HMAX),
  4) "-w" set the weight for the heuristic (it takes a float),
  5) "-v" that sets the verbosity mode.

The default parameter set is "-a 1 -d 1 -h 1 -w 5.0 -v 1" meaning
to use a BFS algorithm in the FORWARD direction with the HPLUS
heuristics and a WEIGHT factor of 5.0. The verbosity level 1
is for printing the plan (if any).

If you want to solve the problems with one or more options you
can use the environment variable "HSPFLAGS". For example, for
a BACKWARD search using a weight of 2 and print no plan (verbosity equal to 0):

   $ export HSPFLAGS="-d 2 -w 2 -v 0"
   $ make solve


THE PDDL PARSER
===============

Different from earlier version of HSP, the parser has been 
incorporated into the planner. Thus, the preprocessing of
the files is no longer necessary.


Documentation
=============

Some documentation can be found in ./hsp/docs.


Comments and suggestions can be addressed to bonet@usb.ve and
hector@usb.ve.


Enjoy.

Blai and Hector