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

IFT 702 – Planification en intelligence artificielle Planification par recherche heuristique dans un espace détats Froduald Kabanza Département dinformatique.

Présentations similaires


Présentation au sujet: "IFT 702 – Planification en intelligence artificielle Planification par recherche heuristique dans un espace détats Froduald Kabanza Département dinformatique."— Transcription de la présentation:

1 IFT 702 – Planification en intelligence artificielle Planification par recherche heuristique dans un espace détats Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift702

2 Contenu Rappels Architecture dun planificateur utilisant comme solveur une recherche dans un espace détats Langage de modélisation STRIPS et transformation correspondante pour un solveur par recherche dans un espace détats Langage de modélisation PDDL transformation correspondante pour un solveur par recherche dans un espace détats

3 Rappel – un planificateur est un solveur de modèle observations buts action World Exécution de laction Plan Planificateur Modèle dactions, capteurs et buts observations buts

4 Rappel – Hypothèses sur le domaine Les hypothèses du domaine à considérer sont: – Un seul agent vs plusieurs agents – Déterministe vs stochastique – Complétement observable vs partiellement observable Nous supposons dans un premier un temps que lenvironnement est déterministe, complètement observable, avec un seul agent pour qui on planifie. Un algorithme défini avec ces hypothèse peut néanmoins être appliqué dans un environnement ne satisfaisant pas les deux premières: – Lincertitude est géré par larchitecture décisionnelle en re-planifiant – Un planificateur déterministe centralisé peut planifier pour plusieurs agents

5 Architecture générale dun planificateur opérant par recherche dans un espace détats Modèle (actions, buts) Fonction de transition Recherche heuristique dans un graphe détats Plan (Séquence dactions) But État initial Le modèle ne décrit pas les capteurs puisque lenvironnement est déterministe. Le modèle est transformé en fonction de transition pour un graphe détats.

6 Un robot doit empiler des blocs dans une configuration indiquée. Cest une version simplifiée dun robot de manipulation de conteneurs dans un port. Exemple 1: Monde des blocs

7 Exemple 2: Livraison de colis Un robot doit recevoir des commandes de livraisons de colis et les exécuter. r1 (chambre)r2 (chambre) c1 (corridor) r4 (cuisine)r3 (s. bain) c2 (corridor) Colis 1 Colis 2 d11d12 d23 d24

8 Exemple 1 : Empiler des blocs Étant donné un modèle dactions primitives (prendre un block, relâcher un bloc, etc.), trouver un plan pour attendre le but. Le problème est transformé en un problème de trouver un chemin dans un graphe dirigé.

9 Exemple 2 : Livrer des colis Étant donné un modèle dactions primitives (prendre un colis, relâcher un bloc, se déplacer dune pièce à lautre), trouver un plan pour attendre le but. Le problème est transformé en un problème de trouver un chemin dans un graphe dirigé. r1r1 r2r2 r3r3 r4r4 r5r5 r6r6 r1r1 r2r2 r3r3 r4r4 r5r5 r6r6 État initial But robot

10 Goto(r5,r1) Goto(r5,r2) … Take(…) Goto(…) … … ……… ……

11 Rappel - Comment trouver un chemin dans un graphe? Non informé: Largeur, profondeur, iterative deepening, Dijkstra, etc. Ces algorithmes ne sont pas efficaces pour des problèmes qui nous intéressent. Ils nont aucun sens de direction. Le sens de direction est donné par une fonction heuristique. Recherche heuristique dans un graphe – Best-first: (f(x) = α*g(x) + β*h(x)) o α = 0: algorithme glouton (greedy) o β = 0: uniform-cost o α = β: A* Défi: trouver une fonction heuristique h(x)

12 IFT61512Froduald Kabanza A* est une extension de lalgorithme de Dijkstra – Utilisé pour trouver un chemin optimal dans un graphe via lajout dune heuristique Une heuristique h(n) est une fonction destimation du coût entre un nœud n dun graphe et le but (le nœud à atteindre) Lheuristique donne un sens de direction à lexploration de lespace détats. Le temps de calcul de A* et la qualité de la solution (proximité à la solution optimale) dépendent beaucoup de la qualité de lheuristique. Rappel - Algorithme A* (IFT 615)

13 IFT61513Froduald Kabanza Entrée de A* – État initial (létat courant) – État final (le but) – Fonction de transition : successeur(état, action) – Fonction de cout : cout(état,successeur) – Fonction heuristique: h(état) Sortie: chemin entre létat initial et létat final. Le chemin est optimal si lheuristique est admissible. Les fonctions sont définies une seule fois pour un domaine. Elles définissent le domaine. Létat initial et le but spécifie un problème dans le domaine. Rappel - Algorithme A* (IFT 615)

14 © Froduald Kabanza14IFT702 Langages de modélisation STRIPS est un langage très simple, classique: – Pas moyen de spécifier des contraintes sur la durée des actions – Pas moyen de spécifier des effets conditionnels – Pas moyen de spécifier des contraintes numériques PDDL (Planning Domain Definition Language) : – Une extension de STRIPS levant les restrictions précédentes – Un standard pour les compétitions sur des algorithmes de planification (conférence ICAPS) – La BNF de PDDL 3. La BNF de PDDL 3

15 Transformation du modèle pour avoir une fonction de transition Langage STRIPS

