Agent intelligent

Agent intelligent

Agent (informatique)

En informatique, un agent est l'équivalent d'un robot logiciel. C'est un programme qui accomplit des tâches à la manière d'un automate et en fonction de ce que lui a demandé son auteur.

Dans le contexte d'Internet, les agents intelligents sont liés au Web sémantique, dans lequel ils sont utilisés pour faire à la place des humains les recherches et les corrélations entre les résultats de ces recherches. Ceci se fait en fonction de règles prédéfinies. Ils sont capables d'une certaine autonomie, en particulier de dialoguer entre eux. Par exemple, l'agent intelligent d'une personne qui souhaite faire un achat sera capable de dialoguer avec les agents des vendeurs pour comparer prix, qualité et prestations.

Par ailleurs, l'étude des interactions entre agents, lorsqu'ils sont plusieurs, est le domaine spécifique des systèmes multi-agents, discipline de l'informatique apparue dans les années 1980.

Sommaire

Définition

On appelle agent une entité physique ou virtuelle :

  1. qui est capable d'agir dans un environnement ;
  2. qui peut communiquer directement avec d'autres agents ;
  3. qui est mue par un ensemble de tendances (sous forme d'objectifs individuels ou d'une fonction de satisfaction, voire de survie, qu'elle cherche à optimiser) ;
  4. qui possède des ressources propres ;
  5. qui est capable de percevoir (mais de manière limitée) son environnement ;
  6. qui ne dispose que d'une représentation partielle de cet environnement (et éventuellement aucune) ;
  7. qui possède des compétences et offre des services ;
  8. qui peut éventuellement se reproduire ;
  9. dont le 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.

Les agents mobiles

La programmation par agents mobiles est un paradigme de programmation des applications réparties, susceptible de compléter ou de se substituer à d'autres paradigmes plus classiques tel le passage de messages, l'appel de procédure à distance, l'invocation d'objet à distance, l'évaluation à distance. Elle est d'un grand intérêt pour la mise en œuvre d'applications dont les performances varient en fonction de la disponibilité et de la qualité des services et des ressources, ainsi que du volume des données déplacées. Le concept d'agent mobile facilite en effet la mise en œuvre d'applications dynamiquement adaptables, et il offre un cadre générique pour le développement des applications réparties sur des réseaux de grande taille qui recouvrent des domaines administratifs multiples.

Principes et avantages

Un agent logiciel est une entité autonome capable de communiquer, disposant d'une connaissance partielle de ce qui l'entoure et d'un comportement privés, ainsi que d'une capacité d'exécution propre. Un agent agit pour le compte d'un tiers (un autre agent, un utilisateur) qu'il représente sans être obligatoirement connecté à celui-ci, réagit et interagit avec d'autres agents.

Un agent mobile peut se déplacer d'un site à un autre en cours d'exécution pour accéder à des données ou à des ressources. Il se déplace avec son code et ses données propres, mais aussi avec son état d'exécution. L'agent décide lui-même de manière autonome de ses mouvements. Ainsi, la mobilité est contrôlée par l'application elle-même, et non par le système d'exécution comme dans le cas de la migration de processus dans les systèmes opératoires.

En pratique, la mobilité d'agent permet de rapprocher client et serveur et en conséquence de réduire le nombre et le volume des interactions distantes (en les remplaçant par des interactions locales), de spécialiser des serveurs distants ou de déporter la charge de calcul d'un site à un autre. Une application construite à base d'agents mobiles peut se redéployer dynamiquement suivant un plan pré-établi ou en réaction à une situation particulière, afin par exemple d'améliorer la performance ou de satisfaire la tolérance aux pannes, de réduire le trafic sur le réseau, ou de suivre un composant matériel mobile. La mobilité du code offre un premier niveau de flexibilité aux applications. La décentralisation de la connaissance et du contrôle à travers les agents, et la proximité physique entre les agents et les ressources du système renforce la réactivité et les capacités d'adaptation.

La mobilité ne se substitue pas aux capacités de communication des agents (la communication distante reste possible) mais les complète ; afin de satisfaire aux contraintes des réseaux de grande taille ou sans fil (latence, non permanence des liens de communication), les agents communiquent par messages asynchrones.

Propriétés

Le déplacement d'une unité en cours d'exécution d'une machine à une autre se heurte aux problèmes d'hétérogénéité des matériels et des logiciels. Les intergiciels destinés au développement d'applications réparties à grande échelle doivent permettre de s'en abstraire. Par ailleurs, ils doivent fournir les mécanismes permettant le déplacement des agents et la communication entre agents. En particulier, la communication doit (a priori) être insensible aux déplacements des agents : les messages à destination ou provenant d'un agent doivent être acheminés indépendamment des mouvements de cet agent.

La capacité de capture et de restauration de l'état d'exécution d'un agent, appelée mobilité forte, est un point critique. La mobilité faible représente la capacité pour un système de déplacer le code des agents accompagné seulement de données d'initialisation (et non de l'état complet). En fait, c'est essentiellement un problème d'abstraction et d'expressivité, lié à la manipulation des processus qui exécutent les agents, qui est posé : dans les systèmes à mobilité faible, c'est au programmeur de gérer lui-même le mécanisme de reprise. Cette propriété est liée (et parfois confondue) avec la capacité de se déplacer à n'importe quel point de son exécution (mobilité anytime).

Un frein à l'utilisation réelle de cette technologie réside cependant dans les problèmes de sécurité qu'elle introduit. La mise en place d'une politique de sécurité peut demander, d'une part la protection des ressources et des données des machines hôtes (en limitant les droits d'accès et la consommation des ressources), et d'autre part, la préservation de l'intégrité et de la confidentialité des agents eux-mêmes et de leurs communications.

La large diffusion de l'environnement Java (et l'utilisation courante des applets) a contribué à l'intérêt porté aux agents mobiles, de par les nombreux avantages offerts (machine virtuelle, sérialisation, invocation de méthode à distance, gestionnaires de sécurité…). Java ne permet cependant pas la capture de l'état d'exécution des threads, et par conséquent, l'état dans lequel le calcul sera repris à distance doit être explicitement programmé, ce qui réduit l'expressivité : cette propriété est appelée mobilité faible (il existe des solutions Java non-standard basées sur la modification de la machine virtuelle, ou un pré-traitement code source, ou une modification du bytecode).

Bibliographie et sources

  • (fr) Jacques Ferber, Les systèmes multi-agents : Vers une intelligence collective, InterEditions, 1995, ISBN 2-7296-0572-X.
  • Source de la 2e partie de cet article (issue du projet JavAct, laboratoire IRIT )
  • (en)Michael R. Genesereth and Nils J. Nilsson, Logical Foundations of Artificial Intelligence, 1987 [détail des éditions] , chap. 13 Intelligent-Agent Architecture, pp. 307-328
  • (en)Michael Wooldridge, An Introduction to MultiAgent Systems, 2002 [détail des éditions] 

Liens internes

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Agent (informatique) ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Agent intelligent de Wikipédia en français (auteurs)

Игры ⚽ Нужна курсовая?

Regardez d'autres dictionnaires:

  • agent intelligent — ● loc. m. ►INTART Programme utilisant l intelligence artificielle pour exploiter un réseau en fonction des besoins de son Maître (i.e. l utilisateur). On rêve de pouvoir lancer un agent sur un réseau puis d éteindre sa machine et de revenir une… …   Dictionnaire d'informatique francophone

  • Agent (Informatique) — En informatique, un agent est l équivalent d un robot logiciel. C est un programme qui accomplit des tâches à la manière d un automate et en fonction de ce que lui a demandé son auteur. Dans le contexte d Internet, les agents intelligents sont… …   Wikipédia en Français

  • Agent mobile — Agent (informatique) En informatique, un agent est l équivalent d un robot logiciel. C est un programme qui accomplit des tâches à la manière d un automate et en fonction de ce que lui a demandé son auteur. Dans le contexte d Internet, les agents …   Wikipédia en Français

  • Agent social — Agent Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom …   Wikipédia en Français

  • Intelligent design — This article is about intelligent design as promulgated by the Discovery Institute. For other uses, see Intelligent design (disambiguation). For the philosophical argument from design , see Teleological argument …   Wikipedia

  • Agent Systems Reference Model — The Agent Systems Reference Model (ASRM) is a layered, abstract description for multiagent systems. As such, the reference model * provides a taxonomy of terms, concepts and definitions to compare agent systems; * identifies functional elements… …   Wikipedia

  • Agent (informatique) — Pour les articles homonymes, voir Agent. En informatique, un agent est l équivalent d un robot logiciel. C est un programme qui accomplit des tâches à la manière d un automate et en fonction de ce que lui a demandé son auteur. Dans le contexte d… …   Wikipédia en Français

  • Agent logiciel — Un agent logiciel en informatique est un logiciel qui agit de façon autonome pour un humain ou un autre programme informatique. Sommaire 1 Définition 2 Exemples d agents logiciels 3 Voir aussi …   Wikipédia en Français

  • agent — ● n. m. ►INTART Ils sont électroniques ou intelligents. Voir agent électronique et agent intelligent. Remarque importante: pour l instant, ces machins n existent pas, et sont les proies de tout un tas de chercheurs qui ont chacun leur propre… …   Dictionnaire d'informatique francophone

  • Agent — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Sur les autres projets Wikimedia : « Agent », sur le Wiktionnaire (dictionnaire universel) Agent est un nom commun, ou plus rarement un nom …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”