• Aucun résultat trouvé

1.5 Systèmes multi-agents

1.5.2 Paradigme agent

La littérature est abondante sur le sujet des systèmes multi-agents (Ferber, 1999) (Jennings, 1998). Nous proposons d’aborder brièvement quelques définitions du concept d’agent :

Selon Ferber (Ferber, 1999) : « Un SMA est un macro-système constitué d’agents

autonomes qui interagissent dans un environnement commun pour réaliser une activité collective cohérente ».

Pour Demazeau (Briot, 2001) : « Un agent est une entité réelle ou virtuelle, dont le

comportement est autonome, évoluant dans un environnement, capable de le percevoir, d’agir dessus et d’interagir avec les autres agents ».

Pour Wooldridge (Wooldridge, 1998) : « Un agent est un système informatique capable

d’agir de manière autonome et flexible dans un environnement. La flexibilité étant composée de la réactivité, la pro-activité et des capacités sociales ».

Ainsi, un SMA peut être assimilé à un environnement informatique dans lequel « vivent » des entités logicielles appelées « agents ». Chaque agent représente une entité physique (robot, humain, animaux, etc.) ou virtuelle (agent technique de transfert de fichiers, agent compétence dans le cadre de nos travaux de thèse). On retiendra en synthèse qu’un agent : 1. Agit dans un environnement (le SMA).

2. Communique avec d’autres agents, que ces derniers soient hébergés dans le même SMA que lui ou bien dans un SMA externe via des protocoles normalisés (FIPA, 2002).

3. Possède des ressources qui lui sont propres.

4. Perçoit de manière limitée et non globale son environnement. Il dispose ainsi d’une vision limitée voire nulle de cet environnement.

5. Possède des capacités d’action appelées comportements.

6. Peut dialoguer et offrir des services aux autres agents qui le sollicitent.

7. Peut éventuellement se reproduire, c’est à dire générer d’autres agents dans le SMA. 8. Possède des buts qu’il cherche à atteindre, des objectifs à réaliser, via l’utilisation de

ressources, capacités d’action dont il dispose, perceptions de l’environnement dont il est capable, et actes de communication avec les autres agents.

L’une des caractéristiques fondamentales d’un agent est qu’il est, au moins partiellement, autonome. La littérature (Ferber, 1999) (Jennings, 1998) distingue quatre types d’agents répartis en deux catégories : cognitifs ou réactifs d’une part, téléonomiques ou réflexe d’autre part. De manière très réduite, un agent est dit « cognitif » s’il dispose d’une capacité d’apprentissage et de raisonnement, « réactif » dans le cas où il ne réagit qu’en fonction des stimuli reçus des autres agents. D’un point de vue comportemental, on distingue ceux dits « téléonomiques » (intentionnels dans le but de poursuivre des buts explicites) et « réflexes » (simplement induits par les perceptions). Le tableau 1 résume ce que nous venons de voir.

40

Agents Cognitifs Agents Réactifs

Comportement téléonomique Agents intentionnels Agents pulsionnels

Comportement réflexe Agents "modules" Agents tropiques

Tableau 1 : Les différents types d’agents

En général, un agent cognitif est intentionnel. Il cherche à atteindre des buts. Il existe cependant des agents dits « modules » n’ayant pas de buts précis à atteindre. C’est le cas, par exemple, des agents techniques dont nous avons parlé plus haut.

A l’opposé, les agents réactifs se divisent en 2 catégories :

Pulsionnel : agent ayant une « mission » et qui déclenche un comportement si une

condition n’est plus remplie dans l’environnement. Exemple : une valeur de seuil dépassée. • Tropique : agent pulsionnel sans « mission », réagissant uniquement sur variation de

l’environnement.

Selon Russel et Norvig (Russel, 2003), un agent peut être représenté par la figure 3.

Figure 3 Modèle multi-agents générique

Deux des premières applications reposant sur les technologies multi-agents furent réalisées au début des années 1980 :

1. L’une de contrôle du trafic aérien, basée sur les travaux de Cammarata, McArthur, et Steeb (Cammarata, 1983). Il s’agit de la mise en œuvre d’études de stratégies de

41

coopération pour la résolution de conflits entre les plans d’un groupe d’agents, ici d’avions.

