Ia3 PDF
Ia3 PDF
Ia3 PDF
2 types de communication :
via lenvironnement,
Communication directe :
envoi de messages,
Communication entre agents
La coopration
La coordination
La ngociation
Les protocoles de coordination
Ils dfinissent aussi sous quelles conditions les engagements peuvent tre
revus et quelles sont alors les actions prendre.
Les protocoles de coopration
Le processus de ngociation
La ngociation
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
La couche contenu
La couche communication
La couche message
KQML
KQML peut transporter des messages crits dans nimporte quel langage
de reprsentation (ex : PROLOG, KIF, LISP, C, KQML (lui mme),
XML ...)
KQML
(KQML-performative
Niveau message
:language<texte>
:ontology<texte>
Niveau communication
:sender<texte>
:receiver<texte>
Niveau contenu
:content<expression>
KQML : les performatives
(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
(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
(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
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
(inform
:sender A
:receiver B
:content temps (demain, pleuvoir)
:language Prolog
)
Les protocoles dinteraction FIPA
Protocoles :
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.
Cet agent est responsable de grer les activits d'une plate-forme. Ses
agents.
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 rpertoire liste tous les agents dans le domaine et est utilis pour faire
connatre les services et les capacits disponibles.
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/
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
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
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
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
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
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 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