• Aucun résultat trouvé

Concept d’agents

CHAPITRE 3 AGENTS MOBILES ET LEURS SPÉCIFICITÉS

3.1 Concept d’agents

La définition d’un agent suscite de nombreuses polémiques dans le milieu de la recherche scientifique et industrielle. En simplifiant au maximum, il y a d’un côté ceux qui considèrent les agents presque comme des êtres humains et de l’autre ceux qui les assimilent à de simples logiciels. Ainsi, Ferber [Ferber, 1999] définit un agent comme une entité physique ou virtuelle qui possède les propriétés suivantes:

 capable d’agir dans un environnement,

 capable de communiquer directement avec d’autres agents,  capable de se mouvoir par un ensemble de tendances,  possède des ressources propres,

 capable de percevoir (mais de manière limitée) son environnement,

 ne dispose que d’une représentation partielle de cet environnement (et éventuellement aucune),

 possède des compétences et offre des services,  peut éventuellement se reproduire,

 son comportement tend à satisfaire ses objectifs, en tenant compte des ressources et des compétences dont elle dispose, et en fonction de sa perception, de ses représentations et des communications qu’elle reçoit.

À l’opposé, nombreux sont ceux qui considèrent un agent comme une ''entité autorisée à agir au nom de quelqu’un d’autre''. Une telle définition met sur le même plan un agent intelligent, un agent de police, un agent de sécurité ou un agent commercial. En conséquence, la distinction entre un agent intelligent et un simple logiciel demeure très floue.

Malgré ses limitations, cette vision constitue un point de départ pour une définition qui soit suffisamment réaliste sans être réductrice. On peut ainsi affirmer qu’un agent intelligent est une entité logicielle qui possède des attributs propres et qui agit dans le but d’accomplir un certain nombre de tâches au nom d’une autre entité (un autre agent ou une personne). Le problème est maintenant de définir les attributs propres à un agent et, sur ce point, les polémiques sont féroces.

Les principales caractéristiques d’un agent sont:

 L’autonomie: les agents opèrent sans intervention directe de l’être humain ou autre instance et ont néanmoins un certain contrôle sur leurs actions et leur état interne.  L’interactivité: les agents interagissent avec les autres agents ainsi qu’avec les

humains.

 La réactivité: les agents perçoivent leur environnement qui peut être soit le monde physique, soit un utilisateur via une interface graphique, soit l’Internet, soit toutes ces modalités à la fois. Ils répondent donc aux changements qui apparaissent.

 Le comportement intentionnel: les agents ne réagissent pas simplement en réponse à leur environnement, ils sont capables d’avoir un comportement dirigé vers un but et de prendre des initiatives.

 La capacité d’apprentissage: l’agent est capable de s’adapter aux directives de son utilisateur en analysant et interprétant ses actions passées.

 La flexibilité: les actions d’un agent ne sont pas entièrement préétablies. L’agent est en effet capable de choisir ce qu’il va entreprendre et selon quelle séquence, en fonction de l’environnement externe.

 L’auto-démarrage: contrairement aux logiciels traditionnels, un agent peut décider du moment précis pour entamer une action toujours en fonction de l’environnement externe.

 La mobilité: certains agents peuvent être stationnaires comme le modèle traditionnel client-serveur. Ils résident soit sur la machine de l’utilisateur, soit sur le serveur. D’autres agents peuvent être mobiles comme l’illustre la figure 3.1, c’est-à-dire qu’ils se baladent sur le réseau. Ils peuvent se déplacer d’une machine à une autre pendant l’exécution des instructions en amenant avec eux leur environnement d’exécution. Ces agents peuvent se présenter à d’autres agents qui peuvent leur fournir certains services, ou servir de point de rencontre entre différents agents. Nous avons vu dans la description des différents degrés de mobilité que la migration forte permet de déplacer un processus, ou un agent, avec son code (s’il n’est pas disponible sur la machine destinataire), ses données et son contexte d’exécution. Ainsi, après une migration, l’exécution se poursuit au point où elle s’est arrêtée à la machine source. Cependant, ce type de migration, qui se base sur une capture de l’état d’exécution d’un agent, est difficile et coûteuse à réaliser surtout dans les environnements hétérogènes où les agents vont évoluer. Il faut faire correspondre la capture d’un état d’exécution d’un agent dans les différents interprètes.

Pour certains chercheurs, selon les conceptions actuelles de l’intelligence artificielle (IA), le terme ''agent'' a un sens plus fort et plus spécifique. Pour eux, un agent est un système qui, en plus des propriétés précédentes, est conceptualisé selon des notions que l’on attribue plus couramment aux humains. Par exemple, il est courant en intelligence artificielle de caractériser

un agent par des notions purement cognitives comme les connaissances, les convictions, les intentions ou les obligations. Certains chercheurs sont allés plus loin et parlent d’agents émotionnels. réponse Réseau Serveur requête réponse requête réponse Client Machine B Agent Agent Machine A

Figure 3.1 Modèle de l’agent mobile

À partir de quel moment peut-on parler d’un agent intelligent? Faut-il qu’il possède tout ou une partie de ces attributs? Le débat est interminable, peut-être insoluble et sûrement sans grand intérêt pour l’utilisateur final.

Dans le contexte du présent travail, un agent mobile est défini comme une entité informatique capable de raisonner, de naviguer sur l’infrastructure réseau pour s’exécuter sur un autre site éloigné, de chercher et de rassembler les résultats, de coopérer avec d’autres agents et de retourner au site d’origine après avoir complété la tâche assignée.

3.2 Efforts de normalisation des plateformes d’agents mobiles