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.
Bonsoir;
Je veux programmer un simple agent en JADE, mais mes connaissance sont très limitées ainsi le temps de réalisation du travaildonc, 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![]()
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
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 javasi vous avez un problème avec Jade pose le
![]()
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![]()
mouvement aléatoire c-à-d il n'a aucune information sur la position suivante. donc il va choisir aléatoirement leur prochaine position.
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![]()
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...![]()
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![]()
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
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 svpet merci d'avance
Voici le code de mon agent :
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
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); } } }
Aidez moi svp
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![]()
Partager