Système Multi Agent

Système Multi Agent

Système Multi-Agent

Introduction

L’explosion de la technologie Internet et des réseaux a contribué à bouleverser un bon nombre d’habitudes établies depuis plusieurs décennies. Les documents papier échangés de mains en mains laissent progressivement place aux documents électroniques transmis automatiquement par des machines. Les domaines d’application des systèmes informatiques deviennent dès lors de plus en plus vastes et complexes.Il leur est demandé de gérer de plus en plus d’interactivité, de réactivité, de mobilité dans leurs utilisations les plus répandues. Ainsi, l’apparition des systèmes multi-agents (SMA) apporte une nouvelle dimension au concept de modélisation pour représenter une application du monde réel avec un degré approprié de complexité et de dynamique. Les SMA, inspirés des systèmes naturels complexes, sont composés d’agents logiciels qui interagissent pour accomplir un but commun. Les relations entre les agents sont dynamiques et totalement autonomes, i.e. aucun contrôle central ne supervise l’exécution globale du système. En outre, idéalement, les développeurs doivent passer moins de temps à se préoccuper des subtilités d’une technologie en particulier, et plus de temps à la mise en œuvre de solutions à leurs problèmes. Ainsi, pour aider les utilisateurs de SMA, des bibliothèques ont tendance à être mises au point. Puis sont apparus les plates-formes qui sont des environnements de développement, ainsi que les méthodes de conception qui sont un processus de développement allant de la définition des besoins jusqu’à l’implantation voire au déploiement du système.

Historique

Les systèmes multi-agent sont apparus au carrefour des recherches sur l’intelligence artificielle distribuée et sur la vie artificielle. Ces systèmes sont développés à partir de schémas de raisonnement ou d’organisations empruntés aux domaines de la vie et de la société [7].

L’intelligence artificielle 

L’objectif de l’IA est d’étudier les modes de raisonnement à partir de systèmes virtuels. Ces systèmes sont capables de résoudre un problème en utilisant des symboles, c’est à dire un langage simplifié.Dans un premier temps, l’idée était de distribuer l’intelligence ou la connaissance en utilisant une assemblée de spécialistes virtuels. Les spécialistes se concertaient par le biais d’un espace commun de mémoire (tableau noir). Chaque spécialiste pouvait y déposer, modifier et effacer des données, au bout d’un moment sur le tableau, la solution devait émerger des actions des différents spécialistes. Une autre méthode simulée était l’élaboration par l’assemblée des spécialistes, le spécialiste possédant toutes les connaissances pour résoudre, à lui seul, le problème posé. Hewitt [8] en 1991 remarqua alors l’importance du contrôle des interventions des spécialistes. Il s’orienta vers un contrôle distribué et non plus celui d’un choix séquentiel. Il développa ce contrôle distribué par l’envoi de messages entre les différents acteurs. Ce fut la base du langage d’acteur.

Premiers systèmes multi-agents 

D’après Ferber [7], deux systèmes ont marqué le développement des systèmes multi-agent :
• Le modèle DVMT (Distributed Vehicule Monitoring Test) permettait d’obtenir une image du trafic routier. Il traitait les informations transmises par plusieurs capteurs. Celles-ci pouvaient être contradictoires, redondantes ou bruitées. Ce modèle a permis d’étudier notamment les protocoles de coopération, de négociation et de planification dans les systèmes multi-agent.
• Le système MACE, a démontré que la communication n’est pas suffisante si elle n’est pas alliée à une représentation de son environnement par l’agent [9].

Définition d’un agent

Un agent est définit comme étant un Système Informatique, situé dans un environnement, et qui agit d’une façon autonome et flexible pour atteindre certains objectifs pour lesquels il a été conçu [10].
• Situé : un agent est dit situé, s’il est capable d’agir sur son environnement à partir des entrées sensorielles qu’il reçoit de ce même environnement,
• Autonome : un agent est dit autonome s’il 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 : un agent est dit flexible s’il est capable d’agir de manière réactive, proactive et sociale:
 Réactif : être capable de percevoir son environnement et de réagir dans le temps.
 Proactif : prendre l’initiative et être opportuniste au bon moment.
 Social : être capable d’interagir avec les autres agents quand la situation