2. L’autre de surveillance de véhicules, décrit par Corkill et Lesser (Corkill, 1983). Cette application est basée sur le système DVMT (Distributed Vehicle Monitoring Task) d’analyse de mouvements.

Il existe de nombreuses définitions de ce qu’est le paradigme Agent. Nous retiendrons que c’est ici, selon Gleizes, Bernon, Migeon, et Picard, « un paradigme pour le développement de

logiciels dans lesquels l’agent est un logiciel autonome qui possède un objectif, évolue dans un environnement dynamique et interagit avec d’autres agents au moyen de langages et de protocoles » (Gleizes, 2008). De manière classique, un objet − au sens programmation du terme − expose uniquement des attributs et des méthodes qui peuvent être accessibles depuis un programme extérieur à cet objet. Contrairement à cette approche plutôt « statique », les agents sont des logiciels dynamiques et autonomes qui introduisent une nouvelle manière de concevoir la programmation d’applications.

Dans un univers multi-agents, les applications ne sont plus implémentées sous la forme d’algorithmes où l’on décrit de manière explicite les appels de méthodes d’objet. On raisonne ici en terme de décomposition sous la forme d’agents autonomes qui échangent des informations entre eux, peuvent traiter des données issues de leur environnement et rendre des services. On retiendra finalement que le paradigme multi-agents offre la possibilité de ne plus implémenter l’algorithme de résolution d’un problème complexe de manière statique. C’est l’organisation des agents eux-mêmes qui permet cette résolution dans un environnement dynamique, évolutif et ouvert. On notera que les méthodes d’échanges entre agents au sein d’un SMA sont normalisées au travers, par exemple, d’AUML (Odell, 2001), de KQML (Finin, 1994) et de FIPA-ACL (FIPA, 2002).

Dans un Système multi-agents (Ferber, 1999) (Jennings, 199) un Agent possède des compétences qui sont mises en œuvre par des comportements. Mano, Gleizes et Glize (Mano, 2005) nous proposent, figure 4, une représentation de la mise en œuvre du comportement d’un agent où nous observons que les compétences ne sont qu’une partie des composantes internes qui le caractérisent.

42

Figure 4 Les différentes caractéristiques du comportement d'un agent

Dans leur publication « Des modèles hétérogènes de simulation par systèmes multi-agents » (Gutknecht, 1998) Gutknecht, Ferber, et Lieurain proposent le modèle AALAADIN qui possède 3 notions de base. Citons les auteurs :

«

1. L'agent : nous ne posons aucune contrainte ou pré-requis sur l'architecture interne de

l'agent et nous ne supposons pas de formalisme ou modèle particulier pour en décrire le comportement. L'agent est simplement décrit comme une entité autonome communicante qui joue des rôles au sein de différents groupes. Le caractère très générique de cette définition est volontaire : le constructeur de système appliquera à cette notion d'agent l'architecture d'action ou de communication idoine.

2. Le groupe : nous définissons le groupe comme la notion primitive de regroupement

d'agents. Chaque agent peut être membre d'un ou plusieurs groupes. Dans sa forme la plus simple, un groupe peut être vu comme un moyen d'identifier par regroupement un ensemble d'agents. D'une manière plus évoluée, le groupe peut être vu comme un SMA usuel. Un point majeur de cette définition est que les différents groupes peuvent se recouper librement. Un groupe peut être fondé par n'importe quel agent, par contre, l'admission à un groupe existant résulte d'une demande formulée par l'agent candidat. 3. Le rôle : c'est une représentation abstraite d'une fonction, d'un service ou d'une

identification d'un agent au sein d'un groupe particulier. Chaque agent peut avoir plusieurs rôles, un même rôle peut être tenu par plusieurs agents, et les rôles sont locaux aux groupes. De même qu'avec l'admission dans un groupe, la tenue d'un rôle doit être demandée par l'agent et n'est pas forcément accordée.

43

Le choix que nous avons fait dans nos travaux2 consiste à proposer le modèle théorique des « Agents Compétence ». Dans ce nouveau modèle, les compétences ne sont plus assimilées à la seule notion de comportement d’un agent, mais deviennent des agents à part entière. Nous nous insérons alors pleinement dans la définition de l’agent proposée par les auteurs au point 1 ci-dessus, qui ne présume pas d’un formalisme standardisé de ce qu’est un agent.