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

IFT615 – Intelligence artificielle PDDL : Planning Domain Definition Language Jean-François Landry Département dinformatique Université de Sherbrooke IFT615.

Présentations similaires


Présentation au sujet: "IFT615 – Intelligence artificielle PDDL : Planning Domain Definition Language Jean-François Landry Département dinformatique Université de Sherbrooke IFT615."— Transcription de la présentation:

1 IFT615 – Intelligence artificielle PDDL : Planning Domain Definition Language Jean-François Landry Département dinformatique Université de Sherbrooke IFT615 – Été 20111

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

3 EXEMPLE DAPPLICATIONS 3

4 Exemple 1 : robot livreur de colis p1p2p3p4 c1c2 robot O1 O2 O3 4

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

6 Exemple 1 : robot livreur de colis (solution) Solution : exécuter le plan suivant 1.Aller à : p1 2.Prendre lobjet : o1 3.Aller à : c1 4.Aller à : c2 5.Aller à : p4 6.Déposer lobjet : o1 7.Aller à : c2 8.Aller à : p3 9.Prendre lobjet o2 10.Aller à : c2 11.Aller à : c1 12.Aller à : p1 13.Déposer lobjet : o2 6

7 Exemple 1 : un robot pour déplacer des objets (simulation) p1p2p3p4 c1c2 robot O1 O2 O3 7

8 Exemple 2 : monde des blocs (BlocksWorlds) AB DC AD BC Configuration initiale But Actions possibles: Prendre un bloc. Déposer un bloc. Problème : Trouver la séquence dactions pour y arriver. 8

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

10 Exemple 3 : Mars Rovers Planifier des actions telles que: –Collecter des données à divers sites dintérêt. –Se déplacer vers un site dinté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. 10

11 Exemple 4 : livraison de colis 11

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 Résolveur_BlocksWorld.cpp Résolveur_MarsRover.cpp Résolveur_LivraisonColis.cpp Problème Solution 12

13 IFT615 – Été 2010 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. But (problème) Domaine (actions) État Initial (connaissances sur lenvironnement) Planificateur générique Plan (séquence dactions) 13

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

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

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 à lutilisateur 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. 16

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 laction, les paramètres, les préconditions, l es effets. 17

18 (: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)) Exemple PDDL pour le monde des blocks c ab c ab c ab c a b c ab 18

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 :parameters(?r - robot ?loc - location ?b - box) :duration (= ?duration 60) :condition(and (over all (robot-at ?r ?loc)) (at start (box-on ?b ?r)) ) :effect(and (at end (box-at ?b ?loc)) (at start (not (box-on ?b ?r))) ) 19


Télécharger ppt "IFT615 – Intelligence artificielle PDDL : Planning Domain Definition Language Jean-François Landry Département dinformatique Université de Sherbrooke IFT615."

Présentations similaires


Annonces Google