This is a library separated from ALIEN classical planner code base.
ARRIVAL provides a binary arrival
that takes a PDDL problem file, a domain file and
a plan file, returns 0 when the plan is correct and returns 1 otherwise.
The implementation is intensively focused on clarity: The total LOC is just 941. This is even shorter compared to INVAL validator.
Unlike INVAL, the repository follows the modern Common Lisp repository structure, is ASDF loadable, and is written in a clean functional style with pattern matching.
ArriVAL ignores the :requirement
. The following features are supported:
detail | |
---|---|
STRIPS | and |
negative precondition | not |
disjunctive precondition | or imply |
universal precondition | forall |
existential preondition | exists |
conditional effects | when |
The forall in effects | supported |
ADL | supports forall exists when or imply |
Axioms | supported, fixpoint calculation |
types | supported except either |
equality (===) | supported |
duplicate args in actions/axioms | supported, imply equality constaints |
fluents | supported (beta) (numeric, objects, action-cost) |
e.g. assign , increase , decrease , scale-up , scale-down | |
It accepts both integers and floats. |
Arrival currently has no plan to support scheduling problems.
Step 1. Install Roswell (https://roswell.github.io/) (modern lisp equivalent of pyenv)
On Mac + homebrew or Linux + linuxbrew,
brew install roswell
On Linux (without linuxbrew),
sudo apt-get -y install git build-essential automake libcurl4-openssl-dev git clone -b release https://github.com/roswell/roswell.git cd roswell sh bootstrap ./configure --prefix=$HOME/.local make make install ~/.local/bin/ros setup # expect ~5min
Step 2. Install arrival
$ ~/.local/bin/ros install guicho271828/arrival $ ~/.roswell/bin/arrival Usage: [--notype] [-v[v[v]] | --verbose N] [-r|--relaxed] arrival domain problem planfile [trace-output] --notype : The trace output will not contain the type predicates -v | --verbose N : Specify the verbosity, from 0 to 3 -r | --relaxed : Perform the relaxed planning instead Got ARGV: NIL dynamic space size: 8388608000 lisp implementation type: SBCL lisp implementation version: 1.4.12 machine instance: masataro-ThinkPad-T460 machine type: X86-64 machine version: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz software type: Linux software version: 4.4.0-145-generic
arrival [-v|-vv|-vvv|--verbose N] DOMAINFILE PROBLEMFILE PLANFILE [TRACEFILE]
- PLANFILE
- a SEXP file containing plan traces as action signatures.
- PROBLEMFILE
- a PDDL problem file.
- DOMAINFILE
- a PDDL domain file.
- TRACEFILE
- An optional output file. Unless specified, the same information is written to the standard output.
- -v | -vv | -vvv | –verbose N
- verbosity, from level 1 to 3. Default is 0.
This library is at least tested on implementation listed below:
- SBCL 1.4.12 on X86-64 Linux 4.4.0-142-generic (author’s environment)
Also, it depends on the following libraries:
- trivia by Masataro Asai : NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase
- alexandria by Nikodemus Siivola <nikodemus@sb-studio.net>, and others. : Alexandria is a collection of portable public domain utilities.
- iterate by ** : Jonathan Amsterdam’s iterator/gatherer/accumulator facility
Masataro Asai (guicho2.71828@gmail.com)
Copyright (c) 2019 Masataro Asai (guicho2.71828@gmail.com)
Licensed under the LLGPL License.