l’exige (pour compléter ses tâches ou coopérer avec eux).
Un agent est donc une entité physique ou virtuelle en situation dans un environnement avec lequel il interagit de façon autonome et flexible. Cette notion de situation ou d’agent situé implique que les agents autonomes doivent agir dans un monde réel, en perpétuel changement, partiellement observable et intrinsèquement imprévisible. De même ils doivent réagir en temps réel parce que l’environnement change constamment, et parce qu’ils doivent éventuellement tenir compte des actions d’autres agents [11].

Différentes catégories et modèles d’agents

Après avoir défini les agents et les systèmes multi-agents, nous présentons dans cette partie les différents modèles d’agents, afin de comprendre leurs caractéristiques et leurs modes de fonctionnement. Nous distinguons deux grandes familles d’agents les agents réactifs et les agents cognitifs.

Agents cognitifs :

C’est le premier modèle d’agents qui a été proposé. Il est nommé aussi agent délibératif. Il est basé sur l’IA symbolique, et il permet de planifier les actions d’un agent au sein de son environnement [12]. En effet, les agents cognitifs sont capables à eux seuls de réaliser des opérations relativement complexes.
Généralement, ils coopèrent les uns avec les autres pour atteindre un but commun (résolution d’un problème, une tâche complexe, etc). Ils possèdent un ensemble de représentations explicites (sur l’environnement, sur les autres agents et sur eux-mêmes) décrits dans une base de connaissances sur laquelle ils peuvent raisonner. Ils réagissent en fonction de leurs connaissances, leurs buts, de leurs échanges d’informations avec les autres agents et de la perception de l’environnement (voir figure II.1). Ils sont dotés de moyens et mécanismes de communication pour gérer les interactions avec d’autres agents (coopération, coordination et négociation).
Figure II.1 : Modèle d’un agent cognitif
Ce modèle d’agent est une métaphore du modèle humain et s’appuie sur la sociologie des organisations [13]. Nous pouvons aussi trouver son origine dans la volonté de faire coopérer des systèmes experts classiques dans le domaine d’IA.
L’agent cognitif traite généralement des informations qualitatives tout en utilisant un raisonnement qualitatif ou symbolique

Agents réactifs

Parmi les critiques du raisonnement symbolique figure Brooks, qui, par le biais de plusieurs papiers [14], manifesta son opposition au modèle symbolique et proposa une approche alternative appelée aujourd’hui IA active. Selon lui, le comportement intelligent devrait émerger de l’interaction entre divers comportements plus simples.Dans ce même contexte, nous considérons que les agents réactifs n’ont de connaissance explicite, ni de l’environnement, ni des autres agents, ni de leur passé, pas plus que de leurs buts (pas de planification de leurs actions). Ce sont des agents qui réagissent uniquement à leur perception de l’environnement et qui agissent en fonction de cette perception (voir figure II.2).Ce modèle d’agent est une métaphore du modèle «fourmi», il s’appuie sur les sciences de la vie et l’intelligence collective.Dans la même catégorie que les agents réactifs, mais avec davantage de rationalité, se trouvent les agents hédoniques. Ces agents apprennent, par auto renforcement, à modifier leur comportement afin d’augmenter leur « plaisir ou satisfaction « . Ils sont capables d’anticipations « hédoniques » et d’adaptation lente à partir de leur expérience historique, ce qui suppose un niveau de rationalité plus élevé que l’agent purement réactif.Les agents réactifs, traitent généralement des informations quantitatives tout en utilisant des calculs élémentaires ou d’optimisation. Ils peuvent être construits par des réseaux connexionnistes comme les Réseaux de Neurones (RN) ou en utilisant des simples algorithmes de calcul comme les Algorithmes Génétiques (AG).Contrairement aux agents réactifs, les agents cognitifs sont beaucoup plus complexes et plus difficiles à mettre en œuvre. Chaque agent se fonde sur ses propres compétences de façon isolée pour résoudre un problème, ce sont les principales limites de cette architecture.Pour faire face aux inconvénients de ces deux modèles, les chercheurs ont combiné ces deux facettes, opposées mais complémentaires, de la conception des agents. Cette combinaison fait apparaître les agents hybrides.

Agents hybrides

