• Aucun résultat trouvé

2.4 Ouverture dans les systèmes multi-agents

2.4.1 Systèmes multi-agents

Les systèmes multi-agents (SMA) désignent des systèmes informatiques consti- tués d’ensemble d’entités logicielles appelés agents qui interagissent, le plus souvent selon des modes de coopération, de concurrence ou de coexistence [9]. Dans cette section, nous n’allons pas faire un état de l’art exhaustif de l’historique et de l’évolu- tion des SMA, les lecteurs peuvent se référer aux publications [138, 86, 127, 9] qui présentent un bonne synthèse des différents résultats de recherche dans le domaine. Cependant, à partir de ces articles, nous nous sommes intéressés aux caractéristiques spécifiques de ces systèmes qui nous permettent d’analyser la problématique d’ou- verture. Ainsi, il existe de nombreuses définitions du concept agent plus ou moins équivalentes parmis lesquels nous avons choisi celle de Jennings, Sycara et Wool- dridge [138] qui est la suivante.

Un agent est un système informatique, situé dans un environnement, et qui agit d’une façon autonome et flexible pour atteindre les objectifs pour lesquels il a été conçu. Les notions : « situé », « autonome » et « flexible » sont définies comme suit : – situé : l’agent est capable d’agir sur son environnement à partir des entrées per-

çues qu’il reçoit de ce même environnement.

– autonome : l’agent est capable d’agir sans l’intervention d’un tiers (humain ou agent) et contrôle ses propres actions ainsi que son état interne.

– flexible : l’agent dans ce cas est :

– capable de répondre à temps : l’agent doit être capable de percevoir son envi- ronnement et d’élaborer une réponse dans les temps requis.

– proactif : l’agent doit exhiber un comportement proactif et opportuniste, tout en étant capable de prendre l’initiative au "bon" moment.

– social : l’agent doit être capable d’interagir avec les autres agents (logiciels et humains) quand la situation l’exige afin de compléter ses tâches ou aider ces agents à accomplir les leurs.

Ouverture dans les systèmes multi-agents 24 de résolution ou des informations limitées pour la résolution d’un problème. Cette caractéristique est le fondement même des SMA qui est basé sur une décomposition d’un problème complexe en sous problèmes et une distribution de ces derniers à plu- sieurs agents. Chaque agent résout le sous problème qui lui est confié et l’agrégation des solutions partielles de chaque agent contribue à la solution du problème complexe initial.

Ainsi, les premiers travaux en SMA se sont essentiellement focalisés sur cette problématique de distribution [91, 94, 139]. En effet, un SMA était quasiment un sys- tème fermé dans lequel, tous les agents étaient programmés par un même concepteur qui intégrait directement dans leur code toutes les primitives ou fonctions dont ils se serviraient pour la résolution de sous problème(s) dont ils auraient la charge.

Il ne se posait donc pas de problématique d’interopérabilité et plus précisément d’interaction entre agents inconnus [53] c’est-à-dire développés par des program- meurs différents de telle sorte que chaque agent n’a pas de connaissance préalable des agents avec lesquels il interagira dans un SMA.

De même, il ne se posait pas de problématique d’arrivée et départ d’agents incon- nus dans un SMA. Tous les agents étaient crées ou étaient auto-crées au lancement du système à partir de prototypes de code qui leurs permettaient de s’exécuter sans mécanismes spécifiques d’intégration.

Quant au contrôle, puisque le concepteur du SMA était également celui qui dé- veloppait les agents, ces derniers étaient programmés de façon à toujours avoir des comportements bienveillants, c’est-à-dire des comportements qui exécutent les taches ou résolvent les sous problèmes pour lesquels ils ont été programmés sans jamais nuire volontairement à un autre agent du SMA ou au SMA lui même.

Un autre aspect important et souvent négligé dans les premiers travaux en SMA est l’environnement. En effet, l’environnement d’un SMA est constitué d’agents et parfois d’autres ressources que peuvent utiliser les agents [137, 136, 135]. Exemple : un agent robot nettoyeur utilise un capteur pour obtenir les informations lui permettant de déterminer quelles sont les zones à nettoyer, ou une batterie pour se recharger en énergie. Un agent se distingue d’une ressource par le fait qu’il possède des capacités décisionnelles ; tandis que les ressources sont des entités passives et ont des capacités exclusivement fonctionnelles [135]. En d’autres termes, contrairement aux agents, les ressources ne sont pas autonomes. Leurs exécutions se font uniquement par invocation d’instructions ou appels de méthodes par une autre entité –programme, agent–, elles sont programmées pour fournir un certains nombre de fonctions ou services.

Cependant, dans les premiers travaux en SMA, l’environnement était quasiment intégré dans le code des agents. En effet, un agent était programmé avec toutes les

Ouverture dans les systèmes multi-agents 25 connaissances sur les ressources de son environnement dont il devait avoir besoin au cours de son existence. Cette approche avait pour conséquence de surcharger le code des agents qui aurait pu être évité en envisageant une découverte autonome des ressources nécessaires à la réalisation de tâche de l’agent.

La problématique d’ouverture est donc récente dans le domaine des SMA [49, 20, 8] et comme toute nouvelle problématique, elle a connu des évo- lutions qui ont abordé progressivement des techniques de gestion d’intégration de nouveaux agents dans un SMA avec le Broker [36], des moyen de gestion des inter- actions entre agents inconnus avec le développement de langage de communication d’agents tel que KQML11 [90]. Ces travaux ont contribué au développement de

standards par le consortium FIPA12 afin d’uniformiser certains résultats et ainsi de

favoriser des recherches vers le développement de SMA de plus en plus ouverts. Nous approfondirons cette analyse dans les sections qui suivent en étudiant les problèmes d’ouvertures spécifiques aux systèmes multi-agents en suivant le schéma des propriétés présenté dans la section 2.2.