Skip to content

ipc2023-classical/planner30

Repository files navigation

BuildTest

LAPKT

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.

Forward Backward Approximate Novelty Search

Integration of Approximate Novelty Search and Width-Based Backward Search in which we iteratively run the forward backward polynomial 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.

Lei, Chao, and Nir Lipovetzky. 
"Width-based backward search." ICAPS, vol. 31, pp. 219-224. 2021.

Agile Apptainer configuration

apptainer build NoveltyBD.sif  Apptainer.NoveltyBD

Satisficing Apptainer configuration

apptainer build NoveltyBDAnytime.sif  Apptainer.NoveltyBDAnytime

AUTHORS

CONTENTS

  1. Overview of toolkit components
  2. Getting started with Pypi
  3. Building LAPKT

1 - OVERVIEW

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.

2 - Pypi package(linux and windows): Jump right in!

  • Install package

      python3 -m pip install lapkt
    
  • Checkout lapkt options

      lapkt_cmd.py -h
    

The python script can be found here

Note - as of Oct 2022 pypi package for macos is work in progress

Important platform requirements:

Platform agnostic

  1. The directory where the pip command installs the scripts, including lapkt_cmd.py, is generally on the system PATH, if not, it needs to be added manually.
  2. Python version [ 3.7, 3.7, 3.8, 3.9, 3.10 ] are supported

@Windows

  1. clingo/gringo python package requires MSVCP140.dll which comes with visual studio redistributable. latest vc-redist
  2. To be able to run lapkt_run.py script directly from command line, change the default handler for ".py" files to `Python'.

3 - Introduction to LAPKT 4 Devs

Build instructions

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published