Sie sind auf Seite 1von 75

Les Systmes Multi-Agents

Dfinition dun SMA

 Un systme multi-agents est un ensemble organis dagents.

 Il est constitu dune ou plusieurs organisations qui structurent les rgles de


cohabitation et de travail collectif entre agents.

 Dans un mme systme, un agent peut appartenir plusieurs


organisations.
Communication entre agents
 Un agent doit tre capable de communiquer avec les autres agents.

 Les agents doivent avoir des capacits manipuler un langage commun.

 2 types de communication :

 Communication indirecte : Partage dinformations

 via lenvironnement,

 Communication directe :

 envoi de messages,
Communication entre agents

 Lagent peut participer un dialogue en tant passif ou actif.


 Un agent passif doit accepter les questions des autres agents et rpondre
leur questions.
 Un agent actif doit proposer et envoyer des interrogations.

 Dans un dialogue les agents alternent des rles actifs et passifs, et


changent des sries de messages en respectant des protocoles biens prcis,
ce sont les protocoles de coordination, de coopration et de ngociation.
Communication entre agents

La coopration

La coordination

La ngociation
Les protocoles de coordination

 Les protocoles de coordination aident les agents grer leurs engagements.

 Les protocoles de coordination lui permettent de grer ces engagements


dans le cas o les circonstances dans lesquelles ils ont t labors,
voluent.

 Ils dfinissent aussi sous quelles conditions les engagements peuvent tre
revus et quelles sont alors les actions prendre.
Les protocoles de coopration

 La coopration entre les agents consiste dcomposer les


tches en sous-tches puis les rpartir entre les diffrents
agents, il existe plusieurs dcompositions possibles, le
processus de dcomposition doit donc tenir compte des
ressources disponibles et des comptences des agents.
La ngociation

 La ngociation intervient lorsque des agents interagissent pour prendre des


dcisions communes, alors quils poursuivent des buts diffrents.

 Les deux principales voies sur la ngociation sont :

 Les langages de ngociation

 Le processus de ngociation
La ngociation

 Les langages de ngociation : il sagit dtudier les primitives de


communication pour la ngociation, leur smantique et leur usage dans
les protocoles.

 Le processus de ngociation : il sagit de proposer des modles


gnraux de comportements des agents en situation de ngociation.
La ngociation

 Deux techniques de ngociation :

 La ngociation centre sur lenvironnement : adapter le contexte ou


lenvironnement la ngociation.

 La ngociation centre sur lagent : adapter le comportement de lagent


compte-tenu des proprits du contexte donn.
Communication entre agents

 La communication inter-agent est fondamentale la ralisation du


paradigme agent, tout comme le dveloppement du langage humain tait
la cl du dveloppement de lintelligence humaine et des socits.

 Pour changer les informations et les connaissances, les agents utilisent


des ACL (Agent Communication Language).
volution ACL

Partage -> Partage des objets, des appels de procdure


dobjet et de SDD (CORBA, RPC, )

Partage de
-> Partage des connaissances (faits, rgles,
K
contraintes, procdures, )
KIF, KQML, FIPA, .
Partage des
intentions -> Partage des intentions (croyances, buts,
intentions) => Niveau intentionnel
Thorie BDI
? -> Que peut-on partager dautre ?
Expriences, Stratgies
Le modle BDI et la communication

 Communication 

 Rvler lautre ltat de nos croyances, dsires et intentions.

 Essayer dinfluencer ltat des croyances, dsires et intentions de


lautre.

 Un agent a des croyances sur le monde (son environnement), sur les


croyances des autres agents et sur les croyances quont les autres agents
sur lui
Langages de communications
entre agents
 Tout langage multi agent est reprsent par une structure de
donne comprenant les champs :
 Emetteur
 Rcepteur
 Langage utilis : langage dans lequel le vrai message est rdig
 Contenu du message : le vrai message qui fait lobjet de la
communication
 Lontologie : le vocabulaire dans un domaine donn pour que les
agents puissent se comprendre
 Ensemble de dfinitions concernant le message
