Académique Documents
Professionnel Documents
Culture Documents
GIT_M1_S2
Object Rapport de TP N°2
Ouzairou DJIRE
Mah Rokiatou dite koyan SANOGO
Noms et Prénoms
Souleymane KODJO
Date: 03/08/2022
NOTE APPRECIATION
Table des matières
I. Introduction ......................................................................................................................... 3
II. But du TP ........................................................................................................................ 3
III. Architecture du système multi-agents [1] ....................................................................... 3
IV. Code Source des Agents Programmés [2] ....................................................................... 4
➢ Code source de l’AgentA ................................................................................................ 4
➢ Code source de l’AgentB ................................................................................................ 6
V. Les captures d’écran montrant l’exécution ..................................................................... 9
➢ L’Exécution 1 .................................................................................................................. 9
➢ L’Exécution 2 : ................................................................................................................ 9
VI. Conclusion ..................................................................................................................... 10
VII. Liste des figures ............................................................................................................ 11
VIII. Références ................................................................................................................. 11
2
I. Introduction
Les communications dans les systèmes multi-agents, comme chez les humains, sont à la base
des interactions et de l’organisation des agents. La communication agrandit les capacités
perceptives des agents en leur permettant de bénéficier des informations et du savoir-faire des
autres agents. Cependant les communications sont indispensables à la coopération et il est
difficile de concevoir un système d’agents coopérants s’il n’existe pas un système permettant
aux agents d’échanger des informations ou de véhiculer des requêtes.
II. But du TP
L’objectif de ce TP de pouvoir programmer deux (2) Agents sous Jade et de faire en sorte que
ces deux(agents) puissent communiquer par envoi de messages c’est-à-dire :
L'Agent 1 envoie un message à l'Agent 2 contenant un nombre x. L'Agent 2 reçoit le message,
détermine si le nombre x est premier ou non et renvoie le résultat à l'Agent 1. L'Agent 1 reçoit
le résultat et l'affiche.
Les différents agents coopèrent et interagissent, par échange de messages, suivant une approche
décentralisée pour construire un ordonnancement réalisable, et ce dans le but de converger au
mieux vers une solution globale
Localement, chaque agent définit un plan de réalisation en utilisant des règles de priorité tout
en minimisant les espaces d’inoccupation de sa machine.
Dans le cas présent nous parlerons d’un système de deux agents interactifs.
3
Le mode d’interaction dans le système multi-agents consiste en la mise en relation dynamique
des agents par le biais d’un ensemble d’actions interchangées (algorithmes locaux, échange de
messages). Cette mise en relation dynamique entre les agents du système conduit à la
convergence vers les solutions désirées.
Nous précisons toutefois que durant le processus d’interaction, chaque agent Machine est en
connexion, avec ses agents voisins auxquels il est lié au sens de la gamme opératoire tant que
la solution finale n’est pas arrêtée ; ces agents, avec qui il doit coopérer pour l’établissement de
son plan local, sont identifiés dans sa base connaissances (relative au sou problème qui lui a été
affecté).
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.FSMBehaviour;
import jade.core.behaviours.OneShotBehaviour;
import jade.lang.acl.ACLMessage;
agentA_beh.registerDefaultTransition("attendreAgentB", "envoiChiffre");
agentA_beh.registerTransition("envoiChiffre", "attendreAgentB",0);
agentA_beh.registerTransition("envoiChiffre", "afficherReponse",0);
agentA_beh.registerTransition("afficherReponse", "fin",0);
addBehaviour(agentA_beh); }
@Override
4
block();}}
int valeurRetour = 0;
@Override
if (messageRecu.getContent().equalsIgnoreCase("pret") ) { valeurRetour=0;
}else{valeurRetour=1;}
//messageEnvoie.addReceiver(messageRecu.getSender()); OLD 58
messageEnvoie.setContent(nombre+"");
send(messageEnvoie);
block() ;
return valeurRetour;
@Override
/*****************************************************************/
@Override
System.out.println("Fin de Communication");
myAgent.doDelete();
5
➢ Code source de l’AgentB
import jade.core.Agent;
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.FSMBehaviour;
import jade.core.behaviours.OneShotBehaviour;
import jade.lang.acl.ACLMessage;
String reponse ;
int reste;
reste = nbre%i;
if(reste == 0){
flag = false;
break;
//si flag est true, alors nombre est premier, sinon non premier
if(flag)
else
//Fin Fonction
6
FSMBehaviour agentB_beh= new FSMBehaviour();
agentB_beh.registerDefaultTransition("attendrechiffre", "afficher");
agentB_beh.registerTransition("attendrechiffre", "VerifieNombre",0);
agentB_beh.registerTransition("VerifieNombre", "envoieReponse",0);
agentB_beh.registerTransition("envoieReponse", "fin",0);
addBehaviour(agentB_beh);
/**********************************************************************/
int valeurRetour = 0;
System.out.println("En attente.........");
if(!stop){
message.setContent("pret");
send(message);
valeurRetour=0;
block();
}else{
message.setContent("arret");
send(message);
valeurRetour=1;
return valeurRetour;
7
}
/**********************************************************************/
int valeurReTour = 0 ;
@Override
reponse = verifie(nombre) ;
/**********************************************************************/
@Override
msg.setContent(reponse);
send(msg);
//stop = true ;
@Override
myAgent.doDelete();
} }}
8
V. Les captures d’écran montrant l’exécution
➢ L’Exécution 1
Figure 2 L’Exécution 1
➢ L’Exécution 2 :
Figure 3 L’exécution 2
➢ Le Résultat de l’exécution :
9
VI. Conclusion
Ce TP nous a appris la manière de faire communiquer deux agents dans le Framework jade à
travers deux agents pour vérifier si un nombre est premier ou pas et d’afficher le résultat .
Par ailleurs il nous a permis d’améliorer nos connaissances en matière de programmation agents
JADE en java à l’aide d’IDE Eclipse et de comprendre la manière d’échanger des informations
entre deux agents.
10
VII. Liste des figures
FIGURE 1 STRUCTURE DU SYSTEME MULTI-AGENTS .............................................................................................. 3
FIGURE 2 L’EXECUTION 1 ........................................................................................................................................ 9
FIGURE 3 L’EXECUTION 2 ....................................................................................................................................... 9
FIGURE 4 RESULTAT DE L'EXECUTION ..................................................................................................................... 9
VIII. Références
1. Structure d’un système multi-agents,
https://www.researchgate.net/publication/281328109 [Consulté le 01/08/2022]
2. Structure d’un système multi-agents,
https://djug.developpez.com/java/jade/communication [Consulté le 01/08/2022]
11