Comportamiento agentes

Solo disponible en BuenasTareas
  • Páginas : 14 (3292 palabras )
  • Descarga(s) : 0
  • Publicado : 24 de mayo de 2011
Leer documento completo
Vista previa del texto
Comportamientos de los Agentes
2.1 Qué es un comportamiento 2.2 Añadir y eliminar comportamientos 2.3 Métodos de un comportamiento 2.4 Ejecución de los comportamientos 2.5 Flujo de control de un agente 2.6 Tipos de comportamiento
2.6.1 Comportamiento genérico 2.6.2 Comportamientos simples 2.6.3 Comportamientos compuestos 2.6.4 Comportamientos temporales

2.7 Ejercicios

2.1 Qué es uncomportamiento
Un comportamiento o behaviour hace referencia a una funcionalidad que incorpora el agente. Los comportamientos especifican tareas o servicios que realiza un agente para lograr sus objetivos. Cada comportamiento puede realizar una tarea simple como "Envia este mensaje" o "compra X " aunque también se pueden crear comportamientos compuestos. Cada tarea del agente sará una instancia de unaclase que deber heredar de la clase Behaviour.

class MiComportamiento extends Behaviour{ … }

Por este motivo, e código JAVA que implementa esa funcionalidad ha de importar el paquete:

jade.core.behaviours.*

Aunque bastaría con importar simplemente la clase Behaviour que se encuentra en:

jade.core.behaviours.Behaviour

Nota: En el siguiente enlace se encuentra una descripción detodos los métodos disponibles en la Clase Behaviour Los agentes están programados en base a sus comportamientos. La programación basada en comportamientos debe realizar los siguientes pasos:

1. Determinar qué debe ser capaz de hacer el agente.
2. Asociar cada funcionalidad con un comportamiento. 3. Escoger el tipo de comportamientos 4. Dejar a JADE la tarea del scheduling (un solocomportamiento se está ejecutando en cada instante).

2.2 Añadir y eliminar comportamientos
La clase Agent provee dos métodos para añadir y borrar comportamientos a un agente: addBehaviour(Behaviour) y removeBehaviour(Behaviour). Estos métodos permiten gestionar la entrada y salida de los objetos Behaviour en la cola del planificador. El planificador va ejecutando según una política round-robin los objetosbehaviour que se encuentran en una cola FIFO. Los comportamientos pueden ser añadidos o eliminados en cualquier momento de la vida del agente, desde el método setup() o desde cualquier otro comportamiento, incluso desde otros agentes. Crear un comportamiento no es más que crear una clase privada dentro de la clase del agente y asociarlo a ese agente mediante el método addBehaviour(Behaviour).Añadir un comportamiento debe ser visto como la ejecución de un nuevo thread dentro del agente. En el siguiente ejemplo se puede ver como se añade un comportamiento desde el método setup() del agente.

import jade.core.Agent; import jade.core.behaviours.*; public class MiAgente extends Agent{ protected void setup(){

//Aqui es donde se añade el comportamiento. addBehaviour(newMiComportamiento1()); } //Este es el comportamiento. private class MiComportamiento1 extends Behaviour{ public void action(){ System.out.println("Mi nombre es: "+getName() ); System.out.println("Soy el comportamiento del agente"); } public boolean done(){ return true; } } }

En el siguiente ejemplo se muestra como se puede añadir un comportamiento desde otro comportamiento. Para ello usaremos una variable de laclase Behaviour llamada myAgent que funciona como una referencia al agente que esta ejecutando el comportamiento, es decir, al agente al que pertenece el comportamiento.

import jade.core.Agent; import jade.core.behaviours.*; public class MiAgente extends Agent{ protected void setup(){ //Aqui es donde se añade el comportamiento. addBehaviour(new MiComportamiento1()); } //Este es el comportamiento.private class MiComportamiento1 extends Behaviour{ public void action(){ System.out.println("Mi nombre es: "+getName() ); System.out.println("Soy el primer comportamiento"); myAgent.addBehaviour(new MiComportamiento2()); } public boolean done(){ return true;

} } //Este es el otro comportamiento private class MiComportamiento2 extends Behaviour{ public void action(){ System.out.println("Soy...
tracking img