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 :

Les Behaviours dans JADE [Tutoriel]


Sujet :

Programmation par agent Java

  1. #21
    Expert confirmé

    Avatar de Djug
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    2 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 980
    Par défaut
    Citation Envoyé par sassion Voir le message
    Bonjour,
    s'il vous plait savez vous comment programmer l'agent sniffer.

    merci.
    Voulez-vous créer un autre agent qui joue le même rôle que l’agent sniffer ?

    non, je ne sais pas comment le faire

  2. #22
    Invité de passage
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1
    Par défaut problème dans mon programme jade
    Bonjour;
    SVP, j'ai un problème dans mon programme, je me suis bloqué à ce niveau et je dois récupérer donc j'ai besoin de votre aide.
    voilà j'ai crée un agent interface et à travers cet agent j'ai crée deux types d'agents jobs et ressources j'ai terminé toutes les communications et j'ai terminé mon code mais je dois faire plusieurs itérations (en fait l'agent interface communique avec les agent job et les envoie des données puis les agents jobs communiquent avec les agents ressources et lui envoie des données aussi et enfin les agents ressources envoie des modifications vers l'agent interface donc on a des nouvelles données à être envoyer vers les agents jobs de la part de l'agent interface dons ici on doit refaire tout le circuit avec les nouvelles données donc les boucles d'itérations je les ai fait au niveau des transitions voilà mes transitions au niveau de chaque agent surtout au niveau de l'agent interface où on doit faire les itérations:


    agentA_beh.registerTransition("creation_agents", "envoie_op_jobs",1);
    agentA_beh.registerTransition("envoie_op_jobs", "envoie_phero_Job",1);
    agentA_beh.registerTransition("envoie_phero_Job", "reception_ress",1);
    agentA_beh.registerTransition("reception_ress", "Attente_ress",0);
    agentA_beh.registerTransition("Attente_ress", "reception_ress",0);
    agentA_beh.registerTransition("reception_ress", "envoi_ress",1);
    agentA_beh.registerTransition("envoi_ress", "recep_agent_ress",1);
    agentA_beh.registerTransition("recep_agent_ress", "Attente",0);
    agentA_beh.registerTransition("Attente", "recep_agent_ress",0);
    agentA_beh.registerTransition("recep_agent_ress","incrémentation",1);
    agentA_beh.registerTransition("incrémentation","envoie_op_jobs",1);
    agentA_beh.registerTransition("incrémentation", "fin",2);

    voilà les transitions et je refais tous le processus dans la transition avant la dernière: dans l'état incrémentation j'incrémente si le nombre d'incrémentations est inférieur au nombre d'itérations fixé on refait le processus dés le début si non on part vers la fin.

    voilà les transitions des agents jobs :

    agentjob_beh.registerTransition("attendreAgent_interface", "envoie_Agent_interface",1);
    agentjob_beh.registerTransition("envoie_Agent_interface", "attendreAgent_interface",0);
    agentjob_beh.registerTransition("envoie_Agent_interface", "Reception_qt_phero",1);
    agentjob_beh.registerTransition("Reception_qt_phero", "en_attente",0);
    agentjob_beh.registerTransition("en_attente", "Reception_qt_phero",0);
    agentjob_beh.registerTransition("Reception_qt_phero", "placer_op1_agent_ress",1);
    agentjob_beh.registerTransition("placer_op1_agent_ress", "attente",0);
    agentjob_beh.registerTransition("attente", "placer_op1_agent_ress",0);
    agentjob_beh.registerTransition("placer_op1_agent_ress", "placer_op2_agent_ress",1);
    agentjob_beh.registerTransition("placer_op2_agent_ress", "en_attente_ress",0);
    agentjob_beh.registerTransition("en_attente_ress", "placer_op2_agent_ress",0);
    agentjob_beh.registerTransition("placer_op2_agent_ress", "placer_op3_agent_ress",1);
    agentjob_beh.registerTransition("placer_op3_agent_ress", "attendre",0);
    agentjob_beh.registerTransition("attendre", "placer_op3_agent_ress",0);
    agentjob_beh.registerTransition("placer_op3_agent_ress", "terminer_agent_ress",1);
    agentjob_beh.registerTransition("terminer_agent_ress", "attente_ress",0);
    agentjob_beh.registerTransition("attente_ress", "terminer_agent_ress",0);
    agentjob_beh.registerTransition("terminer_agent_ress", "fin_job",1);


    et voilà les transitions des agents ressources:

    agentress_beh.registerTransition("attente_ress", "attendre_op1_job",1);
    agentress_beh.registerTransition("attendre_op1_job", "attente_ress",0);
    agentress_beh.registerTransition("attendre_op1_job", "fin_ress",1);



    ici le problème c'est que lorsque je fais les itération les agents jobs et ressources ne fonctionne pas c'est à dire que l'agent interface envoie les données et passe vers l'autre transitions mais les agents jobs et ressources ne reçoivent rien donc dans les autres itérations l'agent interface seulement fonctionne il fait ses états et sort vers la fin malgré que au niveau des autres agents les agents restent vivants j'ai éliminé myAgent.do delete () mais ils ne fonctionnent pas . SVP aidez-moi comment je peux itérer le processus sans avoir ce problème et tous les agents refaient tous les itérations comme la première itération.

  3. #23
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 56
    Par défaut
    Bonsoir;

    Je veux programmer un simple agent en JADE, mais mes connaissance sont très limitées ainsi le temps de réalisation du travail donc, je suis vraiment perdue et je sais pas d'où dois-je commencer!

    Donc si vous pouvez m'orienter vers le bon chemin pour au moins coder les premières lignes, je serai très reconnaissante

    Merci d'avance

  4. #24
    Membre averti
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Par défaut
    Citation Envoyé par merry marie Voir le message
    Bonsoir;

    Je veux programmer un simple agent en JADE, mais mes connaissance sont très limitées ainsi le temps de réalisation du travail donc, je suis vraiment perdue et je sais pas d'où dois-je commencer!

    Donc si vous pouvez m'orienter vers le bon chemin pour au moins coder les premières lignes, je serai très reconnaissante

    Merci d'avance
    Bonsoir merry

    ce lien est le bon chemin pour créer un agent en JADE
    http://djug.developpez.com/java/jade/creation-agent/

    Bon courage

  5. #25
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 56
    Par défaut
    Salut,

    Le problème est que je sais pas comment commencer? je n'ai même pas un simple raisonnement!

    Par exemple quel behaviour choisir??

    Merci pour vos réponses

  6. #26
    Membre averti
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Par défaut
    Citation Envoyé par merry marie Voir le message
    Salut,

    Par exemple quel behaviour choisir??

    Merci pour vos réponses
    le choix d'un behaviour dépend de votre problème ou votre tâche a réaliser !!!

  7. #27
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 56
    Par défaut
    Je veux programmer un simple agent aspirateur, je le mets dans environnement de mon choix, disant un tableau circulaire, il doit détecter la saleté pour aller la ramasser en sauvegardant les traces de son parcours, par exemple: ( <gauche, droite> <gauche, droite , gauche> <gauche, droite , gauche, gauche> <gauche, droite , gauche, gauche, droite> <gauche, droite , gauche, gauche, droite, droite>...etc) puis quand il y'a plus de saleté et s’arrête.!!

    Que pensez-vous?

  8. #28
    Membre averti
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Par défaut
    Citation Envoyé par merry marie Voir le message
    Je veux programmer un simple agent aspirateur, je le mets dans environnement de mon choix, disant un tableau circulaire, il doit détecter la saleté pour aller la ramasser en sauvegardant les traces de son parcours, par exemple: ( <gauche, droite> <gauche, droite , gauche> <gauche, droite , gauche, gauche> <gauche, droite , gauche, gauche, droite> <gauche, droite , gauche, gauche, droite, droite>...etc) puis quand il y'a plus de saleté et s’arrête.!!

    Que pensez-vous?
    Tout d'abord, il faute limité les connaissances de l'agent aspirateur: par exemple la position de l'agent, et tu doit posé plusieurs question avant de programmer: Quel mécanisme tu choisi pour que l'agent mouve d'une position a une autre ?! par exemple mouvement aléatoire ou nn ?!
    Aussi une autre question la saleté est de quel type ( fonction, variable booleanne,...) ds ce programme?! encore la détection de la saleté???

    Alors tu doit mettre les points sur les i avant de programmer!! la programmation c'est juste une traduction a votre raisonnement. le problème ici c'est le raisonnement et non plus JADE ou java si vous avez un problème avec Jade pose le

  9. #29
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 56
    Par défaut
    Voila, j avais besoin de ces questions pour voir comment bien commencer? c est ce que me manque, le bon raisonnement.

    Mouvement aléatoire? C est a dire il est autonome dans le choix de ses déplacement?

    "la saleté est de quel type" Je n ai jamais pensé à ça! expliquez moi svp!

    Merci

  10. #30
    Membre averti
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Par défaut
    Citation Envoyé par merry marie Voir le message

    Mouvement aléatoire? C est a dire il est autonome dans le choix de ses déplacement?
    mouvement aléatoire c-à-d il n'a aucune information sur la position suivante. donc il va choisir aléatoirement leur prochaine position.

    Citation Envoyé par merry marie Voir le message
    "la saleté est de quel type" Je n ai jamais pensé à ça! expliquez moi svp!

    Merci
    comment l'agent va détecter si dans sa position actuelle il y a une saleté ou non ?? donc cette position doit avoir un critère différent a une autre position qui n'a pas la saleté? peut être représenter par une variable booleanne si la position est sale alors la variable a la valeur vrai sinon faux. bon c'est un exemple tu peux choisi autrement

  11. #31
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 56
    Par défaut
    ahaa...c'est un peu plus claire now

    L'aléatoire c'est à moi de choisir si j le veux ou pas; après avec des fonctions prédéfinies je le programme; c'est ça?

    Les cases sales je les initialise dés le début donc, comme ça quand mon propre agent avance il fait un test sur la case et décide s'il doit nettoyer ou non?

    c'est vraiment super quand on trouve des gens qui partagent leur savoir avec les débutants...

  12. #32
    Membre averti
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Par défaut
    Citation Envoyé par merry marie Voir le message
    ahaa...c'est un peu plus claire now

    L'aléatoire c'est à moi de choisir si j le veux ou pas; après avec des fonctions prédéfinies je le programme; c'est ça?
    tu veux dire si tu déplace a cette position ou non!!
    en fait, l’aléatoire peut être présenter par une fonction qui retourne la prochaine position a visiter

    Bon courage

  13. #33
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 56
    Par défaut
    Please pouvez-vous me donnez d'autre critères pour compléter le behaviour de mon agent?

    à quoi dois-je penser encore?


  14. #34
    Membre averti
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Par défaut
    Citation Envoyé par merry marie Voir le message
    Please pouvez-vous me donnez d'autre critères pour compléter le behaviour de mon agent?

    à quoi dois-je penser encore?

    tu ne peux pas définir tout le comportement de l'agent dés le début ou même penser a tous!! il faut que tu programme le mécanisme de base de l'agent :
    • mouvement d'une case a une autre
    • definir une case sale
    • comment l'agent va detecter la salete
    • comment l'agent nettoyer la case s'il est sale
    • la condition d'arret de l'agent

    Puiis, tu pense a améliorer ton agent selon tes besoin

  15. #35
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 56
    Par défaut
    Salut

    Revenue avec beaucoup de nouvelles questions...

    1st: C'est une plateforme JADE?

    2nd: J'ai fini la programmation "mais sous JAVA" de mon agen, càd: j'ai programmé tout le comportement que mon agent est censé exécuter; maintenant est-t-il possible de limiter la méthode qui présente le comportement par un behaviour simple et dire que j'ai un agent bien implémenté sur une plateforme JADE??

    Sans utiliser un AMS et le DF?

    Cette question me tracasse je vous prie de bien vouloir me répondre...

    Cordialement

  16. #36
    Futur Membre du Club
    Femme Profil pro
    Etudiante chercheuse
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Etudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Par défaut Demande d'aide ! Merci d'avance
    Bonjour, je suis nouvelle avec la plateforme JADE
    J'ai exécuté les exemples des 3 tutorial que Djug a posté
    D'ailleurs je le remercie pour son effort. Ils sont très bien expliqués .
    Je suis entrain de préparer ma mémoire de mastère et je dois proposer une approche multi-agents pour la résolution du problème d'ordonnancement de projets avec des contraintes de ressources.
    Je voulais utiliser un FSMBehaviour contenant un état initial (OneShotBehaviour) et ça a marché sans aucune erreur ! mais pour le 2ème état je voulais que ça soit un ParallelBehaviour ! là ça n'a pas marché !
    Veuillez m'aider svp et merci d'avance
    Voici le code de mon agent :

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    package lesAgents;
     
    import jade.core.Agent;
    import jade.core.behaviours.FSMBehaviour;
    import jade.core.behaviours.OneShotBehaviour;
    import jade.core.behaviours.ParallelBehaviour;
     
     
    public class Coordinateur extends Agent {
     
    	/**
             * @param args
             */
    	//***********************************************************
    	protected void setup()
    	{
    		System.out.println("Bienvenue, je suis l'agent " + getLocalName());
     
    		// Création d'un comportement FSM qui implémente un automate à état finis
    		FSMBehaviour fsm = new FSMBehaviour(this)
    		{
    			/*public int onEnd() 
    			{
    				System.out.println("Traitement términé");
    				//myAgent.doDelete();
    				return super.onEnd();
    			}*/
    		};
    		// Définition des états
    		fsm.registerFirstState	(new Initialisation(),"Initialisation");
    		fsm.registerState(new CreationAgents(),"CreationAgents");
     
     
    		// Définition des transitions
    		fsm.registerDefaultTransition("Initialisation","CreationAgents");
    		//fsm.registerTransition("B","B",1);
     
    		addBehaviour(fsm);
    	}
    	//**********Etat initial***************************************
    	private class Initialisation extends OneShotBehaviour
    	{
    		@Override
    		public void action() 
    		{
    			System.out.println("Je vais maintenant lancer l'application");		
     
    		}
    	}
    	//**********Création des agents*******************************
    	public class CreationAgents extends OneShotBehaviour
    	{
    		public void action()
    		{
    			//********* Behaviour parallele ********************* 
    			ParallelBehaviour creationparallele = new ParallelBehaviour(ParallelBehaviour.WHEN_ALL);
     
    			//*********** création des agents ressources**********
    			creationparallele.addSubBehaviour(new OneShotBehaviour()
    			{
    				@Override
    				public void action() 
    				{
    					System.out.println("agents ressources");
     
    				}
    			});
     
    			//***********création des agents activités*************
    			creationparallele.addSubBehaviour(new OneShotBehaviour()
    			{
    				public void action()
    				{
    					System.out.println("agents activités");
    				}
    			}
    			);
    			addBehaviour(creationparallele);
    		}
    	}
    }
    Voici le message d'erreur affiché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Bienvenue, je suis l'agent Coordinateur
    Je vais maintenant lancer l'application
    ***  Uncaught Exception for agent Coordinateur  ***
    ERROR: Agent Coordinateur died without being properly terminated !!!
    java.lang.RuntimeException: Inconsistent FSM. State: CreationAgents event: 0
    	at jade.core.behaviours.FSMBehaviour.handleInconsistentFSM(FSMBehaviour.java:377)
    	at jade.core.behaviours.FSMBehaviour.scheduleNext(FSMBehaviour.java:369)
    	at jade.core.behaviours.CompositeBehaviour.action(CompositeBehaviour.java:96)
    	at jade.core.behaviours.Behaviour.actionWrapper(Behaviour.java:340)
    	at jade.core.Agent$ActiveLifeCycle.execute(Agent.java:1530)
    	at jade.core.Agent.run(Agent.java:1468)
    	at java.lang.Thread.run(Unknown Source)
    State was 2
    Aidez moi svp

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 04/05/2015, 00h29
  2. Réponses: 9
    Dernier message: 06/11/2007, 13h36
  3. [syntaxe] Gerer les variables dans une requete
    Par rastapopulos dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 15/04/2003, 13h53
  4. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 14h39

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