Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/guicho271828/arrival
Yet Another Classical planning plan validator written in modern Common Lisp
https://github.com/guicho271828/arrival
Last synced: 29 days ago
JSON representation
Yet Another Classical planning plan validator written in modern Common Lisp
- Host: GitHub
- URL: https://github.com/guicho271828/arrival
- Owner: guicho271828
- Created: 2019-03-19T02:11:55.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-11-09T15:46:55.000Z (about 3 years ago)
- Last Synced: 2024-10-15T14:11:01.661Z (3 months ago)
- Language: Common Lisp
- Homepage:
- Size: 229 KB
- Stars: 11
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
* 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 ~5minStep 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 , and others.* :
Alexandria is a collection of portable public domain utilities.
+ iterate by ** :
Jonathan Amsterdam's iterator/gatherer/accumulator facility** Author
Masataro Asai ([email protected])
** Copyright
Copyright (c) 2019 Masataro Asai ([email protected])
* License
Licensed under the LLGPL License.
[[arrival.svg]]