• Aucun résultat trouvé

1.7 Résumé du chapitre

2.1.3 Planification hiérarchique

La planification hiérarchique se base sur le concept d’hiérarchie d’abstraction des actions dont le but est de réduire la complexité liée à l’espace de recherche.

Les niveaux d’abstraction caractérisent la granularité avec laquelle on décrit le problème. Il existe deux façons d’introduire des hiérarchies d’abstraction dans les processus de planification. On retrouve d’une part, la hiérarchisation des buts à accomplir et d’autre part la hiérarchisation des opérateurs disponibles.

La première approche a été introduit pour la première fois dans le planificateur AbStrips (Sacerdoti, 1974). Dans ce planificateur, la hiérarchisation consiste à définir une mesure d’importance entre les préconditions d’actions. La planification à plus haut niveau est autorisée à ignorer les préconditions d’actions de plus bas niveau afin de dériver la structure générale d’un plan exécutable. A chaque niveau d’abstraction, le planificateur ne prend en compte que les préconditions de niveau le plus élevé.

La seconde approche d’abstraction se base sur une hiérarchisation des opéra- teurs. Elle consiste à définir des opérateurs à différents niveaux d’abstraction. Cette approche permet de décrire des tâches très complexes qui sont constituées d’autres tâches plus élémentaires. La hiérarchisation des opérateurs se retrouve au départ dans le planificateur NOAH (Sacerdoti,1975) avec ensuite une amélioration dans NONLIN (Tate,1977). NOAH représente le problème de planification comme une liste de tâches partiellement ordonnées. Les informations sur la manière de décom- poser les tâches sont encodées par des méthodes dans ce qui est appelé des soup

code. Les relations entre les tâches sont appréhendées en introduisant un ordre ou

des variables de restriction entre tâches. Dans NONLIN, les soup code de NOAH sont remplacés par des opschemas qui représentent la manière de décomposer les tâches. NONLIN introduit deux structures de données qui sont la TOME (Table of

Multiple Effects) et le GOST (Goal Structure) pour garder la trace des effets des

Dans les années 90, le système DIVISER (Vere,1990), une extension de NOAH et NONLIN, a été développé afin de prendre en compte les tâches duratives et les tâches lièes à des contraintes temporaires. Les travaux de Wilkins (1984) sur SIPE ont introduit la gestion de ressource et l’interaction avec l’utilisateur du planificateur. Le planificateur O-Plan de (Currie et Tate,1991), quant à lui propose une extension plus générale de NONLIN pour la création et l’exécution de plan. O-PLan représente le plan en utilisant différents types de contraintes.

Les planificateurs hiérarchiques ont été utilisés pour des applications réelles. NOAH a été utilisé pour la supervision des apprentis ingénieurs en mécanique. NONLIN a été utilisé pour l’entretien des turbines électriques. DIVISER a été utilisé pour l’enchainement des missions du vaisseau spacial VOYAGER. SIPE a été appliqué pour la planification des missions sur les portes-avions.

2.1.3.b Principe de fonctionnement

Le principe de fonctionnement d’un planificateur hiérarchique consiste à produire à chaque niveau, un plan explicite qui résout le problème posé au « niveau d’ab- straction » considéré. Le planificateur commence par dresser un plan à haut niveau, ce plan est ensuite enrichi au fur et à mesure que le planificateur progresse dans les différents niveaux, ceci jusqu’à l’obtention d’un plan uniquement composé de tâches de bas niveau.

2.1.3.c Avantage

Les avantages de la planification hiérarchique se décomposent en trois grandes lignes :

– l’exploitation des connaissances expertes spécifiques au domaine. Ces con- naissances sont représentées dans les différentes hiérarchies.

– la réduction de l’espace de recherche au travers du raisonnement sur les dif- férentes couches d’abstractions,

– la résolution des interactions entre sous-tâches représentée par les contraintes d’ordres partielles ou totales.

2.1.3.d Planification HTN

C’est au milieu des années 90 que Erol et al puis Nau et al développent une base formelle, des algorithmes complèts et une analyse de complexité de la planification hiérarchique. Dés lors, le terme planification hiérarchique fait référence à la planifi- cation HTN (Hierarchical Task Networks) qui est une approche de hiérarchisation des opérateurs dans laquelle le domaine de planification spécifie la façon de réaliser les buts. Les planificateurs HTN les plus connus sont UCMP (Erol et al., 1994), SHOP (Nau et al.,1999) et SHOP2 (Nau et al.,2003)

Éléments de base : les éléments de base proposés pour la formalisation des réseaux de tâches hiérarchiques (Hierarchical Task Network HTN) sont les états du

