Skip to content

Latest commit

 

History

History
32 lines (28 loc) · 1.41 KB

README.md

File metadata and controls

32 lines (28 loc) · 1.41 KB

SATPlan

Implementation of SATPlan (Planning as Satisfiability), which is a method for automated planning. It convert the instance of the Planning problem to one of Boolean satisfiability, which is then solved using the Minisat.

Given the instance of a planning problem, with a given initial state and actions, a goal and a horizon length, a formula is generated which turns out to be satisfiable if and only if there was a plan with the given horizon length . A plan can be found by testing the satisfiability of the formulas for different horizon lengths. The simplest way to do this is to use the ENHSP to calculate the best starting horizon.

Usage

Clone the repository:

git clone https://github.com/federicotomat/SATPlan.git

Install the required libraries and the Minisat solver:

cd ~/SATPlan
pip install -r requirements.txt
sudo apt-get update
sudo apt-get install minisat

Enter in the workspace folder and install the ENHSP module:

cd code/enhsp
./install

Turn in the main folder, export python path and run the code on a PDDL problem:

cd ..
export PYTHONPATH="<(folder-path)>"
python2 plan.py -domain <(path-pddl-domain)> <(path-pddl-problem)>

References

F. Leofante, E. Giunchiglia, E. Ábráham, A. Tacchella - Optimal Planning Modulo Theories