SlideShare une entreprise Scribd logo
1  sur  23
2.Comportamientos Agentes Jade
2.1 ¿Qué es un comportamiento? Un comportamiento (behavior) es una funcionalidad o conducta que tiene un agente. Especifican tareas o servicios enfocados a un objetivo Tareas simples Enviar un mensaje Comprar libro Comportamientos compuestos
Cada tarea es una instancia de una clase que debe heredar de la clase Behaviour class MiComportamiento extends Behaviour{…} El código java que implementa la funcionalidad ha de importar el paquete, o simplemente la clase Behaviour jade.core.behaviours.* jade.core.behaviours.Behaviour 2.1 ¿Qué es un comportamiento?
Descripción de los métodos de la clase Behaviour Los comportamientos son la base de la programación de agentes. Pasos para la programación de agentes: Determinar las capacidades del agente Asociar funcionalidades a comportamientos Elegir tipo de comportamientos Jade se encarga de la planificación (scheduling) En cada instante de tiempo sólo un comportamiento se está ejecutando 2.1 ¿Qué es un comportamiento?
2.2 Añadir y eliminar Los métodos para añadir y borrar comportamientos los provee la clase Agent addBehaviour(Behaviour) removeBehaviour(Behaviour) Gestionan la entrada y salida de los objetos Behaviour en la cola del planificador  Cola FIFO y política Round-Robin
2.2 Añadir y eliminar Los comportamientos se añaden o eliminar en cualquier momento de la vida del agente Se usará el método setup() o cualquier otro comportamiento u otros agentes Crear un comportamiento Es crear una clase privada dentro de la clase del agente Asociarlo al agente mediante el método addBehaviour(Behaviour) Debe considerarse el añadir un comportamiento como la ejecución de un nuevo hilo dentro del agente
2.2 Añadir y eliminar Ejemplo de cómo añadir un comportamiento desde el método setup() importjade.core.Agent;  importjade.core.behaviours.*;    publicclass MiAgente extends Agent {    protectedvoidsetup() {  	//Aqui es donde se añade el comportamiento.  addBehaviour(new MiComportamiento1());  }  	//Este es el comportamiento.  privateclass MiComportamiento1 extends Behaviour {  publicvoidaction(){  System.out.println("Mi nombre es: "+getName() ); System.out.println("Soy el comportamiento del agente");    	}  publicboolean done(){  returntrue;  		} } }
2.2 Añadir y eliminar Ejemplo de cómo añadir un comportamiento desde otro comportamiento Usamos la variable myAgent de la clase Behaviour. Funciona como una referencia al agente que está ejecutando el comportamiento. importjade.core.Agent;  importjade.core.behaviours.*;    publicclass MiAgente extends Agent { protectedvoidsetup() {  	//Aqui es donde se añade el comportamiento.  addBehaviour(new MiComportamiento1());  }  //Este es el comportamiento.  privateclass MiComportamiento1 extends Behaviour { publicvoidaction(){  System.out.println("Mi nombre es: "+getName() );  System.out.println("Soy el primer comportamiento");
2.2 Añadir y eliminar Ejemplo de cómo añadir un comportamiento desde otro comportamiento (continuación) myAgent.addBehaviour(new MiComportamiento2());  			} publicboolean done(){ return true;  } 	} //Este es el otro comportamiento  private class MiComportamiento2 extends Behaviour { publicvoidaction()v{  System.out.println("Soy el segundo comportamiento");  			} publicboolean done(){ return true;  			}  		}  	}
2.2 Añadir y eliminar Un comportamiento también puede ser eliminado de un agentecon el método removeBehaviour(Behaviour) En el ejemplo anterior, se puede borrar el primer comportamiento desde el segundo con una llamada a removeBehaviour() dentro del método action del segundo comportamiento (Ver código)
2.2 Añadir y eliminar package examples.practica2;    importjade.core.Agent; importjade.core.behaviours.*;   publicclass Ejemplo1 extends Agent{ privateBehaviour comp; 	// Inicialización del agente  protectedvoidsetup() { 			//Creamos un comportamiento: un objeto de la clase MiComportamiento1 comp = new MiComportamiento1();  	//Aqui es donde se añade el comportamiento. addBehaviour(comp);  } //Definición de un comportamiento privateclass MiComportamiento1 extends Behaviour { // define la acción a ser ejecutada cuando se ejecute el comportamiento.  publicvoidaction(){  System.out.println("Mi nombre es: "+getName() );  System.out.println("Soy el primer comportamiento");  // Añade un comportamiento desde otro comportamiento. myAgent.addBehaviour(new MiComportamiento2()); }
2.2 Añadir y eliminar 	// Determina si el comportamiento ha sido completado o no.  	// Si el comportamiento ha finalizado, éste se elimina de la cola de comportamientos activos.  publicboolean done(){  returntrue;  		}  	}    	//Definición de un segundo comportamiento privateclass MiComportamiento2 extends Behaviour{  publicvoidaction() {  System.out.println("Soy el segundo comportamiento"); myAgent.removeBehaviour(comp);//Borramos el primer 	comportamiento;  } publicboolean done() { returntrue;  		} 	} }
2.3 Métodos Toda clase heredada de Behaviour debe implementar: Método Action(): Define la acción que define el comportamiento. Incluye el código de las acciones a realizar. Se invoca con el evento asociado al comportamiento Es recomendable que sean de rápida ejecución ya que no pueden ser interrumpidos por otro comportamiento. Método done() Se invoca cuando finaliza el método action() Determina con un boolean si se ha finalizado el comportamiento. En caso afirmativo, el comportamiento se elimina de la cola de comportamientos activos Marca opcional que se activa cuando se quiere que finalice el comportamiento Es evaluada en el método done()
2.3 Métodos Ejemplo del funcionamiento de action() y done() importjade.core.Agent;  importjade.core.behaviours.*; publicclass Ejemplo2 extends Agent {    	// Inicialización del agente protectedvoidsetup() { 	// Añade un comportamiento addBehaviour(new MiComportamiento()); } // Finalización del agente protectedvoidtakeDown() { System.out.println("La escala ha terminado");  }
2.3 Métodos 	// Definición de un comportamiento privateclass MiComportamiento extends Behaviour { privateint estado = 0;  // Función que realiza MiComportamiento publicvoidaction() { switch(estado) { case 0: System.out.println("Do"); break;  				{…} 		case 6: System.out.println("Si"); break; 		case 7:{  System.out.println("Do");  myAgent.doDelete();  			break;  		} }  	estado++;  }   // Comprueba si el comportamiento ha finalizado. publicboolean done() { return (estado > 7); } } }
2.3 Métodos Para bloquear un comportamiento usamos el método block() Bloquea un comportamiento hasta algún evento No afecta a los demás comportamientos del agente Al finalizar el método action(), block() coloca el comportameinto en la cola de comportamientos bloqueados Un objeto de la clase Behaviour puede bloquearse temporalmente Se le pasa el valor al método block() en milisegundos No es igual al método sleep() de los hilos Block() espera a la finalización de action(), si el comportamiento no termina, pasa a la lista de comportamientos bloqueados durante el tiempo indicado en el método block() o hasta que ocurra el evento que espera dicho bloqueo.
2.3 Métodos package examples.practica2; importjade.core.Agent; importjade.core.behaviours.*; publicclass Ejemplo3 extends Agent{ 	// Inicialización del agente protectedvoidsetup() 	{ addBehaviour( new MiComportamiento() );  	} 	// Finalización del agente protectedvoidtakeDown() { 				System.out.println("****Agente finalizado****"); }
2.3 Métodos // Definición de un comportamiento privateclass MiComportamiento extends Behaviour { intnumeroEjecuciones = 1; // // Función que realiza MiComportamiento publicvoidaction() { System.out.println("Esta es la ejecucion "+numeroEjecuciones); 	//lo bloqueamos durante un segundo block(1000); System.out.println("Despues de 1000 milisengundos"); numeroEjecuciones++; } // Comprueba si el comportamiento ha finalizado publicboolean done(){ if(numeroEjecuciones>10){ myAgent.doDelete(); returntrue;  	}  elsereturn false; } } }
2.3 Métodos Un comportamiento se desbloquea cuando: El agente al que pertenece recibe un mensage ACL Sale de la cola de bloqueados y se coloca al final de la cola de activos Para cada mensaje todos los objetos de la cola de bloqueados deben comprobar si son los destinatarios, y en cas contrario vuelven a bloquearse Termina la interrupción asociada al comportamiento por el método block() Termina el tiempo Si se llama al método restart() desde el comportamiento. Behaviour también nos proporciona los métodos onStart() y onEnd() onStart(): Se ejecuta justo antes del método action() onEnd(): Se ejecuta antes de finalizar el comportamiento (cuando done() ha devuelto true). Devuelve un un entero que representa un valor de terminación para el comportamiento.
2.3 Métodos packageexamples.practica2; importjade.core.Agent;  importjade.core.behaviours.*; publicclass Ejemplo4 extends Agent{ // Inicialización del agente protectedvoidsetup() { 	// Añadir un comportamiento. addBehaviour(new MiComportamiento()); }   // Definición de un comportamiento privateclass MiComportamiento extends Behaviour { // Este método se ejecuta justo antes de la ejecución del método action() publicvoidonStart() { System.out.println("Esto se hace cada vez que se inicia el comportamiento"); }
2.3 Métodos // Funcion a realizar por el comportamiento publicvoidaction() { System.out.println("Hola a todos."); //Lo bloqueamos durante un segundo block(1000); System.out.println("Despues de 1 segundo");  } // Comprueba si el comportamiento ha finalizado publicboolean done(){ return true;  } 	// Se ejecuta antes de finalizar el comportamiento publicintonEnd() {	 // Hace que el comportamiento se reinicie al finalizar. reset(); myAgent.addBehaviour(this); return0; } } }
2.4 Ejecución Cada agente tiene un scheduler propio. Planificación preemptiva. No existe concurrencia real dentro de un mismo agente. Ahorro de CPU y memoria. Un comportamiento puede bloquearse cuando termina action(). Se coloca en la cola de comportamientos bloqueados. Al desbloquear se quita de comportamientos bloqueados y se pone coloca al final de la cola de comportamientos activos. Mientras action() se ejecuta no se puede ejecutar ningún otro método.
2.4 Flujo de control doDelete() Si takeDown() Setup() No No Eliminar comportamiento de activos Done() Siguiente comportamiento de activos Si Action()

Contenu connexe

En vedette

Offre Dooblecare Salariés
Offre Dooblecare SalariésOffre Dooblecare Salariés
Offre Dooblecare SalariésMartin Guichard
 
Synthese sondage crowdfunding easi 31dec13
Synthese sondage crowdfunding easi 31dec13Synthese sondage crowdfunding easi 31dec13
Synthese sondage crowdfunding easi 31dec13570 easi
 
Seminario didacti cs2013.-4to encuentro
Seminario didacti cs2013.-4to encuentroSeminario didacti cs2013.-4to encuentro
Seminario didacti cs2013.-4to encuentroEduardo R. Diaz Madero
 
flash code compu training
flash code compu trainingflash code compu training
flash code compu trainingMarie Mjg
 
Bilan de la délinquance et de la sécurité routière 2011 Département de la...
Bilan de la délinquance etde la sécurité routière 2011 Département de la...Bilan de la délinquance etde la sécurité routière 2011 Département de la...
Bilan de la délinquance et de la sécurité routière 2011 Département de la...BienPublic
 
Ya , Maria Corina, Ya!
Ya , Maria Corina, Ya!Ya , Maria Corina, Ya!
Ya , Maria Corina, Ya!Ruben Cantafio
 
Intervention Adetem du 21 janvier 2014 - Les RSE dans la distribution
Intervention Adetem du 21 janvier 2014 - Les RSE dans la distributionIntervention Adetem du 21 janvier 2014 - Les RSE dans la distribution
Intervention Adetem du 21 janvier 2014 - Les RSE dans la distributionMatthias VIRY
 
Transmedia en 2014 : rapport de mission au Forum Blanc
Transmedia en 2014 : rapport de mission au Forum BlancTransmedia en 2014 : rapport de mission au Forum Blanc
Transmedia en 2014 : rapport de mission au Forum BlancPhilippe KHATTOU
 
Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...Julien Bect
 
Sci-Plug
Sci-PlugSci-Plug
Sci-PlugKnowtex
 
E-Shop Expo 2015 CIRB Geert Royberghs
E-Shop Expo 2015 CIRB Geert RoyberghsE-Shop Expo 2015 CIRB Geert Royberghs
E-Shop Expo 2015 CIRB Geert Royberghswebwinkelvakdag
 
Enquête Cap'Com sur la distribution des publications territoriales
Enquête Cap'Com sur la distribution des publications territorialesEnquête Cap'Com sur la distribution des publications territoriales
Enquête Cap'Com sur la distribution des publications territorialesCap'Com
 
Comité technique et fonctionnel présentation privée notifications & pac 2012 ...
Comité technique et fonctionnel présentation privée notifications & pac 2012 ...Comité technique et fonctionnel présentation privée notifications & pac 2012 ...
Comité technique et fonctionnel présentation privée notifications & pac 2012 ...jguivarch
 
Bd(élirant) 2011
Bd(élirant) 2011Bd(élirant) 2011
Bd(élirant) 2011laviellep
 
Hacia la educación y participación comunitaria en salud
Hacia la educación y participación comunitaria en saludHacia la educación y participación comunitaria en salud
Hacia la educación y participación comunitaria en saludInes Haydee Figueredo Chacin
 

En vedette (20)

Offre Dooblecare Salariés
Offre Dooblecare SalariésOffre Dooblecare Salariés
Offre Dooblecare Salariés
 
Synthese sondage crowdfunding easi 31dec13
Synthese sondage crowdfunding easi 31dec13Synthese sondage crowdfunding easi 31dec13
Synthese sondage crowdfunding easi 31dec13
 
Diapo bonnenouvelle
Diapo bonnenouvelleDiapo bonnenouvelle
Diapo bonnenouvelle
 
Seminario didacti cs2013.-4to encuentro
Seminario didacti cs2013.-4to encuentroSeminario didacti cs2013.-4to encuentro
Seminario didacti cs2013.-4to encuentro
 
Ppt mcni - gooplan
Ppt   mcni - gooplanPpt   mcni - gooplan
Ppt mcni - gooplan
 
Artimag de décembre
Artimag de décembreArtimag de décembre
Artimag de décembre
 
flash code compu training
flash code compu trainingflash code compu training
flash code compu training
 
Bilan de la délinquance et de la sécurité routière 2011 Département de la...
Bilan de la délinquance etde la sécurité routière 2011 Département de la...Bilan de la délinquance etde la sécurité routière 2011 Département de la...
Bilan de la délinquance et de la sécurité routière 2011 Département de la...
 
Ines
InesInes
Ines
 
Ya , Maria Corina, Ya!
Ya , Maria Corina, Ya!Ya , Maria Corina, Ya!
Ya , Maria Corina, Ya!
 
Presentación del grupo 5 power 1
Presentación del grupo 5 power 1Presentación del grupo 5 power 1
Presentación del grupo 5 power 1
 
Intervention Adetem du 21 janvier 2014 - Les RSE dans la distribution
Intervention Adetem du 21 janvier 2014 - Les RSE dans la distributionIntervention Adetem du 21 janvier 2014 - Les RSE dans la distribution
Intervention Adetem du 21 janvier 2014 - Les RSE dans la distribution
 
Transmedia en 2014 : rapport de mission au Forum Blanc
Transmedia en 2014 : rapport de mission au Forum BlancTransmedia en 2014 : rapport de mission au Forum Blanc
Transmedia en 2014 : rapport de mission au Forum Blanc
 
Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...
 
Sci-Plug
Sci-PlugSci-Plug
Sci-Plug
 
E-Shop Expo 2015 CIRB Geert Royberghs
E-Shop Expo 2015 CIRB Geert RoyberghsE-Shop Expo 2015 CIRB Geert Royberghs
E-Shop Expo 2015 CIRB Geert Royberghs
 
Enquête Cap'Com sur la distribution des publications territoriales
Enquête Cap'Com sur la distribution des publications territorialesEnquête Cap'Com sur la distribution des publications territoriales
Enquête Cap'Com sur la distribution des publications territoriales
 
Comité technique et fonctionnel présentation privée notifications & pac 2012 ...
Comité technique et fonctionnel présentation privée notifications & pac 2012 ...Comité technique et fonctionnel présentation privée notifications & pac 2012 ...
Comité technique et fonctionnel présentation privée notifications & pac 2012 ...
 
Bd(élirant) 2011
Bd(élirant) 2011Bd(élirant) 2011
Bd(élirant) 2011
 
Hacia la educación y participación comunitaria en salud
Hacia la educación y participación comunitaria en saludHacia la educación y participación comunitaria en salud
Hacia la educación y participación comunitaria en salud
 

Similaire à Tema 2 sma

SMA1011_BUBAL_Tipos de comportamiento
SMA1011_BUBAL_Tipos de comportamientoSMA1011_BUBAL_Tipos de comportamiento
SMA1011_BUBAL_Tipos de comportamientoxoanGz
 
Tipos De Comportamiento
Tipos De ComportamientoTipos De Comportamiento
Tipos De ComportamientoSegaAlex
 
Jade Agentes inteligentes básico
Jade Agentes inteligentes básicoJade Agentes inteligentes básico
Jade Agentes inteligentes básicoOctavio Abundez
 
Curso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionCurso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionDavid Vaquero
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2juliocombativo
 
Curso de Struts 2: Unidad Didáctica 02 Acciones
Curso de Struts 2: Unidad Didáctica 02 AccionesCurso de Struts 2: Unidad Didáctica 02 Acciones
Curso de Struts 2: Unidad Didáctica 02 AccionesDavid Vaquero
 
2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventosCamilo Herreño
 
Codigo De Las Clases Del Proyecto
Codigo De Las Clases Del ProyectoCodigo De Las Clases Del Proyecto
Codigo De Las Clases Del Proyectonahun1385
 

Similaire à Tema 2 sma (19)

Sma
SmaSma
Sma
 
SMA1011_BUBAL_Tipos de comportamiento
SMA1011_BUBAL_Tipos de comportamientoSMA1011_BUBAL_Tipos de comportamiento
SMA1011_BUBAL_Tipos de comportamiento
 
Tipos De Comportamiento
Tipos De ComportamientoTipos De Comportamiento
Tipos De Comportamiento
 
Jade Agentes inteligentes básico
Jade Agentes inteligentes básicoJade Agentes inteligentes básico
Jade Agentes inteligentes básico
 
SMA_Agentes
SMA_AgentesSMA_Agentes
SMA_Agentes
 
Curso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionCurso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 Introduccion
 
Clase 5 struts2
Clase 5 struts2Clase 5 struts2
Clase 5 struts2
 
Jade1 agentes
Jade1 agentesJade1 agentes
Jade1 agentes
 
Flow layout
Flow layoutFlow layout
Flow layout
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
Eventos
EventosEventos
Eventos
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
Curso de Struts 2: Unidad Didáctica 02 Acciones
Curso de Struts 2: Unidad Didáctica 02 AccionesCurso de Struts 2: Unidad Didáctica 02 Acciones
Curso de Struts 2: Unidad Didáctica 02 Acciones
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos
 
Introducción a akka
Introducción a akkaIntroducción a akka
Introducción a akka
 
Codigo De Las Clases Del Proyecto
Codigo De Las Clases Del ProyectoCodigo De Las Clases Del Proyecto
Codigo De Las Clases Del Proyecto
 
Introduccion a Android
Introduccion a AndroidIntroduccion a Android
Introduccion a Android
 

Dernier

OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.docRodneyFrankCUADROSMI
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONALMiNeyi1
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 

Dernier (20)

Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 

Tema 2 sma

  • 2. 2.1 ¿Qué es un comportamiento? Un comportamiento (behavior) es una funcionalidad o conducta que tiene un agente. Especifican tareas o servicios enfocados a un objetivo Tareas simples Enviar un mensaje Comprar libro Comportamientos compuestos
  • 3. Cada tarea es una instancia de una clase que debe heredar de la clase Behaviour class MiComportamiento extends Behaviour{…} El código java que implementa la funcionalidad ha de importar el paquete, o simplemente la clase Behaviour jade.core.behaviours.* jade.core.behaviours.Behaviour 2.1 ¿Qué es un comportamiento?
  • 4. Descripción de los métodos de la clase Behaviour Los comportamientos son la base de la programación de agentes. Pasos para la programación de agentes: Determinar las capacidades del agente Asociar funcionalidades a comportamientos Elegir tipo de comportamientos Jade se encarga de la planificación (scheduling) En cada instante de tiempo sólo un comportamiento se está ejecutando 2.1 ¿Qué es un comportamiento?
  • 5. 2.2 Añadir y eliminar Los métodos para añadir y borrar comportamientos los provee la clase Agent addBehaviour(Behaviour) removeBehaviour(Behaviour) Gestionan la entrada y salida de los objetos Behaviour en la cola del planificador Cola FIFO y política Round-Robin
  • 6. 2.2 Añadir y eliminar Los comportamientos se añaden o eliminar en cualquier momento de la vida del agente Se usará el método setup() o cualquier otro comportamiento u otros agentes Crear un comportamiento Es crear una clase privada dentro de la clase del agente Asociarlo al agente mediante el método addBehaviour(Behaviour) Debe considerarse el añadir un comportamiento como la ejecución de un nuevo hilo dentro del agente
  • 7. 2.2 Añadir y eliminar Ejemplo de cómo añadir un comportamiento desde el método setup() importjade.core.Agent; importjade.core.behaviours.*;   publicclass MiAgente extends Agent {   protectedvoidsetup() { //Aqui es donde se añade el comportamiento. addBehaviour(new MiComportamiento1()); } //Este es el comportamiento. privateclass MiComportamiento1 extends Behaviour { publicvoidaction(){ System.out.println("Mi nombre es: "+getName() ); System.out.println("Soy el comportamiento del agente");   } publicboolean done(){ returntrue; } } }
  • 8. 2.2 Añadir y eliminar Ejemplo de cómo añadir un comportamiento desde otro comportamiento Usamos la variable myAgent de la clase Behaviour. Funciona como una referencia al agente que está ejecutando el comportamiento. importjade.core.Agent; importjade.core.behaviours.*;   publicclass MiAgente extends Agent { protectedvoidsetup() { //Aqui es donde se añade el comportamiento. addBehaviour(new MiComportamiento1()); } //Este es el comportamiento. privateclass MiComportamiento1 extends Behaviour { publicvoidaction(){ System.out.println("Mi nombre es: "+getName() ); System.out.println("Soy el primer comportamiento");
  • 9. 2.2 Añadir y eliminar Ejemplo de cómo añadir un comportamiento desde otro comportamiento (continuación) myAgent.addBehaviour(new MiComportamiento2()); } publicboolean done(){ return true; } } //Este es el otro comportamiento private class MiComportamiento2 extends Behaviour { publicvoidaction()v{ System.out.println("Soy el segundo comportamiento"); } publicboolean done(){ return true; } } }
  • 10. 2.2 Añadir y eliminar Un comportamiento también puede ser eliminado de un agentecon el método removeBehaviour(Behaviour) En el ejemplo anterior, se puede borrar el primer comportamiento desde el segundo con una llamada a removeBehaviour() dentro del método action del segundo comportamiento (Ver código)
  • 11. 2.2 Añadir y eliminar package examples.practica2;   importjade.core.Agent; importjade.core.behaviours.*;   publicclass Ejemplo1 extends Agent{ privateBehaviour comp; // Inicialización del agente protectedvoidsetup() { //Creamos un comportamiento: un objeto de la clase MiComportamiento1 comp = new MiComportamiento1(); //Aqui es donde se añade el comportamiento. addBehaviour(comp); } //Definición de un comportamiento privateclass MiComportamiento1 extends Behaviour { // define la acción a ser ejecutada cuando se ejecute el comportamiento. publicvoidaction(){ System.out.println("Mi nombre es: "+getName() ); System.out.println("Soy el primer comportamiento"); // Añade un comportamiento desde otro comportamiento. myAgent.addBehaviour(new MiComportamiento2()); }
  • 12. 2.2 Añadir y eliminar // Determina si el comportamiento ha sido completado o no. // Si el comportamiento ha finalizado, éste se elimina de la cola de comportamientos activos. publicboolean done(){ returntrue; } }   //Definición de un segundo comportamiento privateclass MiComportamiento2 extends Behaviour{ publicvoidaction() { System.out.println("Soy el segundo comportamiento"); myAgent.removeBehaviour(comp);//Borramos el primer comportamiento; } publicboolean done() { returntrue; } } }
  • 13. 2.3 Métodos Toda clase heredada de Behaviour debe implementar: Método Action(): Define la acción que define el comportamiento. Incluye el código de las acciones a realizar. Se invoca con el evento asociado al comportamiento Es recomendable que sean de rápida ejecución ya que no pueden ser interrumpidos por otro comportamiento. Método done() Se invoca cuando finaliza el método action() Determina con un boolean si se ha finalizado el comportamiento. En caso afirmativo, el comportamiento se elimina de la cola de comportamientos activos Marca opcional que se activa cuando se quiere que finalice el comportamiento Es evaluada en el método done()
  • 14. 2.3 Métodos Ejemplo del funcionamiento de action() y done() importjade.core.Agent; importjade.core.behaviours.*; publicclass Ejemplo2 extends Agent {   // Inicialización del agente protectedvoidsetup() { // Añade un comportamiento addBehaviour(new MiComportamiento()); } // Finalización del agente protectedvoidtakeDown() { System.out.println("La escala ha terminado"); }
  • 15. 2.3 Métodos // Definición de un comportamiento privateclass MiComportamiento extends Behaviour { privateint estado = 0; // Función que realiza MiComportamiento publicvoidaction() { switch(estado) { case 0: System.out.println("Do"); break; {…} case 6: System.out.println("Si"); break; case 7:{ System.out.println("Do"); myAgent.doDelete(); break; } } estado++; }   // Comprueba si el comportamiento ha finalizado. publicboolean done() { return (estado > 7); } } }
  • 16. 2.3 Métodos Para bloquear un comportamiento usamos el método block() Bloquea un comportamiento hasta algún evento No afecta a los demás comportamientos del agente Al finalizar el método action(), block() coloca el comportameinto en la cola de comportamientos bloqueados Un objeto de la clase Behaviour puede bloquearse temporalmente Se le pasa el valor al método block() en milisegundos No es igual al método sleep() de los hilos Block() espera a la finalización de action(), si el comportamiento no termina, pasa a la lista de comportamientos bloqueados durante el tiempo indicado en el método block() o hasta que ocurra el evento que espera dicho bloqueo.
  • 17. 2.3 Métodos package examples.practica2; importjade.core.Agent; importjade.core.behaviours.*; publicclass Ejemplo3 extends Agent{ // Inicialización del agente protectedvoidsetup() { addBehaviour( new MiComportamiento() ); } // Finalización del agente protectedvoidtakeDown() { System.out.println("****Agente finalizado****"); }
  • 18. 2.3 Métodos // Definición de un comportamiento privateclass MiComportamiento extends Behaviour { intnumeroEjecuciones = 1; // // Función que realiza MiComportamiento publicvoidaction() { System.out.println("Esta es la ejecucion "+numeroEjecuciones); //lo bloqueamos durante un segundo block(1000); System.out.println("Despues de 1000 milisengundos"); numeroEjecuciones++; } // Comprueba si el comportamiento ha finalizado publicboolean done(){ if(numeroEjecuciones>10){ myAgent.doDelete(); returntrue; } elsereturn false; } } }
  • 19. 2.3 Métodos Un comportamiento se desbloquea cuando: El agente al que pertenece recibe un mensage ACL Sale de la cola de bloqueados y se coloca al final de la cola de activos Para cada mensaje todos los objetos de la cola de bloqueados deben comprobar si son los destinatarios, y en cas contrario vuelven a bloquearse Termina la interrupción asociada al comportamiento por el método block() Termina el tiempo Si se llama al método restart() desde el comportamiento. Behaviour también nos proporciona los métodos onStart() y onEnd() onStart(): Se ejecuta justo antes del método action() onEnd(): Se ejecuta antes de finalizar el comportamiento (cuando done() ha devuelto true). Devuelve un un entero que representa un valor de terminación para el comportamiento.
  • 20. 2.3 Métodos packageexamples.practica2; importjade.core.Agent; importjade.core.behaviours.*; publicclass Ejemplo4 extends Agent{ // Inicialización del agente protectedvoidsetup() { // Añadir un comportamiento. addBehaviour(new MiComportamiento()); }   // Definición de un comportamiento privateclass MiComportamiento extends Behaviour { // Este método se ejecuta justo antes de la ejecución del método action() publicvoidonStart() { System.out.println("Esto se hace cada vez que se inicia el comportamiento"); }
  • 21. 2.3 Métodos // Funcion a realizar por el comportamiento publicvoidaction() { System.out.println("Hola a todos."); //Lo bloqueamos durante un segundo block(1000); System.out.println("Despues de 1 segundo"); } // Comprueba si el comportamiento ha finalizado publicboolean done(){ return true; } // Se ejecuta antes de finalizar el comportamiento publicintonEnd() { // Hace que el comportamiento se reinicie al finalizar. reset(); myAgent.addBehaviour(this); return0; } } }
  • 22. 2.4 Ejecución Cada agente tiene un scheduler propio. Planificación preemptiva. No existe concurrencia real dentro de un mismo agente. Ahorro de CPU y memoria. Un comportamiento puede bloquearse cuando termina action(). Se coloca en la cola de comportamientos bloqueados. Al desbloquear se quita de comportamientos bloqueados y se pone coloca al final de la cola de comportamientos activos. Mientras action() se ejecuta no se puede ejecutar ningún otro método.
  • 23. 2.4 Flujo de control doDelete() Si takeDown() Setup() No No Eliminar comportamiento de activos Done() Siguiente comportamiento de activos Si Action()