système, les tâches primitives ou composées et les méthodes de décomposition.

États du système : un état est une liste de symboles propositionnels encore appelés atomes. Les atomes qui apparaissent dans cette liste sont tous satisfaits. Ceux qui n’apparaissaient pas sont tous non-satisfaits.

Tâche : une tâche est une liste de la forme t(h1, h2, ..., hn) où t représente

le nom de la tâche et les hi des arguments de la tâche. Il existe deux types de tâches dans un HTN. Les tâches composées et les tâches primitives. Les tâches

2.1. Planification de tâches et contrôle d’exécution 51

composées se décomposent en sous-tâches de façon récursive jusqu’à atteindre des tâches primitives directement exécutables par le système.

Tâches primitives : elles sont de la forme t(h1, h2, ..., hn). Elles correspondent

à des actions dans la planification de type STRIPS. Les préconditions et les effets des tâches primitives sont déclarés en utilisant des opérateurs. Ainsi, le nom d’une tâche primitive est celui d’un opérateur qui décrit son exécution.

Opérateurs : les opérateurs sont de la forme(Operator o, pre, eff)où o est la tâche primitive, pre l’ensemble des atomes qui décrivent les conditions d’activation de o et eff l’ensemble des atomes qui décrivent les effets de o.

Tâches composées : elles sont également de la forme t(h1, h2, ..., hn). Elles

correspondent à un réseau de tâches. Une tâche composée décrit un plan d’action en y ajoutant les conditions d’exécution des actions qu’elle comporte. Elle vise à informer le planificateur sur les sous solutions possibles. Les tâches composées sont associées à des méthodes qui permettent de décomposer des tâches en sous tâches. Les sous tâches peuvent être partiellement où totalement ordonnées.

Méthodes : les méthodes sont de la forme(Methodem, pre, T)où m définit le nom de la tâche composée, pre l’ensemble des atomes qui décrivent les conditions d’activation de la méthode m et T une liste de sous tâches.

2.1.3.e Représentation d’un HTN

Le graphe de recherche du planificateur est un arbre ET-OU. Chaque sous-arbre représente un sous-problème. Les nœuds ET de cet arbre sont des sous-problèmes qui ont pour fils d’autres sous-problèmes plus élémentaires. Un nœud ET est résolu à condition que tous ses fils soient résolus. Un nœud OU de l’arbre est aussi un sous- problème. Chacun de ses fils représente une manière de résoudre le sous problème. Un nœud OU est résolu à condition qu’un au moins de ses fils soit résolu. Si plusieurs nœuds OU sont applicables, des heuristiques peuvent être utilisées pour choisir le nœud le plus adapté à la résolution du sous problème. Dans un HTN, les nœuds OU sont encodés dans les méthodes et un nœud ET est une réduction d’un nœud OU.

2.1.3.f Approche de planification dans les HTN

Les systèmes de planification HTN, sont des systèmes de planifications non linéaires combinés à une hiérarchisation des actions. Le planificateur prend en entrée l’état initial et un réseau de tâches. Le fonctionnement d’un planificateur HTN, est basé sur une expansion des actions de haut niveau en actions de plus bas niveaux. Pour chaque action abstraite il existe des décompositions dont l’application aboutit à des actions partiellement ordonnées qui doit être introduites dans le plan. Ainsi, une action abstraite du plan courant peut être décomposée de différentes manières. Ces décompositions sont généralement stockées dans une librairie de plans. Le choix d’une décomposition dépend d’un ensemble de conditions. Les planificateurs HTN, ignorent les préconditions, les effets et les liens causaux entre les actions d’une décomposition tant que celle-ci n’est pas choisie. Le fonctionnement d’un planificateur HTN est de ce fait une forme de réduction de problème auquel l’on ajoute du « backtracking ». Le principe de l’algorithme de fonctionnement peut être décrit comme suit :

1. Choisir l’une des tâches possibles au niveau d’abstraction en cours. 2. S’il s’agit d’une tâche primitive, appliquer l’opérateur et passer en 4

3. S’il s’agit d’une tâche non-primitive appliquer les méthodes de décomposition

4. Appliquer les contraintes

5. Retour en arrière ( backtrack) et essai d’autres décompositions si aucune

méthode n’est applicable, ou s’il n’existe pas moyen de satisfaire une con- trainte.

Le plan solution est une séquence de tâches primitives.

Dans la suite, nous nous focaliserons sur les architectures robotiques permettant de concevoir les systèmes complexes autonomes.

2.1.4 Architecture robotique pour la planification dans les systèmes com-