All Projects → pellierd → Pddl4j

pellierd / Pddl4j

Licence: lgpl-3.0
PDDL4J is an open source library under LGPL license whose purpose of PDDL4J is to facilitate the development of JAVA tools for Automated Planning based on PDDL language (Planning Domain Description Language).

Programming Languages

java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Pddl4j

windows-lab
Windows Automated Lab with Vagrant
Stars: ✭ 78 (-23.53%)
Mutual labels:  automated
Slimmable networks
Slimmable Networks, AutoSlim, and Beyond, ICLR 2019, and ICCV 2019
Stars: ✭ 708 (+594.12%)
Mutual labels:  automated
Automating Aws With Python
automating AWS with Python using boto3 library
Stars: ✭ 41 (-59.8%)
Mutual labels:  automated
oanda-bot-python
oanda-bot is a python library for automated trading bot with oanda rest api on Python 3.6 and above.
Stars: ✭ 20 (-80.39%)
Mutual labels:  automated
Goohak
Automatically Launch Google Hacking Queries Against A Target Domain
Stars: ✭ 432 (+323.53%)
Mutual labels:  automated
Alfa
Automated Line Fitting Algorithm
Stars: ✭ 6 (-94.12%)
Mutual labels:  automated
denoflow
Configuration as Code, use YAML to write automated workflows that run on Deno, with any Deno modules, Typescript/Javascript codes
Stars: ✭ 143 (+40.2%)
Mutual labels:  automated
Unfollow Plus
Automated Instagram Unfollower Bot
Stars: ✭ 79 (-22.55%)
Mutual labels:  automated
Reconspider
🔎 Most Advanced Open Source Intelligence (OSINT) Framework for scanning IP Address, Emails, Websites, Organizations.
Stars: ✭ 621 (+508.82%)
Mutual labels:  automated
Rems For Organisations
Resources and Event Management System for small organisations and clubs. Mailers, Certificate Generation and much more 🎓🔗
Stars: ✭ 41 (-59.8%)
Mutual labels:  automated
Streamsheets
An open-source tool for processing stream data using a spreadsheet-like interface.
Stars: ✭ 281 (+175.49%)
Mutual labels:  automated
Nupdate
A comfortable update solution for .NET-applications.
Stars: ✭ 394 (+286.27%)
Mutual labels:  automated
Blackwidow
A Python based web application scanner to gather OSINT and fuzz for OWASP vulnerabilities on a target website.
Stars: ✭ 887 (+769.61%)
Mutual labels:  automated
mtproxy autoinstaller
MTProxy autoinstaller for Ubuntu
Stars: ✭ 25 (-75.49%)
Mutual labels:  automated
Meme Generator
MemeGen is a web application where the user gives an image as input and our tool generates a meme at one click for the user.
Stars: ✭ 57 (-44.12%)
Mutual labels:  automated
make-windows-vm
Automatically create Windows Virtual Machines in Linux KVM
Stars: ✭ 16 (-84.31%)
Mutual labels:  automated
Demo Magic
A handy shell script that enables you to write repeatable demos in a bash environment.
Stars: ✭ 770 (+654.9%)
Mutual labels:  automated
Mrspicky
MrsPicky - An IDAPython decompiler script that helps auditing calls to the memcpy() and memmove() functions.
Stars: ✭ 86 (-15.69%)
Mutual labels:  automated
Unvault
📦 A minimal layer for node that allows results of time-consuming tasks to be stored.
Stars: ✭ 63 (-38.24%)
Mutual labels:  automated
Chip Alpine
💻 Daily build of Alpine Linux for the $9 C.H.I.P. computer
Stars: ✭ 21 (-79.41%)
Mutual labels:  automated

PDDL4J library

DOI

1. Contact

2. Description

PDDL4J is an open source library under LGPL license.

The purpose of PDDL4J is to facilitate the development of JAVA tools for Automated Planning based on PDDL language (Planning Domain Description Language). Automated planning and scheduling, in the relevant literature often denoted as simply planning, is a branch of artificial intelligence that concerns the realization of strategies or action sequences, typically for execution by intelligent agents, autonomous robots and unmanned vehicles.

PDDL was originally developed by Drew McDermott and the 1998 planning competition committee. It was inspired by the need to encourage the empirical comparison of planning systems and the exchange of planning benchmarks within the community. Its development improved the communication of research results and triggered an explosion in performance, expressivity and robustness of planning systems.

PDDL has become a de facto standard language for describing planning domains, not only for the competition but more widely, as it offers an opportunity to carry out empirical evaluation of planning systems on a growing collection of generally adopted standard benchmark domains. The emergence of a language standard will have an impact on the entire field, influencing what is seen as central and what peripheral in the development of planning systems.

The library contains:

  • A PDDL 3.1 parser and all the classes need to manipulate its concepts. The parser can be configured to accept only specified requirements of PDDL language.
  • A set of useful pre-processing mechanisms in order to instantiate and simply operators into ground actions based on inertia properties.
  • A set of already implemented classical heuristics, e.g., h_ff, h_max, etc.
  • Several examples of planners using PDDL4J.

3. How to use the PDDL4J library?