Langages de communications
entre agents

 De nombreux langages de communications entre agents (ACL)


se sont dvelopps.

 KQML (93, 97)

 FIPA-ACL (97, 99, 2000)


KQML (Knowledge Query and Manipulation Language)

 KQML a t conu comme tant la fois un format de message et un


protocole de transfert de messages venant aider les agents intelligent au
partage et change de donnes de haut niveau tout en tant indpendant des
machines.
 KQML est un langage qui se prsente sur 3 couches :

La couche contenu

La couche communication

La couche message
KQML

La couche Contenu


 Il sagit du contenu rel du message, il peut tre crit dans le langage de
reprsentation du programme de lagent.

 KQML peut transporter des messages crits dans nimporte quel langage
de reprsentation (ex : PROLOG, KIF, LISP, C, KQML (lui mme),
XML ...)
KQML

La couche Communication

 Dans cette couche on retrouve des informations dun niveau un peu


plus bas permettant le bon fonctionnement de la communication telles
que lidentit de lmetteur ou celle du rcepteur du message, ainsi
quun identificateur unique pour le message.
KQML

La couche Message :


 Cette couche constitue le cur du langage.

 Elle incorpore des argument dcrivant le contenu du message telles que


le langage utilis, lontologie

 Ces arguments permettent KQML danalyser, acheminer et dlivrer


les messages mme si leur contenu lui est opaque et inaccessible.
KQML : la syntaxe

