Démarche de développement des systèmes
logiciels biomorphiques
LES SYSTEMES MULTI-AGENTS
Pour faire face à la complexité croissante des problèmes traités en informatique, l’Intelligence Artificielle Distribuée (IAD) a été introduite pour surmonter les « limites » de l’Intelligence Artificielle (IA) « classique » et depuis le milieu des années 70, l’IAD évolua et se diversifia rapidement. L’IAD est un domaine qui rassemble plusieurs disciplines incluant l’IA, la sociologie, l’économie, l’organisation et le management des entreprises…. etc (Bourdon 01, Wooldridge 99). L’IAD s’accentue sur le problème de fourniture de support de coordination et d’intégration de plusieurs solveurs (humains et automatiques) travaillant sur des problèmes multiples simultanément. Elle considère les concepts tels que l’interaction, l’organisation sociale et la société comme des métaphores et des générateurs de problèmes pour l’IA. La recherche et les problèmes IAD relèvent naturellement de deux domaines inter-reliés: La résolution coopérative de problème (RCP) (Cooperative Problem Solving : CPS): Où un problème complexe, particulier, peut être divisé entre plusieurs éléments de traitement ou nœuds, qui coopèrent et interagissent en terme de division et de partage d’expertise pour développer une solution globale. Chaque nœud possède une expertise suffisante de résolution du problème pour formuler une solution partielle au problème global en employant ses propres connaissances. Une coopération entre nœuds sera obligatoire pour développer une solution globale. Les Systèmes Multi-Agents (SMAs) : Concerné par la coordination du comportement intelligent d’une agrégation d’agents intelligents, caractérisés par leur domaine d’expertise et qui sont situés à des locations distinctes et géographiquement distribuées. L’objectif est la coordination des connaissances, d’expertise et de plans d’agents. L’interaction est guidée par des stratégies de coopération pour atteindre un objectif commun de haut niveau. Comme dans les CPS, les agents doivent partager des connaissances, mais en plus dans les SMAs, ils doivent aussi raisonner sur la façon de coordonner leurs activités vu qu’ils ont différentes perspectives et croyances et il n’y a pas de contrôle global ni de connaissances globalement consistantes. On est ainsi naturellement conduit à chercher à donner plus d’autonomie et d’initiative aux différents modules logiciels. Le concept de système multi-agent propose un cadre de réponse à ces deux enjeux complémentaires : l’autonomie et l’organisation (Demazeau 01). Jennings (Jennings 98a, 98b), explique que la recherche sur les systèmes composés de plusieurs agents autonomes était classiquement appelée intelligence artificielle distribuée. En tant qu’évolution de l’IA, un SMA s’adapte pour permettre l’interaction d’un ensemble d’individus appelés « agents ».
Le concept d’agent
Le concept d’agent est le résultat de quarante années de recherche en IA et en robotique. L’idée d’une entité conceptuelle capable de réaliser des tâches au profit d’un utilisateur était déjà bien établie au milieu des années 70. De cette origine, découlent des bases théoriques telles que les concepts de raisonnement, de représentation de connaissances et d’apprentissage. La technologie agent est originaire de plusieurs domaines qui sont (Caglayan 98) : • L’intelligence artificielle : avec les systèmes intentionnels, les systèmes de production, la théorie de raisonnement et les réseaux de neurones. • Le génie logiciel : avec les objets distribués, la commande à distance et le contrôle temps réel. • Les interfaces homme-machine : avec l’ingénierie cognitive, les expérimentations homme-machine, la modélisation de l’utilisateur, les systèmes intelligents d’enseignement assisté et la vision assistée par ordinateur. Par ailleurs, sur le plan pratique, l’approche agent est plus général et apporte des outils qui s’intègrent à de multiples applications et à des bases de données avec des extensions réseaux. Leur développement est motivé par un très grand nombre de champs d’application, on peut, entre autres, citer (Bourdon 01): • Le commerce électronique ; • La gestion et le suivi temps-réel des réseaux de télécommunication ; • La modélisation et l’optimisation de flux de marchandises ou de données ; • Le traitement de l’information dans des systèmes de type Internet (recherche, filtrage, présentation…) ; • La gestion du trafic routier et aérien ; • La planification automatique de réunions ; • L’optimisation des processus industriels de fabrication ; • L’analyse des stratégies d’entreprise ; • Les jeux électroniques ; • La conception et la réingénierie des composants informationnels dans les organisations ouvertes ; • L’étude et la simulation de phénomènes complexes dans des organisations humaines ou naturelles, comme la réaction à une situation de crise (tremblement de terre), et l’évolution des rôles ou des normes dans une société. Toutes ces applications ont en commun les deux propriétés suivantes : Une répartition/hétérogénéité intrinsèque : dans la mesure où les données à traiter : • existent dans des endroits différents (répartition dans l’espace), • apparaissent à des moments différents (répartition dans le temps), • se structurent dans des communautés dont les accès et les usages nécessitent de partager au moins une ontologie et au plus un langage et des protocoles d’échange et de communication associés (répartition sémantique), • et / ou se structurent dans des communautés dont les accès et les usages nécessitent des capacités de perception, de restitution et de raisonnement particulières (répartition fonctionnelle). Une complexité intrinsèque : dans la mesure où la dimension de ces systèmes n’est pas abordable par une seule machine et un seul logiciel. Cette dimension comprend aussi bien le nombre d’entités en jeu, que les interactions produites ou encore les distances parcourues entre ces acteurs, le volume des informations échangées, la fréquence de leur évolution ou encore leur diversité.
Définition d’un agent
Il n’existe pas actuellement une définition du concept agent acceptée universellement par les chercheurs concernés (Caglayan 98). l’une des premières définitions de l’agent a été fournie par Ferber (Ferber 99): Un agent est une entité autonome, réelle ou abstraite, qui est capable d’agir sur ellemême et sur son environnement, qui, dans un univers multi-agent, peut communiquer avec d’autres agents, et dont le comportement est la conséquence de ses observations, de ses connaissances et des interactions avec les autres agents. M. Wooldridge propose la définition suivante (Wooldridge 95) : Un agent est un programme informatique qui est situé dans un environnement et qui est doté de comportements autonomes (actions) lui permettant d’atteindre, dans cet environnement, les objectifs qui lui ont été fixé à sa conception. En outre, Jennings, Sycara et Wooldridge (Jennings 98b) ont proposé la définition suivante pour un agent: 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é”, “autonomie” et “flexible” sont définies comme suit: • situé: l’agent est capable d’agir sur son environnement à partir des entrées sensorielles qu’il reçoit de ce même environnement. Exemples: systèmes de contrôle de processus, systèmes embarqués, etc ; • 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 se caractérise par : – la réactivité, Capable de répondre à temps : l’agent doit être capable de percevoir son environnement et d’élaborer une réponse dans les temps requis ; – la pro-activité, l’agent doit exhiber un comportement proactif et opportuniste tout en étant capable de prendre l’initiative au bon moment ; – l’aspect social, l’agent doit être capable d’interagir avec les autres agents « logiciels et humains » quand la situation l’exige afin d’accomplir ses tâches. Il ressort de ces définitions les propriétés clés de l’agent comme l’autonomie, l’action, la perception et la communication. D’autres propriétés peuvent être attribuées aux agents. On cite en particulier, la rationalité, l’engagement et l’intention (Jarras 02).
Caractéristiques d’un agent
Commençons par les attributs les plus importants, nous présentons dans ce qui suit, une liste d’attributs que peut posséder un agent. Tous ne sont pas indispensables pour correspondre au profil d’agent, mais ils permettent de caractériser un agent particulier. 1. Autonomie L’agent peut, spontanément, effectuer certaines tâches et prendre des initiatives. 2. Interactivité Les interactions sont à des niveaux différents en raison de la complexité différente des composants avec les quels l’agent interagit (Interaction avec le hardware ou avec des capteurs, actionneurs, ou logiciel). 3. Intelligence L’intelligence est la faculté de raisonnement et d’apprentissage. C’est la capacité de l’agent à accepter les demandes de l’utilisateur et de mener à bien la tâche qui lui est déléguée. 4. Mobilité Certains agents peuvent être fixes, qu’ils résident sur la machine de l’utilisateur, ou sur le serveur. D’autres agents peuvent être mobiles, c’est-à-dire qu’ils se baladent sur le réseau. Ils peuvent se déplacer de machine à machine pendant leur exécution en transportant avec eux les données accumulées. Ces agents peuvent se présenter à des agences qui peuvent leur fournir certains services ou servir de point de rencontre entre différents agents. La mobilité implique de résoudre des problèmes de sécurité, de protection de la vie privée et des données confidentielles et de gestion. Tant qu’une infrastructure adaptée ne sera pas mise en place, les agents seront surtout fixes. Il faudra faire appel à des agents chargés de la sécurité pour surveiller l’activité des agents qui viennent s’installer sur une machine. Au part avant, aucun agent n’était vraiment mobile (Smets 98). Mais, il s’agissait d’une « pseudo-mobilité », c’est-à-dire que l’agent utilise le réseau pour rechercher et consulter des données, des informations, mais il ne se déplace pas, le code s’exécute toujours sur la machine de l’utilisateur. Actuellement, les agents sont mobiles et peuvent immigrer d’une machine à une autre au sens propre du terme. 5. Réactivité L’agent doit pouvoir faire face aux modifications de l’environnement, que ce soit la modification des objectifs de l’utilisateur ou des ressources disponibles. 6. Délégation L’agent est mandaté par l’utilisateur pour effectuer une tâche. Dans le cas du commerce électronique, un degré de délégation faible impliquerait que l’agent va chercher les opportunités intéressantes et les propose à l’utilisateur. A un degré plus élevé, l’agent effectue lui-même l’achat. Dans ce cas, il y a un risque que l’agent effectue une mauvaise opération, il faut donc que l’utilisateur ait une certaine confiance. 7. Domaine d’application Le domaine d’application est important par rapport au risque couru. S’il s’agit de trier des e-mails, le risque est relativement faible, mais s’il s’agit de contrôler une centrale nucléaire, il faudra réfléchir deux fois avant de confier cette tâche à un agent, car son comportement n’est pas parfaitement prévisible. 8. Personnalisation L’utilisateur détermine la façon dont l’agent interagit. Dans beaucoup de cas, l’agent s’adapte à l’utilisateur. 9. Prévisibilité Il est nécessaire que l’utilisateur sache quels résultats il peut attendre de l’agent. 10. Rentabilité Il faut que l’avantage pour l’utilisateur (gain en temps, information fournie, filtrage des informations,…) soit supérieur au coût (en argent, en temps,…).
CHAPITRE 1 INTRODUCTION GENERALE |