16 (: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 (not (ontable ?x)) (not (clear ?x)) (not (handempty)) (holding ?x)) (:action putdown :parameters (?x – block) :precondition (holding ?x) :effects (and (not (holding ?x)) (ontable ?x) (clear ?x) (handempty)) Exemple STRIPS pour le monde des blocks c ab c ab c ab c a b c ab

17 Exemple STRIPS pour la livraison de colis r1 (room) r2 (room) c1 (corridor) r4 (room) r3 (room) c2 (corridor) d11d12 d23d24 b1 b2 b3 b4 b5 (:objects b1 b2 b3 b4 b5 - ball left right – gripper r1 r2 r3 r4 – room c1 c2 - corridor) (:init (atRobot c2) (free left) (free right) (at b1 r2) (at b2 r2) (at b3 r2) (at b4 r3) (at b5 r3)) (:goal (at b1 r4) (at b2 r4) (at b3 r4) (at b4 r4) (at b5 r4)) (:goal (forall (?x - ball)(at ?x r4)))

18 Exemple STRIPS pour la livraison de colis, suite (define (domain robotWorld1) (:types gripper ball room corridor door) (:predicates atRobot at free holding connects) (:action pick :parameters (?b – ball ?g – gripper ?r – room) :precondition (and (at ?b ?r) (atRobot ?r) (free ?g)) :effect (and (holding ?g ?b) (not (at ?b ?r)) (not (free ?g)))) (:action release :parameters (?b – ball ?g – gripper ?r – room) :precondition (and (holding ?g ?b) (atRobot ?r)) :effect (and (at ?b ?r) (not (holding ?g ?b)) (free ?g))) (:action move :parameters (?rf ?rt – room ?d - door) :precondition (atRobot ?rf) (connects ?d ?rf ?rt) :effect (and (atRobot ?rt) (not (atRobot ?rf))))

19 Exemple PDDL pour la livraison de colis r1 (room) r2 (room) c1 (corridor) r4 (room) r3 (room) c2 (corridor) d11d12 d23d24 b1 b2 b3 b4 b5 (:objects r1 r2 r3 r4 – room c1 c2 - corridor) (:init (atRobot r2) (= (free) 2) (= (holding) 0) (= (atBalls r3) 2)(= (atBalls r2) 3) (:goal (= (atBalls r4) 5))

20 (define (domain robotWorld2) (:types ball room corridor) (:predicates at atRobot) (:action pickup :parameters (?r – room) :precondition (and (> (atBalls ?r) 0) (atRobot ?r) (> (free) 0)) :effect (and (increase (holding) 1) (decrease (atBalls ?r) 1) (decrease (free) 1))) (:action release :parameters (?r – room) :precondition (and (> (holding) 0) (atRobot ?r)) :effect (and (increase (atBalls ?r) 1) (decrease (holding) 1) (increase (free) 1))) (:action move :parameters (?rf ?rt – room ?d - door) :precondition (and (atRobot ?rf)(connects ?d ?rf ?rt))) :effect (and (atRobot ?rt) (not (atRobot ?rf)))) Exemple PDDL pour la livraison de colis, suite

21 r1 (room) r2 (room) c1 (corridor) r4 (room) r3 (room) c2 (corridor) d11d12 d23d24 b1 b2 b3 b4 b5 (:objects b1 b2 b3 b4 b5 - ball left right – gripper r1 r2 r3 r4 – room c1 c2 - corridor) (:init (atRobot c2) (free left) (free right) (at b1 r2) (at b2 r2) (at b3 r2) (at b4 r3) (at b5 r3)) (:goal (at b1 r4) (at b2 r4) (at b3 r4) (at b4 r4) (at b5 r4)) (:goal (forall (?x - ball)(at ?x r4))) Une autre version PDDL pour la livraison de colis

22 (define (domain robotWorld3) (:types gripper ball room corridor door) (:predicates atRobot at free holding connects) (:action pick :parameters (?b – ball ?g – gripper ?r – room) :precondition (and (at ?b ?r) (atRobot ?r) (free ?g)) :effect (and (holding ?g ?b)(not (free ?g)))) (:action release :parameters (?b – ball ?g – gripper ?r – room) :precondition (and (holding ?g ?b) (atRobot ?r)) :effect (and(not (holding ?g ?b)) (free ?g))) (:action move :parameters (?rf ?rt – room ?d - door) :precondition (atRobot ?rf) (connects ?d ?rf ?rt) :effect (and (atRobot ?rt) (not (atRobot ?rf))) (forall (?b – ball ?g - gripper) (when (holding ?b ?g) (and (not (at ?b ?rf)) (at ?b ?rt)))))

23 © Froduald Kabanza23IFT702 Autres exemples Voir International Planning Competition –

24 Ce quil faut retenir Nous venons de voir le langage de modélisation PDDL et son cas simple (STRIPS) Nous avons vu une transformation assez simple dun modèle PDDL en une fonction de transition pour un graphe détats. Cela nous a permis dutiliser une recherche dans un graphe comme solveur, particulièrement A*. Pour linstant, le seul avantage perceptible davoir un modèle PDDL (au lieu dune fonction de transition normale) est de représenter la fonction de transition de façon compacte. Un autre avantage que nous voyons dans la leçon suivante est lextraction dheuristiques.

25 Prochaine leçon Nous verrons lextraction dheuristiques à partir dun modèle. Devoir permettant de se familiariser avec PDDL et un planificateur basé sur PDDL et la recherche heuristique dans un espace détats. Voir le plan de cours pour plus de détails.


Télécharger ppt "IFT 702 – Planification en intelligence artificielle Planification par recherche heuristique dans un espace détats Froduald Kabanza Département dinformatique."

Présentations similaires


Annonces Google