Welcome to LAPKT!

From Lightweight Automated Planning Toolkit (LAPKT)
Revision as of 01:34, 25 May 2020 by Nirlipo (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

LAPKT stands for the Lightweight Automated Planning ToolKiT. It 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.


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.

At the moment of writing this, the following interfaces are offered:

  • ‘agnostic’: this interface does not depend on a particular planning language, so it is easy to wrap PDDL parsers, separating parsing representation of planning tasks from a representation optimized for off-line planning. This interface should also make easy to integrate STRIPS planners into applications by suitably defining planning tasks programatically.
  • ‘ff’: this interface wraps FF parsing components to obtain ‘agnostic’ looking tasks.
  • ‘fd’: this interface wraps FD parsing components to obtain ‘agnostic’ looking tasks.

Future interfaces planned are:

  • 'VAL': this interface wraps VAL parser, which supports parsing of PDDL+ features.
  • ‘SAS+’: this interface is meant to support SAS representations natively. Since there is no SAS-based planning language, this will probably be useful to integrate planners into applications that are able to define SAS planning tasks programatically.

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.


1M solver calls @ planning.domains

One of our planners, siw-then-bfs has reached over 1M calls in the remote solver handling the calls in the editor.planning.domains

More info: Twitter post

Sparkle Planning Challenge 2019

The Sparkle Planning Challenge automatically combines all participating planners into a state-of-the-art planning selector, and assesses the contribution of each participating planner to the performance of that planning selector.

Winner and Runner-up

1st: PROBE, 2nd: DUAL-BFWS

The planners that got the 1st and 2nd positions were PROBE (based on an early version of LAPKT) and DUAL-BFWS.



International Planning Competition (IPC) 2018

Results and scores overview

WINNER of the Agile Track


corresponds to BFWS planner using option

RUNNER-UP of the Satisficing Track


corresponds to BFWS planner using option

For more information about submitted BFWS planners, read this summary width-ipc-paper

IPC 2014 Agile track

Once we fixed the bug on the submission of IPC'8 (International Planning Competition 2014), we were computing h^2 but not using it, our planners BFS_f, DFS+, and SIW+ are the fastest in the AGILE track (minimize CPU time) compared to the last winner, according to our experiments.

Contact & Contributing

We welcome anybody in the planning community to contribute into LAPKT, either by just using it or by submitting code implementing stuff they feel should be in an "Automated Planning Toolkit". We only request two things from you. First, to abide to the terms and conditions of the GNU Lesser General Public License (http://www.gnu.org/copyleft/lesser.html). Second, to drop a note on us telling about what you plan to add or what you think should be changed.

You can contribute to LAPKT by submitting code or patches to admin@lapkt.org or through the github repository.

  • Forum / public mailing list: LAPKT Google Group (intended for users and non-core developers)
  • internal mailing list: LAPKT-dev Google Group (intended for internal discussions between the core developers)
  • general questions: Miquel Ramirez and Nir Lipovetzky <admin@lapkt.org>

Citing LAPKT

You can use cite LAPKT in your publications like this:

   title = {{Lightweight Automated Planning ToolKiT}},
   author = {Miquel Ramirez and Nir Lipovetzky and Christian Muise},
   howpublished = {\url{http://lapkt.org/}},
   year = {2015},
   note = {Accessed: 2020-08-11}