• Aucun résultat trouvé

2.2 Principaux algorithmes d’apprentissage

3.1.2 L’approche par AMAS

Nous présentons maintenant l’approche par AMAS. Nous commençons par en faire une présentation générale, puis nous nous intéressons à la notion de coopération particulière à cette approche. Enfin, nous détaillons les règles générales guidant le comportement coopé- ratif d’un agent au sein d’un AMAS.

3.1.2.1 Présentation générale

Face à un nouveau problème à résoudre, l’approche la plus classique consiste à définir clairement le problème et à le diviser en différents sous-problèmes, puis à réitérer ce pro- cessus jusqu’à l’obtention de sous-problèmes faciles à résoudre. Cette approche est qualifiée de top-down. Cependant, cette approche peut s’avérer inadaptée pour résoudre certains pro- blèmes, notamment lorsque ces problèmes sont incomplètement spécifiés.

A l’opposé de l’approche top-down classique, l’approche par AMAS (dont une descrip- tion complète est notamment fournie par [Georgé et al., 2011]) est une approche bottom-up, où les différentes sous-parties du système sont définies dans le but d’obtenir un comporte- ment global répondant à un problème donné. La fonctionnalité recherchée n’est pas spécifiée a priori ; il s’agit plutôt d’attribuer aux différents agents un comportement local assurant que la fonctionnalité globale obtenue soit satisfaisante pour répondre au problème. Dans ce cas là, le système est dit en adéquation fonctionnelle avec son environnement.

Pour obtenir ce résultat, l’approche par AMAS se base sur le théorème de l’adéqua- tion fonctionnelle énoncé par [Camps, 1998]. Ce théorème stipule que, pour tout système fonctionnellement adéquat, il existe au moins un système à milieu intérieur coopératif qui réalise une fonction équivalente dans le même environnement. Un AMAS est donc composé d’agents possédant leur propre objectif, et interagissant entre eux de façon coopérative. Les interactions coopératives entre les différents agents mènent alors le système vers l’adéqua- tion fonctionnelle.

3.1.2.2 Coopération

Une définition générale de la coopération est donnée par [Picard, 2004], qui la caractérise comme le juste milieu entre l’altruisme (propension à favoriser les objectifs des autres avant les siens) et l’égoïsme (propension à favoriser ses propres intérêts avant ceux des autres). Un agent coopératif cherche donc à atteindre aussi bien ses objectifs qu’à aider les autres agents à atteindre les leurs, de façon aussi égalitaire que possible.

Plus précisément, la théorie des AMAS établit qu’un agent est en situation coopérative dès lors qu’il respecte les trois méta-règles suivantes :

– tout signal perçu par l’agent est compris par lui sans ambiguïté ;

– toute information provenant de ses perceptions est utile à son raisonnement ;

– son raisonnement lui permet d’effectuer des actions utiles aux autres et à l’environne- ment.

Dans le cas où un agent se trouve face à une situation pour laquelle une de ces méta- règles n’est pas respectée, cette situation est appelée “Situation Non Coopérative”, ou SNC. L’agent doit alors soit changer sa fonction partielle, soit changer de place dans l’organisation actuelle (voir section 3.1.2.4).

Sept types génériques de SNC que peut rencontrer un agent (soit vis-à-vis d’un autre agent, soit vis-à-vis de son environnement) ont été mises en évidence à partir de la définition de la coopération [Georgé et al., 2011] :

1. Incompréhension : l’agent perçoit un signal qu’il ne comprend pas ;

2. Ambiguïté : l’agent attribue plusieurs interprétations possibles pour un signal perçu ; 3. Incompétence : l’agent n’est pas capable d’exploiter le signal perçu lors de son raisonne-

ment ;

4. Improductivité : l’agent ne peut tirer aucune conclusion à partir du signal perçu ;

5. Concurrence : l’agent croit que son action et celle d’un autre agent vont aboutir au même résultat ;

