image
Emmanuel Hermellin
PDDL4J
Emmanuel Hermellin


PDDL4J : Planning Domain Description Language for Java

Librairie logicielle de planification automatique

Présentation de la librairie

PDDL4J est une librairie open-source (sous licence LGPL) écrite en Java dont l'objectif est de (1) proposer un outil complet intégrant de nombreux planificateurs basés sur le langage PDDL (Planning Domain Description Language) et (2) faciliter le développement de nouveaux outils et logiciels Java dédiés à la planification automatique.

La planification automatique est une branche de l'intelligence artificielle qui se focalise sur la réalisation de stratégies ou de séquences d'action dans le but de résoudre un problème donné, généralement pour l'exécution d'agents intelligents, de robots autonomes ou de véhicules autonomes. La librairie PDDL4J intègre donc des algorithmes innovants pour résoudre des problèmes de planification, i.e. d’organisation dans le temps de tâches à accomplir pour résoudre un problème donné. La caractéristique principale de la planification est sa dimension temporelle. Souvent ébauchée par une liste des choses à faire, elle se concrétise ensuite par un plan répondant de façon détaillée et concrète aux principaux aspects opérationnels du type : qui, quoi, , quand, comment, combien.
La librairie PDDL4J fournit :

  • Un parser pour le langage PDDL (en version 3.1) ainsi qu'un ensemble de classes et méthodes permettant de manipuler tous les concepts relatifs à ce langage.

  • Un ensemble de mécanismes permettant d'instancier et simplifier des opérateurs en actions basées sur les propriétés d'inertie.

  • Un ensemble d'heuristiques.

  • Des nombreux exemples de problèmes de planification pouvant être résolu grâce à PDDL4J.

Références

M. Ghallab, D. Nau and P. Traverso, “Automated Planning”, Morgan-Kaufman, 2004.
S. Russell and P. Norvig, "Artificial Intelligence: A Modern Approach", chapter XI“, Prentice Hall, 2002.
S. LaValle, Planning Algorithms, Cambridge University Press, 2006.
P. Régnier, and V. Vidal, “Algorithmique de la planification en IA”, Cépaduès éditions, 2004.

Damien Pellier
Emmanuel Hermellin

PDDL4J

http://pddl4j.fr

Présentation de PDDL4GUI

PDDL4GUI est une petite application écrite en Java qui fournit une interface graphique à la librairie PDDL4J. PDDL4GUI propose :

  • Une interface pour la résolution de problèmes de planification grâce à PDDL4J.

  • Une interface pour la résolution de problèmes de planification grâce au service web PDDL4J et une API RESTFull.

  • Un comportement Anytime pour les planners compatibles.

  • L'intégration de VAL (The plan validation system) qui offre la possibilité de tester la validité des solutions fournies par PDDL4J.

Fonctionnalités qui vont être integrées par la suite :

  • Une visualisation des solutions (plans).

  • ...


Dépendance

Pour Windows 10, télécharger le JDK Java corresondant à l'architecture de votre ordinateur : Java. Après l'installation du JDK, il faut ajouter java au PATH.

Pour Linux (Debian / Ubuntu), il suffit d'installer OpenJDK-8

sudo apt-get install openjdk-8-jdk

Comment l'utiliser

Télécharger ou cloner le repository.

Avec Gradle :

# Build PDDL4GUI (compile, assemble, jar, checkstyle)
./gradlew build
# Generate .jar file
./gradlew jar
# Generate javadoc
./gradlew javadoc
# Run PDDL4GUI (LOCAL)
./gradlew run -PArgs=-LOCAL
# Run PDDL4GUI (REST)
./gradlew run -PArgs=-REST

Avec les lignes de commande Java :

java -javaagent:libs/pddl4j-3.8.jar -server -Xms2048m -Xmx2048m -jar pddl4gui-1.0.jar -LOCAL
java -javaagent:libs/pddl4j-3.8.jar -server -Xms2048m -Xmx2048m -jar pddl4gui-1.0.jar -REST

Sous linux avec les scripts disponible à la racine du repository :

./pddl4gui_loc.sh  # Run PDDL4GUI (LOCAL)
./pddl4gui_rest.sh # Run PDDL4GUI (REST)

Note : les dossiers libs et resources sont nécessaires car non intégré dans le jar.

Emmanuel Hermellin

PDDL4GUI