Les agents hybrides sont conçus pour combiner des capacités réactives à des capacités cognitives, ce qui leur permet d’adapter leur comportement en temps réel à l’évolution de l’environnement. Dans le modèle hybride, un agent est composé de plusieurs couches, rangées selon une hiérarchie. La plupart des architectures considèrent que trois couches suffisent amplement. Ainsi, au plus bas niveau de l’architecture, on retrouve habituellement une couche purement réactive, qui prend ses décisions en se basant sur des données brutes en provenance des senseurs. La couche intermédiaire fait abstraction des données brutes et travaille plutôt avec une vision des connaissances de l’environnement. Finalement, la couche supérieure se charge des aspects sociaux de l’environnement (communication, coopération, négociation), c’est-à-dire du raisonnement tenant compte des autres agents.

Différence entre un Agents et un Objets

Un objet est défini par un ensemble de services offerts (ses méthodes) qu’il ne peut refuser d’exécuter si un autre objet le lui demande. Les objets exécutent des tâches; ils n’ont ni but, ni recherche de satisfaction. En revanche les agents, bien plus élaborés, disposent d’objectifs qui leur donnent une autonomie de décision vis à vis des messages qu’ils reçoivent.
Les objets utilisent un mécanisme d’envoi de message qui se résume à un simple appel de méthode. Pour les agents, les interactions sont plus complexes et font intervenir des communications de haut niveau, où l’important est que l’agent décide par lui-même comment interagir et réagir aux messages qu’il reçoit.
Un agent est une entité capable de recevoir et d’émettre des messages. Ce comportement est minimaliste, et correspond d’ailleurs tout à fait à la définition d’un objet. Néanmoins, un objet est contraint de répondre aux requêtes qui lui sont soumises, contrairement à l’agent qui dispose de son propre libre arbitre.
Concrètement, les objets font ce qu’on leur demande, tandis qu’avec les agents, il faut négocier. Donc, il est important que les agents contrôlent eux-mêmes leur comportement et les ressources qu’ils possèdent. C’est ce qui caractérise leur autonomie, et d’une certaine manière leur donne conscience de leurs possibilités.
Néanmoins, le lien existant entre la notion d’objet et celle d’agent reste fort. Il n’y a pas de frontière nette : un objet peut être considéré comme un agent dont le langage d’expression se résume à l’emploi de mots clés correspondant à ses méthodes comme le montre le tableau ci-dessous [18].

Définition d’un Système Multi-agent

Wooldridge et Jennings [10], présente un SMA comme étant un ensemble d’agents en interaction afin de réaliser leurs buts ou d’accomplir leurs tâches. Les interactions peuvent être directes par l’intermédiaire des communications, comme elles peuvent être indirectes via l’action et la perception de l’environnement. Les interactions peuvent être mises en œuvre dans un but de :
 Coopération entre les agents, lorsqu’ils ont des buts communs.
 Coordination, pour éviter les conflits et tirer le maximum de profit de leurs interactions afin de réaliser leurs buts.
 Compétition, lorsque les agents ont des buts antagonistes.

Avantages

L’utilisation des SMA présente une série d’avantages:
 Système dynamique : les SMA héritent des bénéfices de l’IA au niveau du traitement symbolique (au niveau des connaissances). En revanche, contrairement aux approches traditionnelles de l’Intelligence Artificielle qui simulent, dans une certaine mesure, les capacités du comportement humain, les SMA permettent de modéliser un ensemble d’agents qui interagissent [20].
 Nombre important d’agents : un grand nombre d’agents est au cœur du problème dans ce type de modélisation contrairement à la théorie des jeux où rarement plus de trois acteurs sont représentés.
 Souplesse de l’outil informatique : qui permet de modifier le comportement des agents, ajouter ou supprimer des actions possibles, étendre les informations disponibles à l’ensemble des agents à la différence des modèles traditionnellement utilisés en science économique.
 Une résolution distribuée de problèmes : il est possible de décomposer un problème en sous-parties de résoudre chacune de façon indépendante pour aboutir à une solution stable [19].

Domaines d’application des SMA

