IFT615 – Intelligence artificielle PDDL : Planning Domain Definition Language Jean-François...

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

Transcript of IFT615 – Intelligence artificielle PDDL : Planning Domain Definition Language Jean-François...

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

IFT615 – Intelligence artificielle

PDDL : “Planning Domain Definition Language”

Jean-François Landry

Département d’informatique

Université de Sherbrooke

IFT615 – Été 2011 1

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

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 2

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

EXEMPLE D’APPLICATIONS

3

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

Exemple 1 : robot livreur de colis

p1 p2 p3 p4

c1 c2robot

O1 O2

O3

4

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

Exemple 1 : robot livreur de colis (problème)

État initial p1 p2 p3 p4

c1 c2robot

O1 O2

O3

But p1 p2 p3 p4

c1 c2robot

O1O2

O3

5

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

Exemple 1 : robot livreur de colis (solution)

Solution : exécuter le plan suivant1. Aller à : p12. Prendre l’objet : o13. Aller à : c14. Aller à : c25. Aller à : p46. Déposer l’objet : o17. Aller à : c28. Aller à : p39. Prendre l’objet o210.Aller à : c211.Aller à : c112.Aller à : p113.Déposer l’objet : o2

6

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

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

p1 p2 p3 p4

c1 c2robot

O1 O2

O3

7

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

Exemple 2 : monde des blocs (BlocksWorlds)

A B

D C

A D

B C

Configuration initiale But Actions possibles:• Prendre un bloc.• Déposer un bloc.

Problème :• Trouver la séquence d’actions pour y arriver.

8

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

Exemple 2 : monde des blocs (Solution)

A B

D C

État 0

A B

D

C

A B D

C

A B D

C

État 1 État 2 État 3

A B D

C

État 4

A B

DC

État 5

A B

DC

État 6

9

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

Exemple 3 : Mars Rovers• Planifier des actions telles que:

– 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.

10

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

Exemple 4 : livraison de colis

11

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

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

Problème

Problème

Problème

Solution

Solution

Solution

Solution

12

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

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 l’environnement)

Planificateurgénérique

Plan(séquenced’actions)

13

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

Planification : modèle générique d’actions

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) = <non défini>

• RobotHave(O) = true

Effe

tsP

réco

nditi

ons

Effe

tsP

réco

nditi

ons

14

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

Génération des plansPos=p1E=100%

T=0

Pos=p3E=98%T=120

Pos=p2E=99%T=60

Pos=p7E=98%T=120

Déplacer(p1,p2)

Livrer(m1,p5)

Déplacer(p1,p2)

Déplacer(p1,p

2)

… … Pos=p3E=97%

T=180,{m1}

Pos=p5E=95%

T=400,{m1}

Pos=p5E=94%

T=460,m1@p5

Déplacer(p3,p5)

Prendre

(m1,p

3)

MissionLivrer message m1 de p3 à p5

État initialPosition = p1Énergie = 100%Temps = 0s

Plan1. SeDéplacer(p1, p3)2. PrendreMsg(m1, p3)3. SeDéplacer(p3, p5)4. Livrer(m1, p5)

p1

p2

p3p4

p5

p6p7

p8

p9 p10p11

15

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

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.

16

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

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.

17

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

(: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 blocksc

a b

ca b

c

a b

c

ab

c

a b

18

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

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