La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Jean-François Landry Département d’informatique

Présentations similaires


Présentation au sujet: "Jean-François Landry Département d’informatique"— Transcription de la présentation:

1 IFT615 – Intelligence artificielle PDDL : “Planning Domain Definition Language”
Jean-François Landry Département d’informatique Université de Sherbrooke IFT615 – Été 2011

2 Objectifs Motivation d’une solution générique pour résoudre des problèmes de génération de plans. Comprendre la structure de PDDL. IFT615 – Été 2011

3 EXEMPLE D’APPLICATIONS

4 Exemple 1 : robot livreur de colis

5 Exemple 1 : robot livreur de colis (problème)
État initial But p1 p2 p3 p4 O3 O1 O2 c1 robot c2

6 Exemple 1 : robot livreur de colis (solution)
Solution : exécuter le plan suivant Aller à : p1 Prendre l’objet : o1 Aller à : c1 Aller à : c2 Aller à : p4 Déposer l’objet : o1 Aller à : p3 Prendre l’objet o2 Déposer l’objet : o2

7 Exemple 1 : un robot pour déplacer des objets (simulation)

8 Exemple 2 : monde des blocs (BlocksWorlds)
Actions possibles: Prendre un bloc. Déposer un bloc. Problème : Trouver la séquence d’actions pour y arriver. Configuration initiale But D C B C A B A D

9 Exemple 2 : monde des blocs (Solution)
État 0 État 1 État 2 État 3 D C D C C C A B A B A B D A B D État 5 État 6 État 4 D C C D C A B A B A B D

10 Exemple 3 : Mars Rovers Planifier des actions telles que: Contraintes:
Collecter des données à divers sites d’intérêt. Se déplacer vers un site d’intérêt. Transmettre vers la Terre les données collectées. Contraintes: Énergie limitée (batteries). Incertitude sur les déplacements (durée + ressources). Fenêtre de faisabilités. Solution générique: On veut seulement donné un but. Le robot doit trouver le plan de lui-même.

11 Exemple 4 : livraison de colis

12 Comment résoudre ses problèmes?
On pourrait écrire 4 programmes différents, chacun étant spécifique à un type de problème en particulier. Résolveur_RobotLivreur.cpp Problème Solution Résolveur_BlocksWorld.cpp Problème Solution Résolveur_MarsRover.cpp Problème Solution Résolveur_LivraisonColis.cpp Problème Solution

13 Comment résoudre ses problèmes de façon générique?
Écrire un seul planificateur générique indépendant des problèmes. Écrire quatre (4) spécifications de problème. Domaine (actions) Planificateur générique But (problème) Plan (séquence d’actions) État Initial (connaissances sur l’environnement) IFT615 – Été 2010

14 Planification : modèle générique d’actions
Goto(A, B) TakeObject(O, P) Position(Robot) = A Énergie >= k*distance(A,B) PositionObject(O) = P Position(Robot) = P Préconditions Préconditions Position(Robot) = B Énergie -= k * distance(A,B) Temps += distance(A,B) / v Position(O) = <non défini> RobotHave(O) = true Effets Effets

15 Génération des plans Mission Plan Déplacer(p1,p2) Déplacer(p1,p2)
Pos=p1 E=100% T=0 Déplacer(p1,p2) Déplacer(p1,p2) Mission Livrer message m1 de p3 à p5 État initial Position = p1 Énergie = 100% Temps = 0s Déplacer(p1,p2) Pos=p7 E=98% T=120 Pos=p2 E=99% T=60 Pos=p3 E=98% T=120 Prendre(m1,p3) Pos=p3 E=97% T=180,{m1} Déplacer(p3,p5) p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 Pos=p5 E=95% T=400,{m1} Plan SeDéplacer(p1, p3) PrendreMsg(m1, p3) SeDéplacer(p3, p5) Livrer(m1, p5) Livrer(m1,p5) Pos=p5 E=94%

16 Langage pour un planificateur
Il est possible de créer un langage pour un planificateur. Il suffit de décrire formellement : la description des actions possibles (préconditions / effets); la situation initiale; le but. La syntaxe doit être conviviale à l’utilisateur ET au planificateur, donc : 1) lisible et compréhensible par un humain; 2) analysable par un parseur LL ou LR : donc il faut pouvoir décrire le langage par une grammaire bien structurée.

17 Exemple : PDDL Basé sur la logique du premier ordre.
PDDL = Planning Domain Definition Language. Langage utilisé lors des compétitions ICAPS (International Conference on Automated Planning and Scheduling) Basé sur la syntaxe de Lisp, donc facile à lire. Pour un domaine, on décrit : Les objets pouvant exister Les relations pouvant exister Pour chaque actions possible, on décrit: Le nom de l’action, les paramètres, les préconditions, les effets.

18 Exemple PDDL pour le monde des blocks
a b (:action unstack :parameters (?x – block ?y - block) :precondition (and (on ?x ?y) (clear ?x) (handempty) :effects (and (not (on ?x ?y)) (not (clear ?x)) (not (handempty)) (holding ?x) (clear ?y)) (:action stack :parameters (?x – block ?y - block) :precondition (and (holding ?x) (clear ?y)) :effects (and (not (holding ?x)) (not (clear ?y)) (on ?x ?y) (clear ?x) (handempty)) (:action pickup :parameters (?x – block) :precondition (and (ontable ?x) (clear ?x) (handempty) :effects (and (ontable ?x) (clear ?x) (handempty) (holding ?x)) (:action putdown :parameters (?x – block) :precondition (holding ?x) :effects (and (not (holding ?x)) (ontable ?x) (clear ?x) (handempty))

19 Exemple livraison de colis
(define (domain SimTransport) (:requirements :strips :equality :typing :fluents :durative-actions ) (:types location - object robot - object box - object ) (:predicates (robot-at ?r - robot ?l - location) (box-at ?b - box ?l - location) (box-on ?b - box ?r - robot) (link ?x - location ?y - location) (:functions (distance ?l1 - location ?l2 - location) (speed ?r - robot) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Goto : Navigation between 2 locations (:durative-action Goto :parameters(?r - robot ?from - location ?to - location) :duration (= ?duration (/ (distance ?from ?to) (speed ?r))) :condition(and (at start (robot-at ?r ?from)) ;;(over all (link ?from ?to)) :effect(and (at start (not (robot-at ?r ?from))) (at end (robot-at ?r ?to)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Load (:durative-action Load :parameters(?r - robot ?loc - location ?b - box) :duration (= ?duration 60) :condition(and (over all (robot-at ?r ?loc)) (at start (box-at ?b ?loc)) ) :effect(and (at start (not (box-at ?b ?loc))) (at end (box-on ?b ?r)) ;; Unload (:durative-action Unload (at start (box-on ?b ?r)) (at end (box-at ?b ?loc)) (at start (not (box-on ?b ?r)))


Télécharger ppt "Jean-François Landry Département d’informatique"

Présentations similaires


Annonces Google