Les systèmes multi-agents sont à l’intersection de plusieurs domaines scientifiques tels que l’information répartie, le génie logiciel, l’intelligence collective, l’intelligence artificielle. Par conséquent, ils font appel à plusieurs autres disciplines, telles que la sociologie, la psychologie sociale, les sciences cognitives, la biologie, etc. Il en découle que les SMA sont appliqués dans divers domaines, comme l’industrie, le commerce, le divertissement et la médecine. Parmi les applications industrielles nous pouvons citer le pilotage des Système de production, la télécommunication comme le contrôle de réseaux, le contrôle de trafic aérien et la gestion du trafic et du transport. Parmi les applications commerciales à base d’agent, on trouve la gestion de l’information, et le commerce électronique. Un grand domaine d’application des SMA est celui des divertissements, comme dans les jeux, le théâtre interactif et la réalité virtuelle[20].

Interactions entre agent

La notion d’interaction est au centre de la problématique des SMA. Une interaction est une mise en relation dynamique de deux ou plusieurs agents par le biais d’un ensemble d’actions réciproques. Les interactions s’expriment ainsi à partir d’une série d’actions dont les conséquences exercent en retour une influence sur le comportement des futurs agents.
Les situations sont diverses et variées: l’aide d’un robot par un autre, l’échange de données entre serveurs informatiques, l’utilisation d’une imprimante par deux programmes simultanément, la répartition de charge sur plusieurs processeurs, etc. les interactions sont non seulement la conséquence d’actions effectuées par plusieurs agents en même temps, mais aussi l’élément nécessaire à la constitution d’organisations sociales.

Communication entre agents

La communication dans les systèmes multi-agents est à la base des interactions et de la création des organisations dont nous avons parlé précédemment. Sans la communication, un agent n’est qu’un individu isolé, sourd et muet qui ne fait qu’agir sur lui-même. La communication permet aux agents d’échanger des informations, des demandes de services, etc. Elle permet aussi à un agent d’agir sur un autre en lui fournissant des informations qui auront pour conséquence la remise en question de son comportement ou encore en lui demandant de modifier son comportement [21].
La communication entre agents peut revêtir diverses formes. Il existe deux principaux langages de communication KQML et ACL qui ont été abordés afin de normaliser la communication entre agents.
• KQML (Knowledge Query Manipulation Language) développe en 1993 par le consortium DARPA-KSE (Knowledge Sharing Effort).
• ACL (Agent Communication Language) proposé en 1997 par la FIPA (Foundation for Intelligent Physical Agents).
KQML et ACL se distinguent au niveau de la sémantique des actes du langage utilisé.
En effet, le langage ACL fortement inspiré des travaux de KQML, propose un langage auquel s’ajoute la définition de protocoles d’interactions.
Lorsque deux agents vont communiquer, leur objectif est d’échanger des informations mais avant tout de se comprendre. Donc, quel que soit le langage ou la forme de communication, l’importance réside dans la possibilité pour un agent de pouvoir comprendre les autres agents. Dans la majorité des cas, la communication se fait par envoi de messages et parfois par envoi de signaux ou stimuli dans l’environnement.

Similitudes et différences entre KQML et FIPA-ACL

KQML et FIPA-ACL sont presque identiques en ce qui concerne leurs concepts de base et les principes qu’ils observent. Les deux langages diffèrent principalement dans les détails de leurs cadres sémantiques. Dans un sens, cette différence est substantielle :
• il n’est pas possible de proposer une traduction systématique entre les performatives de KQML et celles complètement équivalentes de FIPA, ou vice-versa.
• les différences inéluctables pourraient avoir peu d’importance pour les programmeurs d’agents intelligents, si leurs agents ne sont pas de véritables agents BDI.
Les deux langages ont la même syntaxe. C’est-à-dire, un message de KQML et un message de FIPA-ACL sont syntaxiquement identique excepté, naturellement, dans leurs différences sur les noms des primitives de communication.
Sémantiquement, les deux langages diffèrent au niveau de ce qui constitue la description de la sémantique :
• pré-conditions, post-conditions, et conditions d’accomplissement pour KQML.
• pré-conditions de faisabilité et effets rationnels pour FIPA-ACL.
Ils diffèrent également au niveau du choix et des définitions des modalités qu’ils utilisent (le langage employé pour décrire les états des agents).

Agent BDI

