IFT 702 – Planification en intelligence artificielle Langage PDDL

Slides:



Advertisements
Présentations similaires
IFT 702 – Planification en intelligence artificielle Planification par recherche heuristique dans un espace d’états Froduald Kabanza Département d’informatique.
Advertisements

Jean-François Landry Département d’informatique
Introduction Définir Planning. L’agent Planning. Représentation pour l’agent planning. Idées derrieres l’agent planning.
AUTOMATISME Chapitre 2: Le GRAFCET.
1 Programmation Orientée Objet ● Qu'est-ce qu'un objet ● Collaboration des objets ● Les classes ● Relations entre les classes – “Utilise”, “Contient”,
Chainedit 10èmes Rencontres Mondiales du Logiciel Libre Nantes – 10 juillet 2009 Frédéric Hannouche - CIRM.
Volée 1316 S3 Cours No 2_3 : Le nombre en 1-2H. Les fonctions du nombre  Dénombrer, énumérer, décrire une collection. Aspect cardinal  Dater, classer,
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE Université d’Adrar Diagramme d’états-transitions Présenté par Sbai Omar Benothman.
Pour plus de modèles : Modèles Powerpoint PPT gratuitsModèles Powerpoint PPT gratuits Page 1Free Powerpoint Templates.
annuités, mensualités remboursements constants VPM pendant une période ininterrompue
La spécialité math en TS
Conception de « progression »
CEMTEC Comment scénariser l’éclairage d’un escalier ?
La gestion des co-produits (niveau de version : C)
Programme Robot Aspirateur
IFT 702 – Planification en intelligence artificielle Planification par recherche heuristique dans un espace d’états Froduald Kabanza Département d’informatique.
Algorithme et programmation
Les Tableaux Mme DJEBOURI. D.
Algorithmique demander jeu du pendu.
MOT Éditeur de modèles de connaissances par objets typés
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
IFT608 / IFT702 Intelligence Artificielle
L’Instruction de Test Alternatif
Généralité sur les bases de données
IFT 615 – Intelligence artificielle Recherche heuristique
Principes de programmation (suite)
Le but, la cause, la conséquence
Notion De Gestion De Bases De Données
Algorithmique - Les Conditions -
IFT 615 – Intelligence artificielle Agents intelligents
IFT 615 – Intelligence artificielle Recherche heuristique
Langage de modélisation graphique de système
Introduction aux langages formels
IFT 702 – Planification en intelligence artificielle Langage PDDL
Froduald Kabanza Département d’informatique Université de Sherbrooke
Réseaux de neurones appliqués à la reconnaissance de caractères
Tâches Tâches antérieures Durée A -- 6 B 5 C 4 D E F A D G E F Niveaux
Integrated Business intelligence
Mesures Physiques et Informatique
Département d’informatique
Présentation Assistée par Ordinateur
Co-produits Management (Version Level: C)
IFT608 / IFT702 Intelligence Artificielle
B.Shishedjiev - Informatique
Benchmark statique monotone CEOS.FR
IFT 702 – Planification en intelligence artificielle Planification par recherche heuristique dans un espace d’états Froduald Kabanza Département d’informatique.
IFT313 Introduction aux langages formels
IFT 702 – Planification en intelligence artificielle Extraction automatique d’heuristiques à partir d’un modèle Froduald Kabanza Département d’informatique.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Eléments de Macroéconomie
Catherine Cyrot - bibliothèques numériques - Cours 5
MATHÉMATIQUES FINANCIÈRES I
Un Mécanisme d‘Adaptation Guidé par le Contexte en Utilisant une Représentation par Objets Manuele Kirsch Pinheiro Laboratoire LSR – IMAG, Équipe SIGMA.
Le stockage des données
IFT313 Introduction aux langages formels
Logiciel de présentation
IFT313 Introduction aux langages formels
ENSEIGNER L’ALGORITHMIQUE ET LA PROGRAMMATION AU COLLÈGE
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
L ’ Intelligence Artificielle
MATHÉMATIQUES FINANCIÈRES I
Enseignement de Spécialité (EdS) classes de Première et Terminale
Chapitre 2 Résolution des Problèmes et Jeux. Objectifs  Comment ? – Modéliser un Problème. – Modéliser un Jeu.  Comment ? – Passer d’un état à un autre.
IFT 615 – Intelligence artificielle Consignes pour l’examen final
Python Nicolas THIBAULT
UC : Diagramme des cas d’utilisation Req : Diagramme d’exigence
MOT Éditeur de modèles de connaissances par objets typés
Sera vu dans un prochain cours.
Numérique et Sciences Informatiques
Transcription de la présentation:

IFT 702 – Planification en intelligence artificielle Langage PDDL Froduald Kabanza Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift702

Contenu STRIPS PDDL Intégration avec un planificateur mardi 13 mars 2018 Contenu STRIPS PDDL Intégration avec un planificateur IFT608/IFT702

Prérequis IFT615 IFT 615 (Logique du premier ordre) mardi 13 mars 2018

mardi 13 mars 2018mardi 13 mars 2018 Architecture générale d’un 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 d’actions) But État initial Le modèle ne décrit pas les capteurs puisque l’environnement est déterministe. L’agent est le seul acteur du changement. Pour les mêmes raisons, le plan est une séquence d’actions. Le modèle ne décrit pas les capteurs puisque l’environnement est déterministe. Le modèle est transformé en fonction de transition pour un graphe d’états. IFT608/IFT702

Langages de modélisation Langage STRIPS : Décrit une action élémentaire en fonction de trois éléments: Précondition Effets positifs Effets négatif Limitations 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 Langage PDDL (Planning Domain Definition Language) : Une extension de STRIPS levant les restrictions précédentes Un “quasi-standard académique” pour les algorithmes de planification (conférence ICAPS) PDDL 2.1 IFT608/IFT702

Langage STRIPS Transformation du modèle pour avoir une fonction de transition IFT608/IFT702

Exemple 1: Monde des blocs Un robot doit empiler des blocs dans une configuration indiquée. C’est une version simplifiée d’un robot de manipulation de conteneurs dans un port. On dit au robot quoi faire (le but) Exemple: Livrer des colis Le comportement pour accomplir le but n’est pas codé d’avance Le robot utilise un planificateur pour déterminer le comportement C’est quoi un comportement au juste? Une séquence d’actions Que veulent dire les hypothèses détermiste et complétement observable ici? IFT608/IFT702

Exemple STRIPS 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 (not (ontable ?x)) (not (clear ?x)) (not (handempty)) (holding ?x)) Pour l’instant, nous ne traitons pas l’évitement de collision avec les obstacles. Nous supposons que cela est fait au niveau des actions primitives. (:action putdown :parameters (?x – block) :precondition (holding ?x) :effects (and (not (holding ?x)) (ontable ?x) (clear ?x) (handempty)) IFT608/IFT702

Exemple STRIPS pour la livraison de colis r1 (room) r2 (room) c1 (corridor) r4 (room) r3 (room) c2 (corridor) d11 d12 d23 d24 b1 b2 b4 b3 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)))

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 :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)))) Ici non plus, nous ne traitons pas l’évitement de collision avec les obstacles. Nous supposons que cela est fait au niveau des actions primitives. IFT608/IFT702

Exemple PDDL pour la livraison de colis r1 (room) r2 (room) c1 (corridor) r4 (room) r3 (room) c2 (corridor) d11 d12 d23 d24 b1 b2 b4 b3 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))

Exemple PDDL pour la livraison de colis, suite (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 :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)))) IFT608/IFT702

Une autre version PDDL pour la livraison de colis r1 (room) r2 (room) c1 (corridor) r4 (room) r3 (room) c2 (corridor) d11 d12 d23 d24 b1 b2 b4 b3 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 (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 :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))))) IFT608/IFT702

Autres exemples ROSPLAN International Planning Competition Demo PDDL Voir aussi Cashmore at al. 2015. ROSPlan: Planning in the Robot Operating System. http://www.aaai.org/ocs/index.php/ICAPS/ICAPS15/paper/viewFile/10619/10379 ROSPlan tutorial : http://icaps16.icaps-conference.org/proceedings/summer-school/rosplan_tutorial.pdf IFT608/IFT702

Ce qu’il faut retenir PDDL Syntaxe mardi 13 mars 2018 Ce qu’il faut retenir PDDL Syntaxe Sémantique: Étant donné un état et un domaine PDDL, générer les successeurs. Cela permet de définir implicitement la fonction successeur pour un algorithme comme A*. Pour l’instant, le seul avantage perceptible d’avoir un modèle PDDL (au lieu d’une fonction de transitions 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 l’extraction d’heuristiques. IFT608/IFT702