next up previous contents
suivant: Le cas du jeu monter: La coopération comme base précédent: Adopter une attitude   Table des matières

Tolérer les pannes

La détection des pannes est un des élément les plus cruciaux pour chacun des agents lorsqu'il s'agit de manipuler son environnement. La détection des pannes et le contrôle des performances d'un agent permet d'éviter les problèmes de dead-lock (boucle infinie basée sur l'attente d'une condition non réalisable) et d'éviter les stratégies non optimales. Un contrôle régulier et relativement simple de l'environnement suffit à résoudre ces problèmes. Mais dans la problématique des systèmes multi-agents, la détection et le contrôle des pannes repose sur un mécanisme plus complexe. Une panne peut être de plusieurs natures: un agent oublie d'indiquer aux autres qu'il a terminé une action dont les autres ont besoin, un agent oublie d'exécuter une action dont les autres agents attendent le résultat, un agent oublie de demander à un autre agent d'exécuter une action dont il attend le résultat, un agent réussit de manière inattendue une action considérée comme impossible mais les autres ne prennent pas en considération cette réussite et se comportent de manière non optimale, un agent décide d'effectuer une action qu'un autre agent entame au même moment mais tous les deux renoncent à la continuer croyant que l'autre s'en chargera, etc. Milind TAMBE décrit dans [#!tambe-1997b!#] quelques unes de ces problématiques appliquées à la simulation militaire.

La détection des pannes est un problème qu'on peut en partie résoudre par une analyse constante du système et par la mesure de ses performances (un agent du système peut être dédié à la détection des pannes). En revanche, la prédiction des pannes est structurellement difficile. En effet, une panne est par nature un échec non prédictible. Ainsi, un système multi-agents aura tout intérêt à être muni d'un système performant de récupération d'échecs et de pannes. Notamment, la granularité du traitement des pannes est un paramètre à prendre en compte: selon la gravité de la panne, un agent tente de la résoudre seul ou il décide que le système tout entier est concerné et doit être mis au courant de la nature de la panne et des remèdes à y apporter. D'une manière générale et à condition que le coût de la communication soit inférieur au bénéfice, lorsqu'un agent du système est incapable d'exécuter sa part du plan global, il est de sa responsabilité d'avertir le reste du système de la nature de l'échec rencontré et ainsi d'initier un processus de recouvrement concerté. Si le coût de l'annonce d'un échec est important, les agents d'un système doivent prendre eux-mêmes en charge la surveillance des actions des membres de leur système.

Le recouvrement implique à la fois une réévaluation totale ou partielle des plans engagés, mais aussi une réponse, soit par le contournement du problème (adoption d'une solution annexe), soit par une nouvelle tentative d'exécution du plan. On trouve dans [#!tambe-1997b!#] un exemple de mécanisme de recouvrement de pannes: Milind TAMBE définit des « opérateurs » d'équipe, qui sont des actions jointes dans lesquelles chacun des agents du système joue un rôle précis (par exemple, l'opérateur engager opposant trouve sa place dans le cas d'une simulation de combat aérien). Chacun de ces opérateurs est régulièrement évalué: chaque agent engagé dans un opérateur détermine grâce à une heuristique critique s'il est possible de l'achever. Si ce n'est pas le cas et que la raison est l'échec d'un des rôles (typiquement dans le cas de la simulation de combat aérien, un hélicoptère abattu), alors l'agent évaluateur prend en charge ce rôle s'il en est capable et communique ce changement. S'il en est incapable, il attend qu'un autre agent le fasse pour lui (et potentiellement, détruit l'opérateur si aucun n'en est capable).

Dans [#!parker-1998!#], Lynne E. PARKER définit la méthode ALLIANCE, une méthode alternative. Chacun de ses agents passe en revue les comportements possibles et estime le désir qu'il a d'adopter chaque comportement (en se basant sur les informations reçues de ses récepteurs, de la communication avec les autres agents, des aspects inhibiteurs de son propre comportement ainsi que de ses motivations et buts). Le désir de chacun de ces comportements possibles augmente en fonction du temps et lorsque ce désir dépasse un certain seuil, le comportement est activé. Dans le cas où un agent $A$ est en charge d'un comportement (ce qui est déterminé par la communication ou par l'observation de son comportement), le désir de l'agent $B$ de voir ce comportement activé croît beaucoup plus lentement. Ainsi, si l'agent $A$ est incapable d'accomplir le comportement sélectionné, l'agent $B$ finira par activer ce comportement. Ce mécanisme est appelé l'impatience et permet une résolution émergente de pannes dans un système multi-agents.


next up previous contents
suivant: Le cas du jeu monter: La coopération comme base précédent: Adopter une attitude   Table des matières
Benjamin DRIEU 2001-10-12