L’idée phare de l’approche BDI est de décrire l’état interne des agents, dit agents BDI, en termes d’attitudes mentales, et aussi de définir une architecture de contrôle grâce à laquelle l’agent peut sélectionner son plan. Le mécanisme de raisonnement d’un agent BDI, déclenché par des événements perçus, se base sur les attitudes mentales de celui-ci qui sont représentées par les Croyances (Beliefs), les Désirs (Desires) et les Intentions (Intentions) :
• Les croyances expriment ce que l’agent croît sur l’état courant de son environnement.
• Les désirs (ou buts) sont une notion abstraite spécifiant les préférences de l’agent.
Leur caractéristique principale est qu’un agent peut avoir des désirs inconsistants et qu’il n’a donc pas à croire que ses désirs sont réalisables.
• Les intentions représentent les désirs que l’agent s’engage à réaliser. Cependant, étant limité par ses ressources, l’agent peut ne pas poursuivre tous ses désirs même si ces derniers sont consistants. Il est nécessaire alors qu’il choisisse un certain nombre de désirs pour lesquels il s’engage à réaliser.
L’agent a une représentation explicite de ses croyances, désirs et intentions. On dénote par B l’ensemble des croyances de l’agent, par D l’ensemble de ses désirs, et par I l’ensemble de ses intentions. Les ensembles B, D et I peuvent être représentés au moyen de divers modèles de représentation de connaissances, par exemple en utilisant la logique des prédicats du premier ordre, la logique d’ordre supérieur, le modèle des règles de production, ou bien comme de simples structures de données [22].

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela rapport gratuit propose le téléchargement des modèles gratuits de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie ?avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction générale
CHAPITRE I CLOUD COMPUTING « L’informatique dans le nuage »
I.1 Introduction
I.2 Définition
I.3 Historique
I.4 Principe du Cloud computing
I.5 Caractéristiques du Cloud computing
I.5.1 Service à la demande
I.5.2 Accès via des réseaux à large échelle
I.5.3 Mutualisation
I.5.4 Elasticité rapide
I.5.5 Paiement à l’usage
I.6 Modèles de déploiement
I.6.1 Cloud public
I.6.2 Cloud privé
I.6.3 Cloud hybride
I.6.4 Cloud communautaires
I.7 Modèles de service
I.7.1 SaaS (Software as a Service)
I.7.2 PaaS (Platform as a Service)
I.7.3 IaaS (Infrastructure as a Service)
I.8 Eléments constitutifs du Cloud Computing
I.8.1 La virtualisation
I.8.2 Datacenter
I.9 Points complémentaires
I.9.1 Modèles « as a service »
I.9.2 Multitenants
I.9.3 Interconnexion
I.10 Sécurité dans le Cloud Computing
I.11 Avantages et inconvénients du Cloud Computing
I.12 Conclusion
CHAPITRE II Système Multi Agent
II.1 Introduction
II.2 Historique
II.2.1 L’intelligence artificielle
II.2.2 Premiers systèmes multi-agents
II.3 Définition d’un agent.
II.4 Différentes catégories et modèles d’agents
II.4.1 Agents cognitifs
II.4.2 Agents réactifs
II.4.3 Agents hybrides
II.5 Différence entre un Agents et un Objets
II.6 Définition d’un Système Multi-agent
II.6.1 Avantages
II.6.2 Domaines d’application des SMA
II.7 Interactions entre agent
II.7.1 Communication entre agents
II.7.2 Similitudes et différences entre KQML et FIPA-ACL
II.8 Agent BDI
II.9 Caractérisation des agents BDI
II.10 Architecture des agents BDI
II.11 Algorithme de contrôle d’agent BDI
II.12 Conclusion
CHAPITRE III Implémentation de l’application
III.1 Introduction
III.2 Environnement de développement
III.2.1 Java
III.2.2 NetBeans IDE 8.1
III.2.3 JADE
III.3 Architecture globale de notre application
III.3.1 Agent BDI
III.3.2 Agent Host
III.3.3 Agent Générateur de tâches
III.4 Interface graphique de configuration du système
III.4.1 Onglet Agent BDI
III.4.2 Onglet Agent Host de calcul et Host de stockage
III.4.3 Onglet Tâche de calcul
III.4.4 Onglet Tâche de stockage
III.5 Simulation
III.5.1 Configuration du système
III.5.2 Communication entre agents
III.6 Résultats et analyses
III.7 Conclusion
Conclusion générale
Référence bibliographique
Liste des figures
Liste des tableaux
Liste des abréviations

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *