LAPKT aims to make your life easier if your purpose is to create, use or extend basic to advanced Automated Planners. It's an open-source Toolkit written in C++ and Python with simple interfaces that give you complete flexibility by decoupling parsers from problem representations and algorithms. It has been succesfully used in embedded systems, webservices, compilations, replanning and contains some of the high-performance planners from the last International Planning Competition 2014.
Approximate Novelty Search in which we iteratively run approximate BFWS(f5) with novelty based pruning, sequentially increasing the number of novelty categories W at each iteration.
Singh, Anubhav, Nir Lipovetzky, Miquel Ramirez, and Javier Segovia-Aguas.
"Approximate novelty search." ICAPS, vol. 31, pp. 349-357. 2021.
Approximate Novelty Search uses Fast-Downward for grounding of first-order representations
Agile 1 Apptainer configuration
apptainer build ApxNovelty.sif Apptainer.ApxNovelty
Grounding Schematic Representation with GRINGO for Width-based Search leverages Tarski
Agile 2 Apptainer configuration
apptainer build ApxNoveltyTarski.sif Apptainer.ApxNoveltyTarski
Satisficing Apptainer configuration
apptainer build ApxNoveltyAnytime.sif Apptainer.ApxNoveltyAnytime
- Anubhav Singh anubhav.singh.er@protonmail.com
- Miquel Ramirez miquel.ramirez@gmail.com
- Nir Lipovetzky nirlipo@gmail.com
- Javier Segovia-Aguas javier.segovia@upf.edu
- Overview of toolkit components
- Getting started with Pypi
- Building LAPKT
LAPKT separates search engines from the data structures used to represent planning tasks. This second component receives the name of 'interface' since it is indeed the interface that provides the search model to be solved.
Search engine components are meant to be modular, allowing users of LAPKT to assemble and combine features of different search engines to come up with customized search strategies, within reason and without sacrificing (much) efficiency. In order to do so, LAPKT makes heavy use of C++ templates and the Static Strategy design pattern. At the time of writing this, the modularity and decoupling of components isn't as high as I would like, there's still a lot of work to do :)
LAPKT is bound to change rapidly and dramatically over the next months, so please keep this in mind when using this library.
-
Install package
python3 -m pip install lapkt -
Checkout lapkt options
lapkt_cmd.py -h
The python script can be found here
Platform agnostic
- The directory where the
pipcommand installs the scripts, includinglapkt_cmd.py, is generally on the systemPATH, if not, it needs to be added manually. - Python version [
3.7,3.7,3.8,3.9,3.10] are supported
@Windows
clingo/gringopython package requiresMSVCP140.dllwhich comes with visual studio redistributable. latest vc-redist- To be able to run
lapkt_run.pyscript directly from command line, change the default handler for ".py" files to `Python'.
cmake is the primary tool used to build the LAPKT's C++(backend) source code. We also use it to generate Python/C++ library package which is ready to go as a pypi package.
