Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
* ArriVAL - Yet Another Classical planning plan validator written in *modern* Common Lisp 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 [[https://github.com/patrikhaslum/INVAL][INVAL]] validator. Unlike [[https://github.com/patrikhaslum/INVAL][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. ** Installation Step 1. Install Roswell (https://roswell.github.io/) (modern lisp equivalent of pyenv) On Mac + homebrew or Linux + [[https://docs.brew.sh/Homebrew-on-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 #+begin_src $ ~/.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 #+end_src ** Usage : 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. ** Dependencies 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 ** Author Masataro Asai (guicho2.71828@gmail.com) ** Copyright Copyright (c) 2019 Masataro Asai (guicho2.71828@gmail.com) * License Licensed under the LLGPL License. [[arrival.svg]]