6. Conflit : l’agent croit que la réalisation de son action est incompatible et avec celle d’un autre agent (elle empêche cette autre agent de réaliser sa propre action) ;

7. Inutilité : l’agent croit que son action ne va ni le rapprocher de son but, ni aider un autre agent.

[Bonjean et al., 2009] définit le comportement d’un agent coopératif comme constitué de deux comportements distincts : un comportement nominal, décrivant sa fonctionnalité au sein du système et les actions qu’il réalise pour atteindre ses objectifs indépendamment des SNC qu’il est susceptible de rencontrer, et un comportement coopératif qui lui permet de prévenir, détecter et résoudre les SNC qu’il est susceptible de rencontrer. Le comportement coopératif des agents est à l’origine de l’auto-adaptation d’un AMAS : au fur et à mesure que les différentes SNC sont résolues ou évitées, le système tend vers l’adéquation fonctionnelle.

3.1.2.3 Notion de criticité

Pour établir un comportement coopératif, l’approche par AMAS intègre la notion de criticité. Selon [Lemouzy, 2011], la criticité correspond à “la notion de distance entre la situation courante et le but local de l’agent”. Ainsi, “plus l’agent est éloigné de son but, plus il estime sa situation courante comme critique”. Un agent est coopératif s’il agit de manière à aider l’agent de son voisinage qu’il considère être le plus critique. S’il est lui même l’agent le plus critique, il cherche alors à réduire sa propre criticité.

En tant qu’agents coopératifs, tous les agents au sein d’un AMAS tentent en continu de réduire la criticité de l’agent le plus critique (éventuellement lui-même), tout en évitant que le processus visant à aider cet agent n’amène un autre agent à devenir encore plus critique. Éventuellement, si un agent s’avère ne pas être en mesure d’aider l’agent le plus critique de son voisinage, son attitude coopérative l’amène à aider d’autres agents moins critiques, dans l’espoir que ces derniers soient en mesure d’aider l’agent le plus critique grâce à la réduction de leur propre criticité. Cette notion de criticité est notamment employée dans la résolution de certaines SNC, pour déterminer quelle SNC résoudre en premier par exemple.

3.1.2.4 Mécanismes coopératifs

Lorsqu’un agent coopératif se retrouve face à une SNC, son objectif est d’une part de réparer cette SNC (pour revenir à un état coopératif), et d’autre part d’éviter dans la mesure du possible de se retrouver à en générer de nouvelles (nous parlons alors de prévention de SNC). Pour cela, il réalise des actions dites “coopératives”. [Capera, 2005] a décomposé ces actions coopératives d’agents AMAS en trois types de mécanismes :

1. Ajustement (ou tuning) : l’agent réalise des ajustements limités à son état interne afin de modifier sa fonctionnalité ;

2. Réorganisation : si les mécanismes d’ajustement ne sont pas suffisants, l’agent modifie ses liens d’interaction avec les agents de son voisinage ;

3. Évolution : si les mécanismes d’ajustement et de réorganisation ne sont pas suffisants, l’agent utilise un mécanisme d’évolution, autrement dit de création ou de suppression

d’agents. La création d’un agent se produit quand aucun des agents existants n’est ca- pable de produire une fonctionnalité jugée nécessaire par un des agents existants, ou lorsqu’un agent est surchargé. La suppression d’un agent se produit lorsque la fonc- tionnalité produite par cet agent devient inutile pour son environnement.

La principale différence entre ces trois catégories de mécanismes réside dans l’impact que leur application entraîne au niveau du système multi-agent. En effet, les mécanismes de tuning n’ont qu’un impact léger sur le système car les modifications apportées se limitent à l’état interne de l’agent appliquant ce mécanisme. En revanche, les mécanismes d’auto- organisation, et à plus forte raison d’évolution, ont un impact bien plus important sur le système car ils modifient sa topologie. Afin de ne pas perturber inutilement les autres agents du système, un agent coopératif cherche toujours à minimiser l’impact que son comporte- ment coopératif aura sur le système. C’est pourquoi, si plusieurs mécanismes permettent de résoudre une SNC, un agent coopératif choisit de préférence un mécanisme de tuning, puis d’auto-organisation, et enfin seulement d’évolution.

