IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation par agent Java Discussion :

Language de communication entre les agents jade


Sujet :

Programmation par agent Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 69
    Par défaut Language de communication entre les agents jade
    bonjour à tous,
    je devellope une application à base d'agents jade avec java.
    le problème que je rencontre c'est que la communication entre mes deux agents ne marche pas, càd que qd le 1er agent envoie un message l'autre ne le receptionne pas.
    voila mon problème, en fait j'arrive pas à comprendre ou se trouve le pb.
    voici ici la portion du code de l'agent Sender:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ACLMessage aclMessage = new ACLMessage(ACLMessage.REQUEST);
       AID aid=new AID("jack",true);
       aclMessage.addReceiver(aid
     
       aclMessage.setContent("Hello! How are you?");
     
       this.send(aclMessage);
    et la portion du code de l'agent receiver:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (true) { ACLMessage aclMessage = myAgent.receive(mt);
                        if (aclMessage!=null)// le pb est ici(aclmessage=null)
                        {System.out.println(myAgent.getLocalName()+": I receive message.\n"+aclMessage);
                        } else {this.block();}
                      }
    si qlq peut m'aider j'en serait reconnaissante;
    cordialement

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    J'avais travaillé avec Jade, et la communication entre agents fonctionnait.

    N'ayant pas l'intégralité de ton code sous les yeux, je ne peux pas te dire ce qui ne va pas exactement... d'autant plus que je ne connais pas le Framework par coeur.

    Cependant, le "while(true)" est déjà curieux. Avec Jade, tu as des "Listeners" qui te permettent de réagir à la réception d'un message de manière plus fine.

    Les sources du projet sur lequel j'avais travaillé sont disponibles en OpenSource. Va donc les récupérer: tu pourras essayer de les décortiquer pour voir comment communiquent les agents.

    Attention, le projet est complexe, et utilise plusieurs technologies (et entre autre des ontologies): le but était de créer un réseau d'agents capable de réagir intelligemment à une situation donnée (intelligence artificielle).

    Le projet s'appelle Cobra, et est disponible à cette adresse: http://cobra.umbc.edu/
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Par défaut pb d'installation
    Bonjour
    Please, pouvez vous m'aider:je n'arrive pas à installer JADE.
    J'ai déja téléchargé l'archive, je l'ai décompressée(sous c:\). J'ai téléchargé JDK 6u2 et je l'ai excécuté. j'ai créé un fichier .bat sous la racine (c:\) contenant les lignes suivantes:

    set jade= C:\JADE\JADE-bin-3.5\jade\lib\base64.jar;C:\JADE\JADE-bin-3.5\jade\lib\http.jar;C:\JADE\JADE-bin-3.5\jade\lib\iiop.jar; C:\JADE\JADE-bin-3.5\jade\lib\jade.jar;C:\JADE\JADE-bin-3.5\jade\lib\jadeTools.jar;./;
    java -classpath %jade% jade.boot -gui

    mais ca ne marche comme meme pas.
    Pouvez vous m'aider please (me donner les étapes en détail)?
    Merc d'avance.

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Déjà, je te déconseille de lancer JADE depuis la ligne de commande pour débuter.

    Le plus simple est de créer un projet dans Eclipse (ou NetBeans), et d'inclure les jar dans le classPath de l'application. Ensuite tu lances ta commande via le menu "Run": le classpath sera automatiquement renseigné.

    Une fois que ça fonctionnera correctement, tu pourras tenter de le lancer à la main.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Par défaut
    je suis débutante dans le domaine, alors il faut aller molo molo avec moi.
    - déjà comment lancer JADE depuis la ligne de commande pour débuter?avec quelle commande.
    - comment créer un projet dans Eclipse (ou NetBeans)?
    - inclure les jar dans le classPath de l'application se fait à travers les variables d'environnement (panneau de config/systeme/avancé/variables d'envronnement) et là j'ajoute une nouvelle variable avec les jar?

  6. #6
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Commence par le commencement:

    - lis les tutoriaux de base sur le langage java et sur l'IDE de ton choix (NetBeans, Eclipse, ou autre)

    pour l'avoir utilisé, JADE est un Framework complexe pour la programmation de systèmes multi-agents. Tu ne t'en sortiras pas sans un bon IDE et de sérieuses bases en java (au moins jusqu'à la programmation en multi-threads).
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 69
    Par défaut voici le code complet:
    bonjour,
    Merci d'abord de votre attention sur mon problème.
    Initialement je voulais faire un petit code contnant 2 agents, le premier envoie au second un petit message et voici le code complet des deux agents:

    1-agent sender:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    package application_02;
     
    import jade.core.*;
    import jade.core.AID;
    import jade.lang.acl.ACLMessage;
     
    public class Sender extends Agent {
     
       protected void setup() {
       System.out.println("Hello. My name is "+this.getLocalName());
       sendMessage();
     }
     
     private void sendMessage() {
     
       ACLMessage aclMessage = new ACLMessage(ACLMessage.REQUEST);
       AID aid=new AID("jack",true);
       aclMessage.addReceiver(aid);//(new AID("jack"));
       aclMessage.setContent("Hello! How are you?");
       this.send(aclMessage);
     }
    }
    2-Agent receiver:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    package application_02;
    import jade.core.Agent;
     
    public class AgentBD extends Agent {
     protected void setup() {
     System.out.println("Hello. My name is "+this.getLocalName());
     addBehaviour(new ResponderBahaviour(this));
    }
    }
    3- code du behavior:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    package application_02;
    import jade.core.*;
    import jade.lang.acl.ACLMessage;
    import jade.lang.acl.MessageTemplate;
    import jade.core.behaviours.SimpleBehaviour;
     
    public class ResponderBahaviour extends SimpleBehaviour {
     
    private static final MessageTemplate mt = MessageTemplate.MatchPerformative(ACLMessage.INFORM);
     
        public ResponderBahaviour(Agent agent) {super(agent);}
        public void action() {
        while (true) { ACLMessage aclMessage = myAgent.receive(mt);//ici on a essayé de le faire avec le if au lieu du while(true);mais il retourne toujour NULL!
                        if (aclMessage!=null)
                        {System.out.println(myAgent.getLocalName()+": I receive message.\n"+aclMessage);
     
                        } else { 
                            this.block();}
                      }
                  }
     
     public boolean done() {
       return false;
     }
     
    }

    Merci d'avance de votre aide .

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 69
    Par défaut
    Bonjour CyberChouan,
    j'attend toujours votre aide, vraiment je suis bloquée.
    en fait, j'ai accéder au lien que vous m'avez proposé mais je me suis perdue la dedans, si vous me donnez le lien complet(ie le chemin vers le code source que vous avez developpez ça serait trop gentil de votre part).
    cordialement.

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Par défaut premier programme agent hello world marche pas!!!!!
    Bonjour a tous , moi aussi je débute en jade , j'ai essayé de fair mon peremier programme agent " hello world" , avec eclipse , mais mon hello world ne s'affiche pas , a l'execution , je fais run application java , aprés ya plein de possibilité qui s'affiche , on me select java application ex :Boot-jade , TestAgent-jade.tools;testagent , j'ai rien compri a tout ça moi je eux juste afficher mon hello world , pouvez vous m'eclaircir svp merci

  10. #10
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    Manque des truc la non ?
    Faut bien declarer ton listener quelque part ?

    Sinon as tu bien visité la page de doc du site officiel

    De memoire elle est tres bien faite et m as permit de faire pas mal de chose (un mini espece de tchat pour mes premiers pas pour faire dans l originalité )

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 192
    Par défaut base64.jar?
    bonjour a tous
    j'ai trouvé dans plein de tutoriels "base64.jar" pour installer jade mais je l'ai pas ds mon zip, j'ai même téléchargé la dernier version mais y a pas
    est ce pour ça que l'agent halloWord n'affiche rien.?

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 192
    Par défaut problème de communication agents
    bonjour,
    j'ai un pb avec la communication entre les agents, le 1er agent effectue correctement l'envoie, mais le 2eme ne reçoit rien, et portant le code c'est tout simple c'est juste pour tester
    voila le code:
    agent emetteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
     import jade.core.Agent;
    import jade.core.behaviours.OneShotBehaviour;
    import jade.lang.acl.ACLMessage;
    import jade.lang.acl.MessageTemplate;
    //import jade.lang.acl.MessageTemplate;
    import jade.core.AID;
     
        public class agent extends Agent 
        {
     
        	public String texte;
            protected void setup() 
            {
            	System.out.println("Hallo!agent emetteur "+getAID().getName()+" is ready.");
     
                addBehaviour( new B1( this ) );
                        }
     
     
            class B1 extends OneShotBehaviour 
            {   
                public B1(Agent a) { 
                    super(a);  
                }
     
                public void action() 
                {    
                 String resultat = "tt va bien";
               	ACLMessage msg = new ACLMessage(ACLMessage.REQUEST);
                        	msg.addReceiver(new AID("n1", AID.ISLOCALNAME));
                        	msg.setConversationId("poupre");
                        	msg.setContent(resultat);
                        	System.out.println("voila le msg: "+msg.getContent());
                        	send(msg);	
     
     
            } // ----------- End myBehaviour
     
            }
            private boolean finished = true;
     
            public boolean done() {  
               return finished;  
            }
        }
    agent recepteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    public class n1 extends Agent {
     
    	private MessageTemplate mt;
    	protected void setup(){
    		addBehaviour( new qlq( this ) );
     
    }
    	class qlq extends OneShotBehaviour 
        {   
            public qlq(Agent a) { 
                super(a);  
            }
     
            public void action() 
            {
    	System.out.println("Hallo!agent N1 "+getAID().getName()+" is ready.");
    	System.out.println("ca marche je suis ds l'agent n&");
    	mt = MessageTemplate.MatchConversationId("poupre");
    	 ACLMessage msg = receive(mt);
    	// String title = msg.getContent();
    //ACLMessage msg = receive();
    if(msg!=null){
    	try{
    		//String s = msg.getContent().toString();
     
    System.out.println("msg recu::::::::::::::: "+msg.getContent());
    }
     
    	catch(Exception e){
     
    	}
     
    } 
    }
        }
    	 private boolean finished = true;
     
         public boolean done() {  
            return finished;  
         }
    }

  13. #13
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 192
    Par défaut SOS
    Bonjour,
    J’ai un problème avec Jade,voila mon problème:
    J’ai 2 agents (agent onto, et agent receiver), l'agent onto envoie un msg qui contient les concepts de l'ontologie et l'agent receiver reçoit ce msg mais pas complet, il ne reçoit que le 1er concept envoyé les autres non, je ne sais pas si c'est un problème de récupération de msg
    SVP aider moi j'ai plus beaucoup de temps

    agent onto ( charge le model d'ontologie puis extrait les concepts)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
     
    import jade.core.Agent;
    import jade.core.AID;
    import jade.core.behaviours.OneShotBehaviour;
    import jade.lang.acl.*;
    import com.hp.hpl.jena.ontology.*;
    import com.hp.hpl.jena.rdf.model.*;
    import com.hp.hpl.jena.util.iterator.Filter;
    import java.io.PrintStream;
    import java.util.*;
     
    public class Extractionconceptonto extends Agent {
     
    	protected void setup(){
     
    		System.out.println("Hallo! Buyer-agent "+getAID().getName()+" is ready."); 
     
    		addBehaviour( new B1( this ) );
    		}
     
    	class B1 extends OneShotBehaviour 
        {   
            public B1(Agent a) { 
                super(a);  
            }
     
            public void action() 
            {
     
    		OntModel m = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
     
            // we have a local copy of the wine ontology
            m.getDocumentManager().addAltEntry("http://www.owl-ontologies.com/Ontology1182548999.owl#","file:/eclipse/workspace/SMA/OntomedF/OntoMed.owl" );
     
           m.read("file:/eclipse/workspace/SMA/OntomedF/OntoMed.owl");
           String camNS = "http://www.owl-ontologies.com/Ontology1182548999.owl#";
           Resource r = m.getResource( camNS + "Pathologies" );
           OntClass camera = m.getOntClass( camNS + "Pathologies" );
           for (Iterator i = camera.listDisjointWith(); i.hasNext(); ) {
             OntClass c = (OntClass) i.next();
            // System.out.println( c.getLocalName() + " ," );
             AID r1 = new AID();
     
             r1.setLocalName("moi");
     
             ACLMessage msg = new ACLMessage(ACLMessage.INFORM);
             msg.setSender(getAID());
             msg.addReceiver(r1);
             msg.setContent((String)c.getLocalName());
             send(msg);
             System.out.println(c.getLocalName() +":::::::::::::: est le msg envoyer ");
     
     
           }
     
            }
    }
    }
    agent receiver (reçoit le msg et affiche les concepts)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    import jade.core.*;
    import jade.core.behaviours.*;
    import jade.lang.acl.ACLMessage;
     
     
    public class receiverAgent extends Agent {
     
            class DoSimpleReceiveBehaviour extends SimpleBehaviour {
                    private boolean finished = false;
     
                    public DoSimpleReceiveBehaviour(Agent agent){
                            super(agent);
                    }
     
                    public void action() {
                            ACLMessage msg = receive();
     
                            if (msg!= null){
                                    System.out.println(getLocalName() + ": received the following message : ");
                                    System.out.println(msg.toString());
                                    finished = true;
                                    myAgent.doDelete();
                            }else{
                                    System.out.println(getLocalName() + ":No message received, Blocking the behaviour till one is");
                                    block();
                            }
                    }
     
                    public boolean done() {
                            return finished;
                    }
            }
     
     
            protected void setup() {
                    DoSimpleReceiveBehaviour behaviour = new DoSimpleReceiveBehaviour(this);
                    addBehaviour(behaviour);
            }
     
     
    }
    Merci

  14. #14
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 14
    Par défaut
    salut à tous ,
    Je suis entraint de realiser mon projet de fin d'etude intitulé "vente aux enchères par system multi agent" si quel qu'un peut me fournir de tutoriel sur JADE avec des sources je serai tres reconnaissant

    Merci

  15. #15
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 192
    Par défaut
    bonjour
    vous trouvez touts ce que vous voulez sur le site officiel http://jade.tilab.com/ et pour la doc http://jade.tilab.com/doc/index.html
    bon courage

  16. #16
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Par défaut protocole Contract Net
    SVP,
    c'est quoi ce protocole?
    à quoi sert?
    où on peut l'utiliser?
    merci pour vos réponses

Discussions similaires

  1. Communication entre des agents jade
    Par Nouur dans le forum Programmation par agent
    Réponses: 0
    Dernier message: 28/04/2014, 23h39
  2. Communication entre des agents jade
    Par Nouur dans le forum Programmation par agent
    Réponses: 0
    Dernier message: 28/04/2014, 23h36
  3. Problème communication entre les agents
    Par jawhane dans le forum Programmation par agent
    Réponses: 0
    Dernier message: 20/11/2013, 11h11
  4. Problème de communication entre les agents
    Par jawhane dans le forum Programmation par agent
    Réponses: 2
    Dernier message: 04/10/2013, 15h27
  5. Réponses: 0
    Dernier message: 26/04/2013, 21h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo