IFT 702 Planification en intelligence artificielle Contrôle de la recherche avec des réseaux de tâches hiérarchiques Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift702
© Froduald Kabanza IFT702 2 Sujets Introduction Total-Order STN Planning Partial-Order STN Planning
© Froduald Kabanza IFT702 3 Introduction Principe: spécifier des recettes pour contrôle lexploration de lespace des solutions pour un planificateur. »Spécifier les chemins à éviter: approche TLPLAN: TLPLAN: Temporal Logic Planner »Spécifier les ssous-buts (sous tâches) à suivre: approche HTN: HTN: Hierarchical Task Network (HTN)
TLPLAN Actions Search Control Formula Fonction de transition A* et dautres Plan État initial (LTL) Goal LTL Formula Progress (c) Froduald Kabanza4
HTN Primitive Tasks (Actions) Fonction de transition Search Plan État initial (c) Froduald Kabanza5 Non Primitive Tasks (Search Control)
6 Vue densemble de lapproche HTN Éntrées: état initial, réseau de tâches initial (à effectuer), opérateurs, méthodes Procédure: Décomposer les tâches récursivement, jusquà trouver des tâches primitives directement exécutables par les opérateurs Rebrousser chemin (backtracking) et essayer dautres décompositions si nécessaire »Ex., si aucune méthode nest applicable, ou pas moyen de satisfaire une contrainte Observations : Ressemble à la réduction de problèmes propre à la programmation dynamique (mais avec du backtracking si ça échoue) Effectuer un ensemble de tâches plutôt quatteindre un « but » comme en planification classique © Froduald Kabanza IFT702
© Froduald Kabanza IFT702 7 Élements de base dun HTN États, opérateurs: comme dans les approches précédentes. Tâches (non primitives): une tâche représente une activité complexe décomposable en sous-activités. »Elle a règle (méthode) de décomposition de tâches associée. Tâche Primitives : une telle tâche représente une activité non décomposable »Cest une action »Elle a des préconditions et des effets comme dans PDDL
8 2) taxi-travel(x,y) Task: travel(x,y) Pre: short-distance(x,y) Subtasks: get-taxi, ride(x,y), pay-driver travel(x,y) air-travel(x,y) buy-ticket(a(x),a(y))travel(x,a(x))fly(a(x),a(y))travel(a(y),y) © Froduald Kabanza IFT702 1) air-travel(x,y) Task: travel(x,y) Pre: long-distance(x,y) Subtasks: buy-ticket(a(x),a(y)), travel(x,a(x)), fly(a(x),a(x)), travel(a(x),y) Exemple Les tâches non primitives sont en gras
9 Formes des problèmes/solutions Définition du domaine : méthodes & actions Modèle (problème): état initial, (un but), liste de tâches, et la définition du domaine Solution: plan (satisfaisant le but) obtenu en »Applicant récursivement les méthodes aux tâches non primitives (en respectant les préconditions) »Applicant une action dont les préconditions satisfaites dans létat courant. task precond method s0 precondeffectsprecondeffects s1s2 subtask 2subtask 1 action © Froduald Kabanza IFT702
© Froduald Kabanza IFT Plan Introduction Total-Order STN Planning Partial-Order STN Planning
11 Total-Order STN Planning Une méthode pour décomposer une tâche non primitive est décrite par »La tâche à décomposer »Une précondition (ensemble de littéraux: condition pour que la décomposition soit applicable) »Un ensemble totalement ordonné de sous-tâches (tâches résultants de la décomposition) © Froduald Kabanza IFT702 travel(x,y) air-travel(x,y) buy-ticket(a(x),a(y))travel(x,a(x))fly(a(x),a(y))travel(a(y),y) 1) air-travel(x,y) Task: travel(x,y) Pre: long-distance(x,y) Subtasks: buy-ticket(a(x),a(y)), travel(x,a(x)), fly(a(x),a(x)), travel(a(x),y)
12 Exemple Supposons quon veut déplacer trois piles de conteneurs en respectant lordre dempilement pour chaque pile © Froduald Kabanza IFT702
13 Une stratégie pour déplacer les containeurs dune pile p à une pile r : »déplacer les containeurs de la pile p vers une pile intermédiaire r (inversée) »ensuite les déplacer de la pile r à la pile q © Froduald Kabanza IFT702
14 © Froduald Kabanza IFT702 Spécification avec ordre total
15 Algorithme : Total-Order Forward decomposition (p. 239) state s; task list T=( t 1,t 2,…) action a state (s,a) ; task list T=(t 2, …) task list T=( u 1,…,u k,t 2,…) task list T=( t 1,t 2,…) method instance m © Froduald Kabanza IFT702
16 © Froduald Kabanza IFT702 Plan obtenu par TFD
17 On ne peut pas entrelacer des sous- tâches de tâches différentes »Inefficacité du planificateur »Complexité de la spécification des domaines Théoriquement on peut toujours sen sortir (puisque SHOP est Turing- complete), mais au prix dune spécification »Peu naturelle On veut des méthodes qui procèdent globalement plutôt que localement »Peu efficace Limites des tâches complètement ordonnées walk(a,b) pickup(p) walk(b,a) get(p)get(q) get-both(p,q) walk(a,b) pickup(q) walk(b,a) goto(b) pickup(p)pickup(q) get-both(p,q) pickup-both(p,q) walk(a,b) goto(a) walk(b,a) © Froduald Kabanza IFT702
© Froduald Kabanza IFT Plan Introduction Simple Task Network (STN) Planning Total-Order STN Planning Partial-Order STN Planning
19 Partial-Order STN Planning Partial-Order STN Planning généralise Total-Order STN Planning »Les sous-tâches ne sont pas totalement ordonnées »Au contraire, elles sont partiellement ordonnées »Par conséquent, on peut entrelacer des sous-tâches de tâches différentes Lalgorithme de planification devient plus complexe »Exemple: réparer les interaction (add/delete des effets) entre actions Certaines approches utilisent les lien causaux vue dans lapproche PSP (Planification par recherche dans lespace de plans) walk(a,b)pickup(p) get(p) stay-at(b)pickup(q) get(q) get-both(p,q) walk(b,a)stay-at(a) © Froduald Kabanza IFT702
20 Partial-Order STN Planning Une méthode est décrite par »Une tâche non primitive (la tâche à décomposer par la méthode) »Une précondition (ensemble de littéraux: condition pour que la décomposition soit applicable) »Un ensemble partiellement ordonné de sous-tâches (tâches résultants de la décomposition) © Froduald Kabanza IFT702 travel(x,y) air-travel(x,y) buy-ticket(a(x),a(y))travel(x,a(x))fly(a(x),a(y))travel(a(y),y) 1) air-travel(x,y) Task: travel(x,y) Pre: long-distance(x,y) Subtasks: u 1 =buy-ticket(a(x),a(y)), u 2 =travel(x,a(x)), u 3 =fly(a(x),a(x)), u 4 =travel(a(x),y), {(u 1,u 3 ), (u 2,u 3 ), (u 3,u 4 )}
21 Spécification avec ordre partiel © Froduald Kabanza IFT702 <- sous-tâches partiellement ordonnées
22 P={p 1 …,p k, o }; w={t 2, …} w={ t 1,t 2,…} method instance m w={ t 11,…,t 1k,t 2,…} π={p 1,…,p k }; w={ t 1,t 2,…} operator instance o Algorithme: Partial-Order Forward Decomposition (p. 243) © Froduald Kabanza IFT702
23 Comparaison à recherche dans lespace détats Goal-oriented comme dans une recherche à rebours »Les buts correspondent aux tâches Génère les actions dans lordre de leur exécution comme une recherche en avant Lorsquon veut planifier la prochaine tâche »Toutes les tâches qui la précède sont déjà planifiées »Ainsi, on connaît létat courant! s0s0 s1s1 s2s2 … task t m … … task t n op 1 op 2 op i S i–1 task t 0 © Froduald Kabanza IFT702
24 Comparaison avec la planification classique Tout problème de planification classique peut être traduit en un problème HTN, en temps polynomial »Une des façons de le faire: Pour chaque but ou précondition e, crée une tâche t e Pour chaque action o et effet e, crée une méthode m o,e La tâche effectuée par la méthode est t e Les sous tâches sont t p1, t p2, …, t pn, o où p 1, p 2, …, p n sont les préconditions de o Ordre partiel sur les contraintes: chaque t pi précède o Par contre, il y a des problèmes HTN qui ne peuvent être traduits dans des problèmes de planification classique. © Froduald Kabanza IFT702
25 Deux méthodes: »Aucun argument »Aucune précondition Deux opérateurs, a et b »Sans argument ni précondition État initial : vide; tâche initiale t Ensemble de solutions {a n b n | n > 0} Aucun problème de planification classique na cette solution »Le système de transitions est une machine à état fini »Aucune machine à état fini ne peut reconnaître le language {a n b n | n 0} method1 bt a t method2 ba t © Froduald Kabanza IFT702 Comparaison avec la planification classique
26 Lapproche TFD est implémenté dans SHOP Lapproche PFD est implementé dans SHOP2 Implémentations © Froduald Kabanza IFT702
© Froduald Kabanza IFT Plan Introduction Simple Task Network (STN) Planning Total-Order STN Planning Partial-Order STN Planning
© Froduald Kabanza IFT Généralisation Conraintes plus générales que juste les ordres partielles entre les tâches: »before-constraint: un littéral doit être vrai dans létat juste avant une tâche »after-constraint: un littéral doit être vrai dans létat juste après une tâche »between-constraint: un littéral doit être vrai dans lintervalle
© Froduald Kabanza IFT Références Malik Ghallab, Dana Nau & Paolo Traverso. Automated Planning: theory and practice. Morgan Kaufmann, ISBN: (Chapitre 11)