3.1.2.5 Méthode ADELFE

L’approche par AMAS fournit donc une approche générale pour la conception de sys- tèmes auto-adaptatifs, qu’il convient d’instancier en fonction du problème à résoudre. Cette approche n’a encore jamais été appliquée à l’apprentissage du comportement de l’utilisateur en environnement ambiant. En revanche, elle a été appliquée à des domaines partageant certaines caractéristiques avec l’ambiant, notamment en terme de dynamisme (apparition/ disparition d’entités) et de distribution. C’est par exemple le cas du contrôle de bioprocédés ([Videau et al., 2010]), du contrôle manufacturier ([Kaddoum, 2011]) et du contrôle de mo- teurs thermiques ([Boes et al., 2013]). Cependant, en dépit des performances obtenues par l’application des AMAS à différents problèmes, la conception d’un tel système présente de nombreuses difficultés.

Plusieurs méthodes ont été proposées pour aider à la conception d’un système multi- agent, telles que :

– Tropos de [Bresciani et al., 2004], une méthode de développement orientée agent qui se base sur une approche orientée buts, et qui utilise la notation i* pour définir les agents sous la forme d’acteurs. Principalement, Tropos utilise deux types de diagrammes : les diagrammes acteur qui décrivent les dépendances entre acteurs, et les diagrammes but qui illustrent l’analyse des buts et des plans du point de vue acteur ;

– INGENIAS de [Pavón, 2006], une méthode dont l’objectif est d’aider au dévelop- pement de systèmes multi-agents en divisant le problème en plusieurs aspects plus concrets, qui forment les différentes perspectives d’un système multi-agent (perspec- tives Agent, Organisation, Environnement, Buts/Tâches, et Interaction). Cette mé- thode est donc fondée sur la description de ces différentes perspectives (sous la forme de méta-modèles) afin de permettre aux concepteurs de définir itérativement l’archi- tecture et les fonctionnalités de leurs systèmes multi-agents ;

– PASSI de [Cossentino et al., 2008], une méthode de développement couvrant tout le cycle de développement d’un SMA depuis la spécification des besoins jusqu’à l’implé- mentation, en se basant sur 5 modèles : le modèle de collecte des besoins, le modèle

de société d’agent, le modèle d’implémentation d’agent, le modèle de code, et enfin le modèle de déploiement.

Plus spécifique au développement des AMAS, la méthode ADELFE (Atelier de DEve- loppement de Logiciel à Fonctionnalité Emergente) a été proposée par [Picard, 2004], puis étendue par [Rougemaille, 2008] et [Bonjean et al., 2013]. Elle s’appuie sur le processus RUP (Rational Unified Process) pour guider le concepteur durant les 5 phases de la conception d’un AMAS :

1. Les besoins préliminaires qui permettent d’obtenir une description précise et consen- suelle du problème, sans nécessiter de langage de modélisation spécifique ;

2. Les besoins finals qui correspondent à l’étude de l’environnement du système à conce- voir et des interactions avec les utilisateurs ;

3. L’analyse qui permet d’identifier les différentes entités du système à concevoir, d’étu- dier et évaluer la pertinence de l’approche par AMAS pour résoudre le problème, puis d’identifier les agents et leurs interactions ;

4. La conception qui permet de spécifier le langage d’interaction entre agents, ainsi que les comportements des différents agents ;

5. Le codage durant lequel le système est implémenté.

Chaque phase est divisée en plusieurs activités, elles-mêmes divisées en plusieurs étapes. Les activités et étapes en gras dans la figure 3.2 sont spécifiques à la conception d’un AMAS.