The pddl4j library is package with "gradle". If ant is not installed on your computer, go to https://gradle.org/ and install it.

Dependency

Java JDK 8 must be installed on the computer that will run PDDL4J:

On Windows

Go to Oracle website and download the JDk corresponding to your computer architecture (x64 or x86): Java.

After the installation, you have to add java to your Windows PATH.

On Linux (Debian / Ubuntu)

sudo apt-get install openjdk-8-jdk

3.1 How to build PDDL4J?

Type at the root of the PDDL4J distribution:

./gradlew build

if you want to build the project with findbug:

./gradlew build -Pfindbug

The jar "pddl4j-VERSION.jar" is available in the build/libs directory.

3.3 How to use binary distribution?

The pddl4j library can be used as a jar file called "pddl4j-VERSION.jar" in the "libs" directory of the release. Therefore, include the jar in our classpath and enjoy it.

3.4 How to access the documentation?

All the documentations are contained in the doc directory.

To generate the javadoc just type:

./gradlew javadoc

3.5 How to run existing planner?

Planners are available in the "planners" package of the distribution. For instance, this archive contains a simple planner based on A* search strategy called HSP. To launch this planner use the following command line:

java -javaagent:build/libs/pddl4j-3.8.3.jar -server -Xms2048m -Xmx2048m fr.uga.pddl4j.planners.statespace.StateSpacePlannerFactory -o pddl/blocksworld/domain.pddl -f pddl/blocksworld/p15.pddl

java -jar build/libs/pddl4j-3.8.3.jar -o pddl/blocksworld/domain.pddl -f pddl/blocksworld/p15.pddl

Or use the gradle run command:

gradle run -PArgs=-o,pddl/blocksworld/domain.pddl,-f,pddl/blocksworld/p15.pddl

Note: A set of planning problems is available in the web site of the international planning competition: http://ipc.icaps-conference.org.

4. How to cite

PDDL4J: a planning domain description library for java https://doi.org/10.1080/0952813X.2017.1409278

D. Pellier & H. Fiorino (2017) PDDL4J: a planning domain description library for java, Journal of Experimental & Theoretical Artificial Intelligence, 30:1, 143-176, DOI: 10.1080/0952813X.2017.1409278

5. Changelog

PDDL4J v3.8.2

Search strategy

  • Improve structure: add StateSpaceStrategyAnytime interface

Planner

  • Improve structure: add StateSpacePlannerAnytime interface

PDDL4J v3.8.2

Search strategy

  • Fix issue with anytime solution
  • Fix issue with SolutionListener

JUnit

  • Fix issue on Windows

PDDL4J v3.8.1

Parser

  • Add HTN features in Lexer

Search strategy

  • Fix AStar

PDDL4J v3.8

Global

  • Add ACTION-COST support in PDDL4J (parser, encoder, solver)

Planner

  • Add FF Anytime planner
  • Add Hill Climbing Anytime planner
  • Add Generic Anytime planner

Heuristic

  • Add MIN_COST heuristic

Search Strategy

  • Add Anytime Search Strategies

Others

  • Bug fix
  • Add JUnit tests

PDDL4J v3.7.3

Global

  • Add SolutionEvent and SolutionListener (for StateSpaceStrategy)

Parser

  • Fix End Of File bug in Lexer

Planner

  • Fix bugs for GenericPlanner

PDDL4J v3.7.2

State space strategy

  • Add Generic planner structure

Parser

  • Fix parser bug

Global

  • Add BNF

PDDL4J v3.7.1

State space strategy

  • Add Breadth First Search and Depth First Search
  • Add associated JUnit tests

Global

  • Add CLI script to launch PDDL4J
  • Patch PDDL4J for Java 10

PDDL4J v3.7.0

Update project tools

  • log4j 2.11
  • Checkstyle 8.9
  • SonarQube 2.6.1
  • Javacc 2.4
  • Gradle wrapper 4.8
  • Add Jenkinsfile script for CI

Planner

  • New package: Statespace with HSP and FF planners
  • Add StateSpacePlanner and StateSpacePlannerFactory interfaces
  • Use StateSpacePlannerFactory to create state space planners

State space strategy

  • Search strategies are now independant from planners: Add StateSpaceStrategy interface
  • A*, Greedy Best First Search, Enforced Hill Climbing and Hill Climbing are available
  • Add JUnit tests

Global

  • Add tests
  • Fix bugs and javadoc
  • Memory Agent: PDDL4J could work even if JVM command line is not given
  • Big work on JUnit tests and VAL

PDDL4J v3.6.0

Planner

  • Adding Fast Forward planner
  • Adding Enforced Hill Climbing planner
  • Adding depth attibute in Node class
  • Converting cost and heuristic in double
  • Fix bugs

Parser

  • Adding parseFromString method (it's is now possible to parse a string containing a pddl domain and/or problem)
  • Refactor Parser class and fix bugs

JUnit tests

  • Adding tests for all the planners, CodedProblem, Encoder, Parser, Plan, etc.
  • Refactor and fix bugs

Global

  • Change AdaptatorJavaJson to JsonAdapter
  • Fix logger and standard outputs
  • Throws uncatched exceptions
  • Fix bugs
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].