Bonjour,
voici un article sur les Behaviours (Comportements) des agents JADE
http://djug.developpez.com/java/jade/behaviours/
vos remarques sont les bienvenues.
Bonjour,
voici un article sur les Behaviours (Comportements) des agents JADE
http://djug.developpez.com/java/jade/behaviours/
vos remarques sont les bienvenues.
Merci bcp.![]()
Bonjour,
j'ai quelques soucis quand à la prise en main des behaviour :
ceux ci sont censé pouvoir "controler" un agent.
Mais comment sont ils sensé être utilisés ?
J'ai une classe Explorer (mon behaviour) et une classe Robot (mon agent)
comment je dois faire pour que mon agent puisse utiliser le behaviour explorer et surtout comment écrire le behaviour pour que le robot puisse être contrôler ?
je veux que mon robot, qui possède des attribut x et y, se déplace de manière aléatoire (via le behaviour)
un peu de code pour illustré :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class MiningRobot { int id; int x; int y; ... get setter ... }c'est peut être une erreur de ma part quand à l'architecture et l'utilisation des behaviour.
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 public class Explore extends Behaviour { @Override public void action() { int xrand = (int) (Math.random() * 3) - 1; int yrand = (int) (Math.random() * 3) - 1; ... ICI je veut controler mon robot en lui faisant robot.setX(robot.getX + xrand) ... } @Override public boolean done() { // TODO Auto-generated method stub return false; }
Bonne journée
auto résolu,
il suffit de mettre l'agent en paramètre du behaviour.
bonne journée
petite précision :
les behaviour comportent déjà un paramètre agent.
lors de l'ajout d'un behaviour à un agent, il suffit de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part addBehaviour(new MySimpleBehaviour(this));
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