(KQML-performative
Niveau message
:language<texte>
:ontology<texte>

Niveau communication
:sender<texte>
:receiver<texte>

Niveau contenu
:content<expression>
KQML : les performatives

36 performatives rpartis en 3 catgories :

 Les 18 performatives de discours : servent changer des connaissances et


des informations prsentes dans la base de connaissance de lagent
 (ask-if, ask-one, tell, describe, stream-all )

 Les 11 performatives dinterconnexion : aide la mise en relation des


agents entre eux
 (register, unregister, broadcast )

 Les 7 performatives dexception : servent changer le droulement normal


des changes
 (error, sorry, standby )
Quelques performatives
E : l'agent metteur
R : l'agent rcepteur
C : le contenu du message
BVC : la base virtuelle de connaissances (connaissances attribues par
chaque agent aux autres agents)
 ask-one : E veut que seulement R rponde sa question C
 ask-if : E veut savoir si la rponse la question prcise en C se trouve
dans la BVC de R
 tell : E affirme au R que C est dans la BVC de E
 broadcast : E veut que R transmette son tour la performative toutes
ses connexions
 error : E considre le message prcdent de R comme mal form
 sorry : R ne peut pas fournir plus dinformation
 http://www.exso.com/courses/cs101c/kqml/node6.html
Exemple de KQML

 l agent A veut connatre toutes les personnes dfinies comme


tant des hommes.
(ask-all
:sender A
:receiver B
:language PROLOG
:ontology phylosophie
:content
homme (=x)
:reply_with question1
)
Exemple de KQML

 l agent B rpond que Socrate est un homme.


(tell
:sender B
:receiver A
:language PROLOG
:ontology phylosophie
:content
homme(Socrate)
:in_reply_to question1
)
Exemple de KQML

 lagent A1 veut informer lagent A2 que le bloc A est sur le bloc B

(tell
:sender A1 Niveau communication
:receiver A2
:language KIF Niveau message
:ontology BlockWord
:content (And (Block A) (Block B) (On A B)) Niveau contenu
)
Exemple imbriqu

 A1 demande A3 de transfrer le message prcdent A2

(forward
:from A1
:to A2
:sender A1
:receiver A3
:language KQML
:ontology kqml-ontology
:content (tell :sender A1
:receiver A2
:language KIF
:ontology BlockWord
:content (And (Block A) (Block B) (On A B))))
Exemple de KQML
L'agent A1 demande l'agent A2 le prix dun portable Nokia et A2 lui
rpond.
(ask-one
:sender A1
:receiver A2
:content (val (prix Nokia-6100))
:language KIF
:ontology portables
)
(tell
:sender A2
:receiver A1
:content (=(prix Nokia-6100) (scalar 290 Euro))
:language KIF
:ontology portables
)
Exemple de KQML
L'agent A1 demande l'agent A2 toutes les informations concernant le portable
Nokia 6100, et A2 lui rpond par plusieurs messages qui se terminent avec un
'eos':
(stream-about (tell
:sender A1 :sender A2
:receiver A2 :receiver A1
:reply-with N6100 :in-reply-to N6100
:language KIF :content (=(prix Nokia-6100)
: ontology portables (scalar 290 Euro))
:content Nokia-6100 :language KIF
) :ontology portables
(tell )
:sender A2 (eos
:receiver A1 :sender A2
:in-reply-to N6100 :receiver A1
:content (=(automomy Nokia-6100) :in-reply-to N6100
(scalar 48 hours)) )
:language KIF
:ontology portables
)
Exemple de KQML

Dans une application en Java, lagent A veut connatre la moyenne de 4


nombres

(ask-one
:sender A
:receiver B
:language Java
:ontology mathmatique
:content
double m = moyenne_B (n1, n2, n3, n4)
:reply_with question3
)
Plates-formes des systmes
multi-agents && KQML
 Une plate-forme de dveloppement des systmes multi-agents est une infrastructure
de logiciels utilise comme environnement pour le dploiement et l'excution d'un
ensemble d'agents.
 AgentBuilder
 http://www.agentbuilder.com
 AgentBuilder est entirement programm en Java.
 Les agents construits en utilisant AgentBuilder communiquent en utilisant
KQML.
 Disponible pour Windows 98/ME/NT/2000/XP, Solaris et Linux
 JAT : Java(tm) Agent Template
 http://www-cdr.stanford.edu/ABE/JavaAgent.html
 La communication est base sur KQML.
 Java Intelligent Agent Library
 http://www.bitpix.com/business/main/bitpix.htm
 La communication est base sur KQML.
 La librairie supporte aussi les agents mobiles.
La norme FIPA

 La FIPA (Foundation for Intelligent Physical Agents) est une organisation


but non lucratif fonde en 1996 dont l'objectif est de produire des
standards pour l'interopration dagents logiciels htrognes.

 FIPA ACL : Syntaxe similaire celle de KQML.


FIPA-ACL

 sender : lmetteur du message

 receiver : le destinataire du message

 reply-to : participant lacte de communication

 content : le contenu du message (linformation transporte par


la performative)

 language : le langage dans lequel le contenu est reprsent


FIPA-ACL

 ontology : le nom de l'ontologie utilis pour donner un sens aux termes


utiliss dans le content

 conversation-id : identificateur de la conversation

 reply-with : identificateur unique du message, en vue d'une rfrence


ultrieure

 in-reply-to : rfrence un message auquel l'agent est entrain de rpondre


(prcis par lattribut reply-with de lmetteur)

 reply-by : impose un dlai pour la rponse


Catgorie de performatives FIPA
 Information
 query_if, query_ref, sunscribe, inform, inform_if, inform_ref, confirm,
disconfirm, not_understood
 Gestion des erreurs
 not-understood, failure

 Ngociation
 cfp (Call for proposal), propose, accept_proposal, reject_proposal




 http://jmvidal.cse.sc.edu/talks/agentcommunication/performative
s.xml
FIPA-ACL: Les 20 performatives
Exemple

 L'agent A veut informer l'agent B du temps qu'il fera demain,


selon ses prvisions :

(inform
:sender A
:receiver B
:content temps (demain, pleuvoir)
:language Prolog
)
Les protocoles dinteraction FIPA

 Smantique : une description de protocole reprsente un schma


dinteraction, ensemble de messages changs entre diffrents agents

 Protocoles :

 fipa-request: le rcepteur est demand d'excuter une action

 fipa-query : le rcepteur est demand d'excuter un acte informatif


FIPA-Request
FIPA-Request
 Avec FIPA-request, un agent sollicite un autre agent pour excuter des
actions et l'agent rcepteur retourne soit une rponse favorable l'excution
d'actions, soit une rponse dfavorable explique par telle ou telle raison.
Supposons que l'agent i aie besoin de l'agent j pour excuter l'action
action .
 L'agent i envoie request l'agent j.

 Si l'agent j accepte la requte, il retourne agree . Ensuite, quand j a fini


d'excuter action , il en informe i en utilisant inform .
 Si l'agent j accepte mais rencontre un problme durant le traitement de
action , il retourne failure et les raisons de l'chec.
 Si l'agent j n'accepte pas la requte de l'agent i, j retourne refuse et les
raisons de ce refus.
FIPA-Query
FIPA-Query

 FIPA-Query signifie que l'agent metteur sollicite l'agent rcepteur pour


excuter un des types d'un performatif inform, c'est--dire pour rpondre
la demande.
 Supposons que l'agent i fasse une demande l'agent j.
 L'agent i envoie un performatif query l'agent j.
 Si l'agent j peut rpondre la demande, il l'informe en utilisant le
performatif inform .
 Si l'agent j a essay de rpondre la demande mais qu'il ne le peut pas, il
retourne failure et les raisons de cette impossibilit.
 Si l'agent j refuse de rpondre la demande, il retourne refuse et les
raisons de ce refus.
Modle de rfrence de l'agent
 Identifier les rles de quelques agents cls ncessaires pour la gestion
de la plate-forme.

 L'agent de renseignement (Directory Facilitator)

 L'agent de gestion du systme (Agent Management System)

 Le canal de communication de l'agent (Agent Communication Channel)


Modle de rfrence de l'agent
Modle de rfrence de l'agent
 L'agent de renseignement (Directory Facilitator)

 Son rle est de fournir le service "pages jaunes" aux autres agents.

 Il enregistre les descriptions des agents ainsi que les services qu'ils
offrent.

 Il doit fournir l'information la plus actuelle sur les agents enregistrs


dans son rpertoire tous les agents autoriss.
Modle de rfrence de l'agent
 L'agent de renseignement (Directory Facilitator)

 L'agent de renseignement peut restreindre l'accs l'information et


vrifier toutes les permissions d'accs pour les agents qui tentent de
l'informer des changements d'tat de l'agent.

 Les agents peuvent enregistrer leurs services auprs d'un DF ou


demander DF de dcouvrir les services offerts par d'autres agents.

 Un DF au moins doit tre prsent sur chaque plate-forme d'agents.

 Une plate-forme d'agents peut supporter plusieurs DF.


Modle de rfrence de l'agent

 L'agent de gestion du systme (Agent Management System)

 Cet agent est responsable de grer les activits d'une plate-forme. Ses

responsabilits consistent crer des agents, supprimer des agents,


dcider si un agent peut dynamiquement s'inscrire sur la plate-forme et
enfin superviser la migration d'agents de plate-forme en plate-forme.

 Il contrle l'accs ainsi que l'utilisation du canal de communication des

agents.

 Un seul systme de gestion rside sur une plate-forme.


Modle de rfrence de l'agent

 Le canal de communication de l'agent (Agent Communication Channel)

 Fournir le chemin pour un change entre un agent et d'autres agents.

 Il achemine des messages entre agents situs dans la plate-forme mais


galement d'autres agents rsidant sur d'autres plates-formes.

 L'ACC est le moyen de communication par dfaut qui connecte tous les
agents sur une plate-forme et entre plates-formes.
Le domaine de l'agent

 Le domaine de l'agent est un groupement d'agents dfinis par appartenance


un rpertoire supervis par le DF.

 Le rpertoire liste tous les agents dans le domaine et est utilis pour faire
connatre les services et les capacits disponibles.

 Un agent peut tre prsent dans un ou plusieurs domaines.

 Un agent doit s'inscrire auprs d'un DF afin d'tre prsent dans un domaine.
La plate-forme de l'agent (AP)
Plates-formes des systmes
multi-agents && FIPA

 JADE : http://jade.tilab.com/

 Langage utilis : Java.

 FIPA ACL pour la communication.


Jade GUI
 Contrler les agents
 Crer
 Tuer
 Suspendre

 Dmarrer les autres
outils
Exemple avec JADE

 Agent 3 envoie un message PING aux deux Agents Agent1 et Agent2.

 En plus de la confirmation de la rception du PING de la part des deux Agents,


Agent2 envoie un Pong Agent3.

Agent 1

Agent 3 PING

PING
Agent 2
PONG
Agent 3
Agent 1
Agent 2
Exemple avec JADE
 java jade.Boot Agent3 :Sender Agent1 :Receiver Agent2 :Pong

Agent1 <- Ping from Agent3@PC-de-Badr:1099/JADE


Agent2 <- Ping from Agent3@PC-de-Badr:1099/JADE
Agent3 <- Pong from Agent2@PC-de-Badr:1099/JADE

 Lancer un agent sans linterface :


 java jade.Boot <nom de lagent>:<classe de lagent>
 Le nom dun agent est de la forme :
 <nom-agent>@<nom-plate-forme>
 La plate-forme par dfaut est :
 <main-host>:<main-port>/JADE
 Pour plus dinformations sur les numros de port:
 http://www.frameip.com/liste-des-ports-tcp-udp/
Critres pour ltude comparative
de plates-formes SMA
 Caractristiques gnrales
 Nom de la plate-forme :
 Auteurs :
 Etat de la plate-forme :
 Maquette -- Prototype -- Produit fini
 Logiciel libre -- Produit Commercial
 Nombre d'applications dveloppes
 des petits exemples une application relle plusieurs applications relles

 Type d'application privilgi :


 Simulation -- Rsolution de problme
 Configuration logicielle et matrielle
 Langages utiliss
 Systmes d'exploitation
Critres pour ltude comparative
de plates-formes SMA
 Modles multi-agents disponibles
 Interaction/Communication
 Modle de communication : direct -- indirect
 Langage de communication : signaux -- actes de langage -- autres
 Protocoles d'interaction :
 Caractristiques extrinsques du systme multi-agents
 Nombre d'agents (ordre de grandeur)
 agent -- <10 --- aucune limite

 Nature des agents


 homognes -- htrognes

 Modle de coopration
 Ngociation, dlgation de tches, planification multi-agents,

 Type de contrle
 Centralis hirarchique -- distribu
Critres pour ltude comparative
de plates-formes SMA
 Caractristiques physiques du systme multi-agents

 Agent

 Implmentation : dclaratif procdural


 Mobilit : stationnaire mobile

 Organisation

 Distribu - centralis
 Passif (ex : base de donnes) - dynamique
Critres pour ltude comparative
de plates-formes SMA

 Environnement de dveloppement
 Mthodologie d'analyse
 Disponibilit d'un langage de description d'agents
 Ncessit de connatre le langage de programmation dans lequel la
plate-forme est crite
 Existence de bibliothques
 Documentation disponible
 Tutoriel
Critres pour ltude comparative
de plates-formes SMA
 Environnement d'excution
 Outils disponibles
 Outils d'administration, configuration, lancement
 Outils de monitoring
 Outils de mise au point
 Documentations disponibles
 Aide en ligne
 Manuels d'installation
 Manuels d'utilisation
 Manuels de maintenance
 Support logistique
 Frquence des nouvelles versions
 Support technique disponible
Comparaison entre plates-formes multi-agents

KQML FIPA ACL

AgentBuilder JADE
Exercice KQML
 Le but de cet exercice est de faire communiquer des agents implments en JAVA en
utilisant le langage KQML, les interactions entre les agents simulent un jeu de loto.
 Le SMA contient 3 agents :
 Agent1 : aide lutilisateur remplir une grille de 6 nombres compris entre 1 et 49.
 Agent2 : il fait le tirage des 6 nombres et traite la grille de lutilisateur.
 Agent3 : envoie un commentaire lAgent1 en tenant compte des informations reus
de lAgent2.
 La simulation de ce jeu se droule comme suit :
 Agent1 envoie la grille saisie par lutilisateur Agent2 ainsi quune demande afin de
connatre le nombre de nombres communs entre cette grille et le tirage ralis par
Agent2.
 Aprs la rception de la rponse envoye par Agent2, Agent1 envoie une deuxime
grille Agent2 en lui demandant de simuler des tirages tant que lutilisateur na pas
les 6 bons numros et de calculer le nombre de tirages effectus.
 Agent2 demande Agent3 de transfrer le nombre de tirages effectus Agent1.
 Agent3 profite de cette information et envoie un commentaire Agent1.
 Le code de Agent1 contient la fonction grilleUtilisateur.
 Le code de Agent2 contient 3 fonctions tirage, nbCorrect et simulationJeu.
 Le code de Agent3 contient la fonction Rponseutilisateur.
Exercice KQML
 1. Ecrire la fonction grilleUtilisateur qui retourne un tableau de 6 nombres
compris entre 1 et 49. Les nombres du tableau devront entre saisie par
lutilisateur. Un mme nombre ne peut apparatre quune seule fois dans le
tableau. Bien videmment, il faut vrifier que lutilisateur entre des
nombres corrects.
 2. Ecrire la fonction tirage qui retourne un tableau de 6 nombres compris
entre 1 et 49. Un mme nombre ne peut apparatre quune seule fois dans le
tableau.
 3. Ecrire la fonction nbCorrect qui prend en paramtre 2 tableaux de 6
nombres et qui retourne le nombre de nombres communs aux deux
tableaux.
 4. Ecrire la fonction simulationJeu qui prend comme paramtre la grille
saisie par lutilisateur afin de simuler des tirages tant que lutilisateur na
pas les 6 bons numros et retourner le nombre de tirages effectus.
 5. Ecrire la fonction Rponseutilisateur qui a pour paramtre le nombre de
tirages effectus et qui doit retourner le commentaire bon joueur ou
mauvais joueur .
 6. Ecrire en langage KQML les interactions dans le systme.
Communication des agents
dans un environnement sans fil

Le contexte : Les rseaux sans fil


Quest-ce quun rseau sans fil

 Un rseau sans fil (wireless network) est, comme son nom l'indique, un
rseau dans lequel au moins deux terminaux peuvent communiquer sans
liaison filaire.
Les catgories de rseaux sans fil
 On distingue habituellement plusieurs catgories de rseaux sans fil, selon le
primtre gographique offrant une connectivit (appel zone de couverture) :
Les rseau sans fil

 WPAN : Bluetooth,
 Wireless Personal Area Network
 WLAN : Le Wifi,
 Wireless Local Area Network

 WMAN : WiMAX,
 Wireless Metropolitan Area Network
 WWAN : GSM, GPRS, UMTS
 Wireless Wide Area Network
Bluetooth
Le WiFi

 Le WiFi permet la mise en place des transmissions dans les endroits o la


pose de cble est difficile, voir impossible.
WiMAX
 La norme de rseau mtropolitain sans fil la plus connue est le WiMAX,
permettant d'obtenir des dbits de l'ordre de 70 Mbit/s sur un rayon de
plusieurs kilomtres.
Rseaux tendus sans fil (WWAN)

 Les principales technologies sont les suivantes :

 GSM (Global System for Mobile Communication ou en franais


Groupe Spcial Mobile)

 GPRS (General Packet Radio Service)

 UMTS (Universal Mobile Telecommunication System)


UMTS
 LUMTS signifie systme universel de tlcommunications mobiles, cest--dire un

rseau mobile capable doffrir des services multimdias, partout et tout moment.
Les couches de communication
 La communication entre agents dans un environnement sans fil peut tre
divise en quatre couches :

 La couche dInteraction

 La couche de Langage de Communication

 La couche de Message

 La couche de Transport
Communication des agents
dans un environnement sans fil
 La communication entre agents dans un environnement sans fil peut
seffectuer diffrents niveaux et de diffrentes faons.
Les protocoles dinteraction
 Les couches de communication : entre les parties communicantes

Le contenu des messages

La transmission des messages

Les mcanismes de transport du rseau

Das könnte Ihnen auch gefallen