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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Les Behaviours dans JADE
    Bonjour,

    voici un article sur les Behaviours (Comportements) des agents JADE

    http://djug.developpez.com/java/jade/behaviours/


    vos remarques sont les bienvenues.

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Par défaut cool
    Merci bcp.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Par défaut
    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 ...
    }
    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;
    	}
    c'est peut être une erreur de ma part quand à l'architecture et l'utilisation des behaviour.

    Bonne journée

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Par défaut
    auto résolu,
    il suffit de mettre l'agent en paramètre du behaviour.
    bonne journée

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Par défaut
    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));

  7. #7
    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: 03/05/2015, 23h29
  2. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  3. [syntaxe] Gerer les variables dans une requete
    Par rastapopulos dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 15/04/2003, 12h53
  4. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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