Este documento proporciona una introducción a los agentes inteligentes creados con Java y la plataforma JADE. Explica los componentes principales de JADE como el AMS, DF y RMA. También describe los conceptos clave como comportamientos, comunicación entre agentes, ciclo de vida de los agentes y herramientas útiles como el agente Dummy y Sniffer.
Este documento proporciona una introducción a la programación de agentes inteligentes con Java y la plataforma JADE. Explica brevemente la historia de la programación orientada a objetos y los agentes, define las características de un agente, presenta algunas aplicaciones de los sistemas multiagente y describe qué es JADE, incluyendo sus características y cómo instalarlo y crear agentes básicos en Java.
NetBEUI es un protocolo optimizado para redes locales que funciona enviando difusiones a todos los ordenadores de la red. No es enrutable ya que sus difusiones no pueden atravesar routers, aunque sí puentes. Proporciona una interfaz sencilla para la conexión de ordenadores dentro de una red local pequeña. Sus principales ventajas son la velocidad, protección contra errores y configuración simple, pero no admite encaminamiento ni es adecuado para redes amplias.
Este documento contiene 20 ejercicios resueltos sobre SQL utilizando una base de datos de una tienda de informática. Los ejercicios incluyen consultas básicas como seleccionar, filtrar y ordenar datos, así como operaciones más complejas como agrupar, unir tablas y realizar subconsultas. El documento proporciona la solución SQL para cada ejercicio planteado.
Este documento explica las pilas y colas como tipos abstractos de datos. Detalla que las pilas siguen el orden LIFO (último en entrar, primero en salir), mientras que las colas siguen FIFO (primero en entrar, primero en salir). Describe las operaciones básicas de cada una como apilar/desapilar y encolar/desencolar. También incluye ejemplos de código Java para implementar pilas y colas.
Este documento describe las interrupciones de software en un sistema operativo. Explica que las interrupciones de software son generadas por un programa mediante la instrucción INT y atendidas por una subrutina del sistema operativo. Detalla algunas interrupciones comunes como INT 21h para los servicios de DOS e INT 10h, 16h y 17h para servicios de video, teclado e impresora. Finalmente, resume el mecanismo de tratamiento de interrupciones por el sistema operativo.
El documento proporciona una introducción a Java, explicando que es un lenguaje de programación orientado a objetos multiplataforma. Describe cómo funciona Java mediante la compilación a bytecode y cómo se utilizan las herramientas JRE y JDK. También resume los conceptos básicos de programación en Java como clases, objetos, métodos, herencia, polimorfismo, paquetes e interfaces.
Este documento describe un programa de juego de bingo que permite generar tableros aleatoriamente o manualmente, crear una figura en forma de L, e imprimir los tableros. El programa almacena los tableros en matrices, genera números aleatorios para rellenar los tableros de forma aleatoria, y permite al usuario rellenar los tableros manualmente. El programa también lleva un registro de los datos y fichas de los usuarios.
El documento presenta los conceptos y notación del modelo conceptual de datos entidad-relación extendido. Explica los conceptos básicos como entidades, atributos, dominios y relaciones, así como las extensiones del modelo como los tipos de atributos, claves, restricciones estructurales y cardinalidades. El modelo Entidad-Relación permite describir el mundo real como un conjunto de entidades y relaciones entre ellas de forma semántica y de alto nivel sin detalles de implementación.
Este documento proporciona una introducción a la programación de agentes inteligentes con Java y la plataforma JADE. Explica brevemente la historia de la programación orientada a objetos y los agentes, define las características de un agente, presenta algunas aplicaciones de los sistemas multiagente y describe qué es JADE, incluyendo sus características y cómo instalarlo y crear agentes básicos en Java.
NetBEUI es un protocolo optimizado para redes locales que funciona enviando difusiones a todos los ordenadores de la red. No es enrutable ya que sus difusiones no pueden atravesar routers, aunque sí puentes. Proporciona una interfaz sencilla para la conexión de ordenadores dentro de una red local pequeña. Sus principales ventajas son la velocidad, protección contra errores y configuración simple, pero no admite encaminamiento ni es adecuado para redes amplias.
Este documento contiene 20 ejercicios resueltos sobre SQL utilizando una base de datos de una tienda de informática. Los ejercicios incluyen consultas básicas como seleccionar, filtrar y ordenar datos, así como operaciones más complejas como agrupar, unir tablas y realizar subconsultas. El documento proporciona la solución SQL para cada ejercicio planteado.
Este documento explica las pilas y colas como tipos abstractos de datos. Detalla que las pilas siguen el orden LIFO (último en entrar, primero en salir), mientras que las colas siguen FIFO (primero en entrar, primero en salir). Describe las operaciones básicas de cada una como apilar/desapilar y encolar/desencolar. También incluye ejemplos de código Java para implementar pilas y colas.
Este documento describe las interrupciones de software en un sistema operativo. Explica que las interrupciones de software son generadas por un programa mediante la instrucción INT y atendidas por una subrutina del sistema operativo. Detalla algunas interrupciones comunes como INT 21h para los servicios de DOS e INT 10h, 16h y 17h para servicios de video, teclado e impresora. Finalmente, resume el mecanismo de tratamiento de interrupciones por el sistema operativo.
El documento proporciona una introducción a Java, explicando que es un lenguaje de programación orientado a objetos multiplataforma. Describe cómo funciona Java mediante la compilación a bytecode y cómo se utilizan las herramientas JRE y JDK. También resume los conceptos básicos de programación en Java como clases, objetos, métodos, herencia, polimorfismo, paquetes e interfaces.
Este documento describe un programa de juego de bingo que permite generar tableros aleatoriamente o manualmente, crear una figura en forma de L, e imprimir los tableros. El programa almacena los tableros en matrices, genera números aleatorios para rellenar los tableros de forma aleatoria, y permite al usuario rellenar los tableros manualmente. El programa también lleva un registro de los datos y fichas de los usuarios.
El documento presenta los conceptos y notación del modelo conceptual de datos entidad-relación extendido. Explica los conceptos básicos como entidades, atributos, dominios y relaciones, así como las extensiones del modelo como los tipos de atributos, claves, restricciones estructurales y cardinalidades. El modelo Entidad-Relación permite describir el mundo real como un conjunto de entidades y relaciones entre ellas de forma semántica y de alto nivel sin detalles de implementación.
El documento describe diferentes tipos de software y sistemas operativos. Explica que el software puede ser débilmente o fuertemente acoplado, y que los sistemas operativos de red permiten a los usuarios compartir archivos a través de una red de estaciones de trabajo. También describe sistemas distribuidos que actúan como un único sistema a través de una colección de máquinas conectadas en red.
La herramienta de desarrollo de agentes Jadepcuestaesei
¿Qué es JADE?
Plataforma de agentes
Servicio de transporte de mensajes
Modelo de comunicación
Agentes JADE
Herramientas gráficas
¿Cómo ejecutar JADE?
Campos de aplicación
El documento lista 40 comandos y métodos de Java para el desarrollo de interfaces gráficas, manejo de datos, excepciones y depuración. Incluye comandos para crear y personalizar ventanas, botones, mensajes, ingreso de datos, manipulación de cadenas y fechas, y uso de clases como Scanner, Date y JOptionPane. También cubre temas como paquetes, comentarios Javadoc, depuración y manejo de excepciones.
Python es un lenguaje de programación dinámico e interpretado que ofrece tipado dinámico, fuerte tipado, flexibilidad y portabilidad. Sus principales características incluyen una sintaxis limpia y legible similar al pseudocódigo, una amplia biblioteca estándar y ser multiplataforma. Python se puede utilizar para el desarrollo web, bases de datos, software, juegos, bioinformática, física y educación.
La programación concurrente permite la ejecución simultánea de múltiples tareas a través de procesos o hilos. La comunicación y sincronización entre tareas concurrentes es clave, ya que los recursos pueden ser compartidos. Existen diferentes técnicas para lograr la exclusión mutua de recursos como algoritmos, semáforos, monitores y paso de mensajes. El sistema operativo gestiona la concurrencia asignando tiempo de CPU y recursos a los procesos.
Este documento contiene 22 ejercicios resueltos sobre modelado entidad-relación de bases de datos. Cada ejercicio presenta un escenario diferente y propone el modelo E-R correspondiente, con las tablas y relaciones necesarias para representar dicho escenario en un esquema de base de datos relacional.
El documento describe métodos para detectar e interbloqueos en sistemas concurrentes. Explica que la detección de interbloqueos monitorea periódicamente el estado de los recursos compartidos para identificar ciclos de espera entre procesos. También describe algoritmos de detección que verifican si existe una espera circular entre procesos que solicitan recursos. Finalmente, explica que la recuperación comúnmente involucra eliminar procesos de manera priorizada para romper el ciclo de bloqueo.
Este documento describe los diferentes tipos de excepciones en Java, incluyendo Error, Exception y RuntimeException. Todas las excepciones heredan de la clase Throwable. Mientras que es obligatorio tratar las excepciones que heredan de Exception, no es necesario tratar a aquellas que heredan de RuntimeException o Error.
Este documento describe los conceptos básicos de la programación orientada a objetos como objetos, clases, herencia, envío de mensajes, análisis orientado a objetos y diseño orientado a objetos. También cubre los modelos de diseño, patrones de diseño y métodos como el de Booch, Rumbaugh y Jacobson. Finalmente, concluye que a pesar de las variantes entre metodologías, todas se basan en los mismos fundamentos de modelado de objetos.
Este documento describe el análisis léxico y sus componentes clave. Explica que el análisis léxico separa el programa fuente en tokens o fichas y que tiene dos objetivos principales: identificar constructores de bajo nivel del lenguaje como palabras clave y separar el análisis léxico del semántico. También describe diagramas de transición de estado finito, expresiones regulares y gramáticas regulares que son utilizadas por el analizador léxico, así como cómo manejar errores.
formas de codificación de la informaciónalbertolnm
El documento habla sobre la codificación de la información para su almacenamiento y procesamiento por computadoras. Explica que la información debe convertirse a código binario de ceros y unos y describe algunos métodos comunes para codificar datos numéricos, caracteres, imágenes, sonido y video. También discute conceptos relacionados con el almacenamiento de archivos como ficheros, sistemas de archivos y métodos para asignar espacio en el disco duro.
El documento describe casos de uso para un sistema de alquiler de películas. Se definen casos de uso para el administrador, clientes y proveedores como registrar películas, clientes, alquileres y reservas, abastecer películas, seleccionar, alquilar y devolver películas. También se explican técnicas como inclusión y extensión de casos de uso para eliminar duplicación y agregar funcionalidad.
Este documento describe el software de gestión de recursos humanos OrangeHRM. OrangeHRM proporciona una plataforma para alinear los procesos de recursos humanos con los objetivos de la empresa. El software incluye módulos para la administración de personal, licencias, tiempo y asistencia, beneficios de los empleados, reclutamiento y rendimiento. OrangeHRM ofrece versiones gratuita y de pago y es adecuado para pequeñas y medianas empresas.
Este documento presenta 100 ejercicios resueltos sobre sistemas operativos divididos en 6 capítulos: procesos e hilos, comunicación y sincronización de procesos, gestión de archivos y directorios, gestión de memoria y ejercicios generales. El objetivo es proporcionar material práctico para apoyar la docencia de asignaturas sobre sistemas operativos tanto de forma presencial como no presencial.
Una de las dificultades de programar con JSP son los scriptlets, ya que debes combinar codigo Java y etiquetas HTML.
El uso de etiquetas JSTL es mucho mas fácil que programar scriptlets, es por esa razón que debes considerar utilizarlas, ya que tendrás un codigo mucho mas estructurado y fácil de leer.
Este documento introduce Python y sus características básicas. Python es un lenguaje de programación interpretado, multiplataforma y multiparadigma. Se caracteriza por ser sencillo, flexible y de código abierto. El documento también explica cómo instalar Anaconda para usar Python e IDEs como Spyder, y ofrece una introducción a conceptos básicos como objetos, variables y operaciones matemáticas en Python.
El documento describe los procesos en Linux, incluyendo que cada proceso tiene un número de identificación único (PID), que el proceso que crea otro proceso se llama proceso padre y el creado proceso hijo. También describe las librerías estándar utilizadas en C para la entrada/salida, manejo de archivos y procesos, así como funciones como fork(), getpid(), getppid() y getuid() para crear y obtener información de procesos. Finalmente, incluye ejemplos de código C para imprimir información de procesos y crear
Este documento trata sobre procesos e hilos. Un proceso es cualquier programa en ejecución que necesita recursos como instrucciones, estado de ejecución, memoria y otra información. Un hilo es una unidad básica de ejecución que comparte recursos con otros hilos del mismo proceso. Los procesos se comunican mediante memoria compartida o paso de mensajes.
Este documento describe la necesidad de desarrollar un sistema de gestión de ventas para una empresa de TV por suscripción. Actualmente, los errores en la captura manual de datos de ventas están generando inconsistencias en el pago de comisiones a los vendedores. El nuevo sistema automatizará el proceso de captura de datos de ventas, cálculo de comisiones y generación de reportes, mejorando la eficiencia, reduciendo costos y aumentando la productividad y retención de personal.
La herramienta de desarrollo de agentes JADEpcuestaesei
¿Qué es JADE?
Plataforma de agentes
Servicio de transporte de mensajes
Modelo de comunicación
Agentes JADE
Herramientas gráficas
¿Cómo ejecutar JADE?
Campos de aplicación
Seminario Agentes, Multiagentes y Aplicaciones - MASTER USGonzalo Aranda
El documento presenta una introducción a los conceptos básicos de los agentes, incluyendo definiciones, tipos de agentes, percepciones, acciones, entornos y medidas de rendimiento. Explica que un agente es algo que percibe su entorno a través de sensores y actúa sobre él a través de efectores, y que los agentes inteligentes son autónomos, reactivos, proactivos y sociales.
El documento describe diferentes tipos de software y sistemas operativos. Explica que el software puede ser débilmente o fuertemente acoplado, y que los sistemas operativos de red permiten a los usuarios compartir archivos a través de una red de estaciones de trabajo. También describe sistemas distribuidos que actúan como un único sistema a través de una colección de máquinas conectadas en red.
La herramienta de desarrollo de agentes Jadepcuestaesei
¿Qué es JADE?
Plataforma de agentes
Servicio de transporte de mensajes
Modelo de comunicación
Agentes JADE
Herramientas gráficas
¿Cómo ejecutar JADE?
Campos de aplicación
El documento lista 40 comandos y métodos de Java para el desarrollo de interfaces gráficas, manejo de datos, excepciones y depuración. Incluye comandos para crear y personalizar ventanas, botones, mensajes, ingreso de datos, manipulación de cadenas y fechas, y uso de clases como Scanner, Date y JOptionPane. También cubre temas como paquetes, comentarios Javadoc, depuración y manejo de excepciones.
Python es un lenguaje de programación dinámico e interpretado que ofrece tipado dinámico, fuerte tipado, flexibilidad y portabilidad. Sus principales características incluyen una sintaxis limpia y legible similar al pseudocódigo, una amplia biblioteca estándar y ser multiplataforma. Python se puede utilizar para el desarrollo web, bases de datos, software, juegos, bioinformática, física y educación.
La programación concurrente permite la ejecución simultánea de múltiples tareas a través de procesos o hilos. La comunicación y sincronización entre tareas concurrentes es clave, ya que los recursos pueden ser compartidos. Existen diferentes técnicas para lograr la exclusión mutua de recursos como algoritmos, semáforos, monitores y paso de mensajes. El sistema operativo gestiona la concurrencia asignando tiempo de CPU y recursos a los procesos.
Este documento contiene 22 ejercicios resueltos sobre modelado entidad-relación de bases de datos. Cada ejercicio presenta un escenario diferente y propone el modelo E-R correspondiente, con las tablas y relaciones necesarias para representar dicho escenario en un esquema de base de datos relacional.
El documento describe métodos para detectar e interbloqueos en sistemas concurrentes. Explica que la detección de interbloqueos monitorea periódicamente el estado de los recursos compartidos para identificar ciclos de espera entre procesos. También describe algoritmos de detección que verifican si existe una espera circular entre procesos que solicitan recursos. Finalmente, explica que la recuperación comúnmente involucra eliminar procesos de manera priorizada para romper el ciclo de bloqueo.
Este documento describe los diferentes tipos de excepciones en Java, incluyendo Error, Exception y RuntimeException. Todas las excepciones heredan de la clase Throwable. Mientras que es obligatorio tratar las excepciones que heredan de Exception, no es necesario tratar a aquellas que heredan de RuntimeException o Error.
Este documento describe los conceptos básicos de la programación orientada a objetos como objetos, clases, herencia, envío de mensajes, análisis orientado a objetos y diseño orientado a objetos. También cubre los modelos de diseño, patrones de diseño y métodos como el de Booch, Rumbaugh y Jacobson. Finalmente, concluye que a pesar de las variantes entre metodologías, todas se basan en los mismos fundamentos de modelado de objetos.
Este documento describe el análisis léxico y sus componentes clave. Explica que el análisis léxico separa el programa fuente en tokens o fichas y que tiene dos objetivos principales: identificar constructores de bajo nivel del lenguaje como palabras clave y separar el análisis léxico del semántico. También describe diagramas de transición de estado finito, expresiones regulares y gramáticas regulares que son utilizadas por el analizador léxico, así como cómo manejar errores.
formas de codificación de la informaciónalbertolnm
El documento habla sobre la codificación de la información para su almacenamiento y procesamiento por computadoras. Explica que la información debe convertirse a código binario de ceros y unos y describe algunos métodos comunes para codificar datos numéricos, caracteres, imágenes, sonido y video. También discute conceptos relacionados con el almacenamiento de archivos como ficheros, sistemas de archivos y métodos para asignar espacio en el disco duro.
El documento describe casos de uso para un sistema de alquiler de películas. Se definen casos de uso para el administrador, clientes y proveedores como registrar películas, clientes, alquileres y reservas, abastecer películas, seleccionar, alquilar y devolver películas. También se explican técnicas como inclusión y extensión de casos de uso para eliminar duplicación y agregar funcionalidad.
Este documento describe el software de gestión de recursos humanos OrangeHRM. OrangeHRM proporciona una plataforma para alinear los procesos de recursos humanos con los objetivos de la empresa. El software incluye módulos para la administración de personal, licencias, tiempo y asistencia, beneficios de los empleados, reclutamiento y rendimiento. OrangeHRM ofrece versiones gratuita y de pago y es adecuado para pequeñas y medianas empresas.
Este documento presenta 100 ejercicios resueltos sobre sistemas operativos divididos en 6 capítulos: procesos e hilos, comunicación y sincronización de procesos, gestión de archivos y directorios, gestión de memoria y ejercicios generales. El objetivo es proporcionar material práctico para apoyar la docencia de asignaturas sobre sistemas operativos tanto de forma presencial como no presencial.
Una de las dificultades de programar con JSP son los scriptlets, ya que debes combinar codigo Java y etiquetas HTML.
El uso de etiquetas JSTL es mucho mas fácil que programar scriptlets, es por esa razón que debes considerar utilizarlas, ya que tendrás un codigo mucho mas estructurado y fácil de leer.
Este documento introduce Python y sus características básicas. Python es un lenguaje de programación interpretado, multiplataforma y multiparadigma. Se caracteriza por ser sencillo, flexible y de código abierto. El documento también explica cómo instalar Anaconda para usar Python e IDEs como Spyder, y ofrece una introducción a conceptos básicos como objetos, variables y operaciones matemáticas en Python.
El documento describe los procesos en Linux, incluyendo que cada proceso tiene un número de identificación único (PID), que el proceso que crea otro proceso se llama proceso padre y el creado proceso hijo. También describe las librerías estándar utilizadas en C para la entrada/salida, manejo de archivos y procesos, así como funciones como fork(), getpid(), getppid() y getuid() para crear y obtener información de procesos. Finalmente, incluye ejemplos de código C para imprimir información de procesos y crear
Este documento trata sobre procesos e hilos. Un proceso es cualquier programa en ejecución que necesita recursos como instrucciones, estado de ejecución, memoria y otra información. Un hilo es una unidad básica de ejecución que comparte recursos con otros hilos del mismo proceso. Los procesos se comunican mediante memoria compartida o paso de mensajes.
Este documento describe la necesidad de desarrollar un sistema de gestión de ventas para una empresa de TV por suscripción. Actualmente, los errores en la captura manual de datos de ventas están generando inconsistencias en el pago de comisiones a los vendedores. El nuevo sistema automatizará el proceso de captura de datos de ventas, cálculo de comisiones y generación de reportes, mejorando la eficiencia, reduciendo costos y aumentando la productividad y retención de personal.
La herramienta de desarrollo de agentes JADEpcuestaesei
¿Qué es JADE?
Plataforma de agentes
Servicio de transporte de mensajes
Modelo de comunicación
Agentes JADE
Herramientas gráficas
¿Cómo ejecutar JADE?
Campos de aplicación
Seminario Agentes, Multiagentes y Aplicaciones - MASTER USGonzalo Aranda
El documento presenta una introducción a los conceptos básicos de los agentes, incluyendo definiciones, tipos de agentes, percepciones, acciones, entornos y medidas de rendimiento. Explica que un agente es algo que percibe su entorno a través de sensores y actúa sobre él a través de efectores, y que los agentes inteligentes son autónomos, reactivos, proactivos y sociales.
La programación orientada a agentes involucra encapsular el comportamiento y estado mental de los agentes. Los lenguajes orientados a objetos son útiles para programar sistemas multiagentes, pero la programación lógica es mejor para implementar estados mentales complejos. JavaLog es un lenguaje que combina programación orientada a objetos en Java y programación lógica de Prolog, permitiendo a los objetos Java manipular conocimiento lógico.
Agente Inteligente Para El DiagnóStico MéDicoSantiago Ortega
Este documento describe el desarrollo de un agente inteligente para el diagnóstico médico. El agente utilizará conocimiento de expertos médicos y algoritmos de aprendizaje para mejorar la eficiencia del diagnóstico. El agente constará de una base de conocimientos y una unidad de inferencia que usarán el algoritmo A* para combinar síntomas y llegar a un diagnóstico. La ontología del agente se representará mediante tripletas RDF.
Este documento introduce conceptos clave sobre modelos computacionales discretos. Explica que un modelo es una representación simplificada de un sistema que puede adoptar formas mentales, físicas o simbólicas. Distingue entre sistemas discretos y continuos, y señala que un modelo discreto cambia instantáneamente en puntos separados de tiempo. Además, define términos como señales, modelado, invariante, variante y SISO. Finalmente, concluye que las simulaciones por computadora se han vuelto útiles para estudiar sistemas natural
Este documento proporciona información sobre agentes en JADE. Define un agente JADE, su ciclo de vida y estados. Explica cómo crear agentes, pasarles argumentos y ejecutarlos. También cubre cómo terminar la ejecución de un agente y el identificador único de cada agente (AID). Finalmente, propone un ejercicio para crear agentes que ofrezcan y soliciten servicios.
El documento define los conceptos básicos de un agente JADE. Explica que un agente JADE es una instancia de una clase Java que extiende la clase Agent. Detalla las características de un agente como tener un nombre único y métodos setup() y takeDown(). También describe el ciclo de vida de un agente, los estados posibles y cómo se crean, terminan y comunican los agentes.
Este documento describe cómo integrar un servlet con la plataforma multiagente JADE utilizando la clase JadeGateway. Se explica que JadeGateway crea una pasarela que permite la comunicación entre código no JADE como un servlet y agentes en JADE. También se detalla cómo crear un agente que herede de GatewayAgent o implementar un comportamiento que herede de GatewayBehaviour para establecer esta pasarela de comunicación. Finalmente, se proporciona un ejemplo de cómo validar las credenciales de usuario introducidas en un formulario de servlet contra
Este documento presenta tres opciones disponibles para el peticionario cuyo nombre de dominio ha sido usado por otra empresa generando confusión: nombres comerciales, enseñas comerciales y marcas. Explica que los nombres comerciales e identifican una actividad económica mientras que las enseñas identifican un establecimiento. Ambos obtienen protección por registro o uso. Finalmente, las marcas distinguen productos y servicios en el mercado y se registran ante la Superintendencia de Industria y Comercio.
El documento habla sobre cómo las personas con discapacidad pueden sacar ventaja de las oportunidades en la vida y vivirla plenamente. Reconoce que la vida presenta situaciones particulares y complejas, pero enfatiza que lo importante es poder determinar cómo alcanzar cada meta a lo largo de la vida. Alienta a las personas a tomar el control de su vida, aceptar su vulnerabilidad como fortaleza y vivir de acuerdo a sus propios sueños y propósitos en lugar de los de otros.
Il Repair Café@Napoli è un’officina condivisa dedicata alla riparazione degli oggetti, all’interno della quale si darà nuova vita alle cose, promuovendo la cultura dell’economia circolare e del recupero fai-da-te anche come occasione di aggregazione basata su una modalità innovativa di scambio delle conoscenze e delle pratiche.
Sinds 2,5 jaar voeren Jiba en CenterParcs succesvolle personalisatie campagnes uit op hun websites. Deze personalisatie heeft gezorgd voor meer dan 60% conversiestijging bij Jiba en voor een toename van meer dan 460% in doorkliks op de gepersonaliseerde contentblokken bij CenterParcs. De inzichten en resultaten worden in deze presentie besproken. Daarnaast toont een blik in de toekomst hoe je met Gepersonaliseerde E-mailmarketing jouw doelgroep ook de komende jaren een persoonlijk aanbod kunt bieden.
1. O documento é uma monografia apresentada por Evandro de Oliveira Machado ao departamento de história da Universidade Federal Fluminense sobre o pensamento político-militar de Che Guevara.
2. O autor realizou pesquisas sobre a infância e adolescência de Che Guevara para entender a formação de sua personalidade. Ele também examinou a biografia de Che com base em obras de referência para traçar a evolução de seu pensamento.
3. Ao longo do trabalho, o autor discute escritos selecionados de Che Guevar
Oposiciones Policia Nacional en Bilbao FormacionBilbao Formacion
Este documento proporciona información sobre las oportunidades de empleo y los requisitos para convertirse en policía nacional en España. Detalla las funciones principales de un policía nacional como proteger a las personas, investigar delitos relacionados con drogas y controlar las fronteras. También explica los requisitos como la ciudadanía española, la estatura mínima, la educación secundaria y los permisos de conducir, así como las pruebas a superar como las aptitudes físicas, ortografía, entrevistas y ex
This document discusses several products and services for improving energy efficiency. It includes:
1) An article on MegaFan Technologies and their High Volume Low Speed fan technology, which can save up to 50% on heating and energy bills.
2) A piece on thermal technology and energy.
3) An advertisement for Airtec Ltd., an independent company that offers compressed air services including refurbished equipment, financing options, service packages, and energy audits.
Mr. Toalson is being recommended for his next assignment by the president of Federated IT. He proved to be a reliable, determined, and professional contracts manager. Upon arriving, he quickly identified areas needing attention and prioritized tasks effectively. He established himself as an authoritative resource and integrated well into the corporate team. He helped lead several contract negotiations that resulted in favorable terms and was instrumental in the company's ISO recertification and ERP migration. While the role has been eliminated, the president has no doubt Mr. Toalson will be an asset to his next company.
Este documento es una carta escrita por Maite Pagaza sobre la detención del presunto asesino de su hermano Joseba. Expresa que sintió alivio al enterarse de la detención pero no odio hacia el asesino. Reconoce una mezcla de sentimientos de tristeza, ausencia y recuerdos del pasado. Cree que el asesino debe enfrentar la justicia para comprender el daño causado y colaborar para evitar la prescripción de otros asesinatos.
Smartisan Technology is a Chinese company founded in 2012 that creates mobile devices. Their founder, Yonghao Luo, is a former English teacher who started the company with friends. Smartisan's first phones, the T1 and T2, launched in 2014 and 2015. They target patriotic and tech-savvy youth in China with unconventionally designed phones running a custom operating system called Smartisan OS.
El documento explica los conceptos básicos de la programación basada en comportamientos en el framework JADE. Los agentes se definen mediante comportamientos que especifican sus tareas. Existen comportamientos simples y compuestos. Cada comportamiento debe implementar los métodos action() y done(). Los comportamientos se pueden añadir, eliminar y bloquear. El planificador de comportamientos los ejecuta de forma secuencial no concurrente.
Este documento describe el soporte para la movilidad de agentes en la plataforma JADE. Explica que JADE incluye clases, métodos y una ontología para permitir que los agentes se muevan entre contenedores dentro de una misma plataforma. También describe proyectos que permiten la movilidad entre plataformas. Finalmente, detalla cómo los agentes pueden acceder al AMS para llevar a cabo acciones de movilidad como moverse o clonarse a otras ubicaciones.
Este documento proporciona una introducción a JADE (Java Agent DEvelopment Framework), un framework para el desarrollo de sistemas multiagentes basados en Java. Explica brevemente qué es JADE, los estándares FIPA que sigue, la arquitectura de agentes y plataforma, los lenguajes y herramientas de comunicación e interacción de agentes, y cómo instalar y ejecutar JADE y agentes.
Este documento presenta una introducción a JADE (Java Agent DEvelopment Framework), un framework para el desarrollo de sistemas multiagente que emplea Java. JADE usa FIPA-ACL como lenguaje de comunicación entre agentes y soporta la comunicación entre plataformas distribuidas. El documento describe los componentes principales del entorno JADE como el agente RMA para la gestión de plataformas, el agente DF para el directorio de facilitadores y el uso de comportamientos para definir las acciones de un agente.
Agentes Estimulo Respuesta, victor mamani catachura,boreasH,Inteligencia Arti...victor mamani
El documento presenta un resumen de un capítulo sobre agentes estimulo-respuesta. Explica que los agentes son sistemas computacionales que perciben su entorno a través de sensores y actúan en él a través de actuadores para lograr objetivos. Luego describe las fases de percepción, procesamiento y acción de un agente, y presenta un ejemplo ilustrativo de un agente estimulo-respuesta diseñado para moverse alrededor de obstáculos. Finalmente, resume los resultados de la implementación de este agente a través de una simulación.
El documento describe los agentes móviles, programas inteligentes que pueden moverse a través de la red buscando servicios para el usuario. Explica que los agentes móviles pueden ejecutarse en múltiples máquinas sin necesidad de instalar su código en cada una, utilizando código móvil como Java. También cubre las características, lenguajes, procesos de movilidad, seguridad, modelos, plataformas y protocolos de comunicación de los agentes móviles.
Curso de Struts2: Unidad Didáctica 00 IntroduccionDavid Vaquero
Este documento proporciona una introducción al framework Struts 2. Explica que los objetivos son conocer las ventajas de Struts, saber dónde encontrar información y cómo configurar un proyecto. Luego resume las características principales de Struts, como que es un framework basado en J2EE que permite la integración con servlets y JSP. Finalmente, describe los componentes clave de Struts como el Dispatcher, las acciones, los interceptores y los resultados.
El documento describe los componentes FlowLayout y JTextField de Java. FlowLayout es un gestor de layout que coloca componentes de izquierda a derecha en líneas, y es el layout predeterminado para paneles. JTextField es un componente Swing que crea un cuadro de texto para capturar datos de entrada del usuario.
Este documento presenta una introducción al desarrollo de aplicaciones para Android. Cubre temas como la instalación del entorno de desarrollo, la creación de un proyecto "Hola Mundo", el ciclo de vida de las actividades, el uso de recursos, la interacción con el usuario, menús, preferencias e intents. El objetivo final es proporcionar una guía básica pero completa para que los desarrolladores puedan crear sus primeras aplicaciones en la plataforma Android.
Este documento describe diferentes tipos de comportamientos que pueden implementar los agentes en JADE. Incluye comportamientos simples como OneShotBehaviour y CyclicBehaviour, comportamientos compuestos como SequentialBehaviour y ParallelBehaviour que ejecutan subcomportamientos de forma secuencial y concurrente, y comportamientos temporales como TickerBehaviour y WakerBehaviour que ejecutan tareas periódicamente o después de un tiempo especificado. También describe FSMBehaviour que implementa máquinas de estados finitas usando subcomportamientos.
Los comportamientos son funcionalidades o conductas que tienen los agentes. Definen tareas o servicios enfocados a un objetivo. Cada comportamiento debe heredar de la clase Behaviour y definir los métodos action() y done(). El método action() especifica la acción a realizar, mientras que done() determina si el comportamiento ha finalizado. Los agentes usan comportamientos para definir sus capacidades y JADE se encarga de la planificación de los comportamientos en ejecución.
El documento habla sobre interfaces de usuario en Android. Explica cómo crear una aplicación llamada Yamba que permita publicar mensajes en Twitter. Detalla los pasos para agregar widgets básicos como TextView, EditText y Button y cómo implementar funcionalidad al hacer clic en los botones. También cubre temas como layouts, trazas y depuración.
El documento presenta una agenda para un curso de desarrollo de aplicaciones móviles para Android. La agenda incluye presentaciones sobre las aplicaciones de Android, el ciclo de vida de las actividades, las vistas y los sistemas de layout. También incluye prácticas de laboratorio sobre estos temas. Se explican conceptos clave como actividades, servicios, componentes de una aplicación, el manifiesto y el ciclo de vida de las actividades. Finalmente, se proporciona información adicional y enlaces de referencia.
Este documento describe diferentes tipos de agentes inteligentes. Explica que un agente es cualquier entidad que percibe su entorno a través de sensores y actúa sobre él a través de efectores. Luego presenta cuatro tipos principales de agentes: agentes reflejos simples, agentes con estado interno, agentes basados en metas y agentes basados en utilidad. Finalmente, discute conceptos como percepciones, acciones, medidas de rendimiento y el diseño de agentes.
La comunicación entre agentes en JADE se realiza mediante el intercambio de mensajes ACL siguiendo el estándar FIPA-ACL. Los agentes envían y reciben mensajes de su cola de mensajes, pudiendo filtrar los mensajes recibidos. Los servicios que ofrecen se publican en el agente DF y se pueden buscar servicios realizando consultas al DF. Cada agente debe registrarse en el AMS para obtener un identificador único.
Presentación utilizada para presentar los contenidos teóricos del taller, básicamente la plataforma/framework de programación de sistemas multiagente basado en Java llamado JADE, y sus extensiones de agentes BDI (JADEX) y para plataformas móviles (LEAP)
Diapositivas de mi curso introductorio de Android en 5 horas.
EN EL CONGRESO UNIVERSITARIO MOVIL 2012 SE USÓ ESTA PRESENTACIÓN PARA HABLAR DE ANDROID Y SE HIZO UNA APP PARLANCHINA COMO EJEMPLO DEL CONTENIDO, AQUI ESTÁ EL CODIGO FUENTE https://www.dropbox.com/s/1dbso3rb47be1hj/Hablar.zip?%20m
El documento describe los diferentes tipos de agentes inteligentes, incluyendo agentes reactivos, basados en modelos, basados en objetivos y basados en utilidad. También discute los componentes clave de los agentes como sensores, actuadores, estado interno y aprendizaje. Los agentes más complejos pueden mantener un estado interno, modelos del mundo y metas u objetivos.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...micarnavaltupatrimon
Mi Carnaval es la plataforma que permite conectar al usuario con la cultura y la emoción del Carnaval de Blancos y Negros en la ciudad de Pasto, esta plataforma brinda una amplia oferta de productos, servicios, tiquetería e información relevante para generarle valor al usuario, además, la plataforma realiza un levantamiento de datos de los espectadores que se registran, capturando su actividad e información relevante para generar la analítica demográfica del evento en tiempo real, con estos datos se generan modelos predictivos, que permiten una mejor preparación y organización del evento, de esta manera ayudando a reducir la congestión, las largas filas y, así como a identificar áreas de alto riesgo de delincuencia y otros problemas de seguridad.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...micarnavaltupatrimon
Mi Carnaval es la plataforma que permite conectar al usuario con la cultura y la emoción del Carnaval de Blancos y Negros en la ciudad de Pasto, esta plataforma brinda una amplia oferta de productos, servicios, tiquetería e información relevante para generarle valor al usuario, además, la plataforma realiza un levantamiento de datos de los espectadores que se registran, capturando su actividad e información relevante para generar la analítica demográfica del evento en tiempo real, con estos datos se generan modelos predictivos, que permiten una mejor preparación y organización del evento, de esta manera ayudando a reducir la congestión, las largas filas y, así como a identificar áreas de alto riesgo de delincuencia y otros problemas de seguridad.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Jade Agentes inteligentes básico
1. AGENTES INTELIGENTES
CON JAVA NETBEANS.
JADE.
Octavio C. Abundez Ramírez
email: gamabun4@gmail.com
Facebook: Octavio Abundez
• Taller: Agentes Inteligentes
• México, D.F., 29-30 de Octubre de 2015
2. MAIN CONTAINER
•AMS (Sistema de
Gestión de Agente)
-Proporciona El servicio
de nombres y representa
la autoridad en la
plataforma.
• DF (Directorio Facilitador)
-Proporciona Un servicio de páginas amarillas por
medio de los cuales un agente puede encontrar otros
agentes que prestan los servicios que requiere para
lograr sus metas.
• RMA (Remote Management Agent)
-Actuando como consola gráfica para la gestión de la
plataforma y el control.
3. Remote Monitoring Agent
• Proporcionar a
la interfaz gráfica
de usuario para
controlar el ciclo
de vida de los
agentes
4. • Canal de comunicación del agente (ACC)
- Agente a Agente
- Plataforma agente a Plataforma Agente
Message Transport System
6. Objetos vs Agentes
Un objeto es reactiva
Un objeto es una entidad pasiva
(o reactiva). Si nadie solicita el valor
de un atributo o activa un método de
el objeto, entonces no Pasa nada.
Un agente es ProActif
Un agente tiene, además de los
Atributos y métodos, procesos
Internos función, incluso en
ausencia de tensiones externas. Un
agente puede actuar, por tanto,
incluso si nadie le pregunta nada
7. Dummy Agent
Herramienta útil para la depuración
• Permite la interacción con otros agentes de
envío, recepción y visualización de mensajes
de ACL
• ¿Cómo poner en marcha:
-Desde La línea de comandos
java jade.Boot da:
jade.tools.DummyAgent.DummyAgent
-Desde El GUI RMA
• Elegir "Herramientas Iniciar DummyAgent"
• Seleccione "Iniciar nueva Agent" y
proporcionar
jade.tools.DummyAgent.DummyAgent como
el nombre de la clase
9. Cuando un agente sniff (o un grupo), algunos
mensajes son enviados a el agente, son visibles
en una especie de diagrama UML de secuencia
• Cuando un agentes o contenedores son creados
o destruidos, el Agente Sniffer es informado por
la AMS
• ¿Cómo poner en marcha:
-Desde La línea de comandos
java jade.Boot snif: jade.tools.sniffer.Sniffer
-Desde El GUI RMA
• Elegir "Herramientas Iniciar Sniffer"
• O seleccione "Iniciar nueva Agent" y proporcionar
jade.tools.sniffer.Sniffer como el nombre de la
clase
Sniffer Agent
11. Sniffer Agent
• DF es un servicio de páginas amarillas:
agentes pueden registrar sus servicios o
buscar en el DF
• En cada plataforma, hay al menos un DF
• Cómo iniciar la interfaz gráfica de usuario:
-Desde El GUI RMA
• Elegir "Herramientas Mostrar la GUI DF"
12. IntrospectorAgent
Monitoriza el ciclo de vida de un agente: mensajes
enviados recibido, cola / comportamiento
• ¿Cómo poner en marcha:
-Desde El GUI RMA
• elegir "Herramientas -Iniciar IntrospectorAgent"
13. El ciclo de vida de los agentes y la
movilidad.
INICIADO: el objeto Agente está construido, pero no se ha
registrado en sí pero con la AMS, no tiene nombre ni una
dirección y no puede comunicarse con otros agentes.
ACTIVO: el objeto Agente se ha registrado en el AMS, tiene
un
nombre regular y la dirección y puede acceder a todas las
diversas características JADE.
SUSPENDIDO: el objeto del agente se detiene en ese
momento.
su rosca interna se suspende y no se está ejecutando el
comportamiento del agente. doSuspend ()
14. ESPERA: el objeto Agente está bloqueado, esperando algo. Su
rosca
interna es durmiendo en un monitor de Java y se despierta
cuando
se cumple alguna condición (por lo general, cuando un mensaje
llega).doWait ()
ELIMINADO: el agente es definitivamente muerto. La rosca
interna
ha terminado su ejecución y el Agente no es más registrado en
el
AMS.
TRÁNSITO: un agente móvil entra en este estado mientras se
está
migrando a la nueva ubicación. Los sistema continúa para
amortiguar los mensajes que luego serán enviados a su nueva
El ciclo de vida de los agentes y la
movilidad.
15. El ciclo de vida de los agentes y la
movilidad.
16. Creación de agentes
Hay dos formas de ejecutar un
agente: desde el GUI de JADE y
desde la línea de comandos.
Desde la línea de comandos.
java jade.Boot –container <nombre_agente>:
<paquete_.class>
Ejecución remota de agentes
jade.Boot -container -host nombreHost
<nombre_agente>:<ruta_agente.class>
17.
18. Entonces…¿Qué es un
agente?
"Los agentes autónomos son
sistemas computacionales que
habitan en algún complejo entorno
dinámico, sienten y actúan de forma
autónoma en este entorno, y al
hacerlo, se dan cuenta de un conjunto
de metas o tareas para las que han
sido diseñados."
19. Qué es un comportamiento EN
JADE?
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 una
clase que deber heredar de la clase Behaviour.
class MiComportamiento extends Behaviour{ … }
LIBRERÍA: jade.core.behaviours.*
20. Qué es un comportamiento EN
JADE?
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 solo
5. comportamiento se está ejecutando en cada instante).
En el ejemplo ANTERIOR se puede ver como se añade
un comportamiento desde el método setup() del
agente.
21. Qué es un comportamiento EN
JADE?
Además de añadir nuevos
comportamientos, también se pueden
eliminar comportamientos de un agente con
el método removeBehaviour(Behaviour).
Así, si en el ejemplo anterior quisiéramos
borrar el primer comportamiento desde el
segundo comportamiento bastaría con
hacer una llamada
a removeBehaviour() dentro del método
action del segundo comportamiento:
22. Ejercicios de Comportamiento
Crea un proyecto de nombre:dia2
Crea el paquete: comportat
◦ Crea la clase: comportat1
◦ Crea la clase: comportat1_m
◦ Crea la clase: comportat2
23. Comportamiento
Métodos de un comportamiento
Toda clase que herede de Behaviour deberá implementar:
- El método action().
Este método define la acción a ser ejecutada cuando se ejecute el comportamiento. Debe incluir
el
código de las acciones a realizar cuando se ejecute el comportamiento.
Es invocado cuando se produce el evento asociado al comportamiento.
Es recomendable que los métodos action() no tengan un tiempo de ejecución alto ya que
mientras
que se ejecutan no pueden ser interrumpidos por otro comportamiento.
- El método done().
Es invocado cuando finaliza la ejecución del método action().
Este método determina si el comportamiento ha sido completado o no. Devuelve un booleano
(true si ha
terminado o false en caso contrario).
Si el comportamiento ha finalizado, éste se elimina de la cola de comportamientos activos.
Se puede utilizar una marca que se activa cuando se quiere que finalice el comportamiento (se
evalúa su valor en el método done()).
24. Un comportamiento también puede ser
bloqueado utilizando el método block(). Este
método permite bloquear un comportamiento
hasta que algún acontecimiento ocurra
(típicamente, hasta que un mensaje llegue).
Este no afecta a los demás comportamientos
de un agente.
Cuando el método action() termina, el
método block() coloca el comportamiento en
la cola de comportamientos bloqueados.
Comportamiento
25. Comportamiento
En el paquete: comportat
◦ Crea la clase: comportat3
◦ Crea la clase: comportat4
◦ Crea la clase: comportat5
OneShotBehaviour
En este tipo de comportamiento el
método done() siempre devuelve "true",
de forma
que sólo se ejecuta una vez y de forma
ininterrumpida.
26. CyclicBehaviour
Representa un comportamiento que
debe
ejecutarse una serie de veces.
El método done() devuelve false.
Se mantiene activo tanto tiempo como
esté
activo el agente.
Hay riesgo de que se pueda quedar con
toda
Comportamiento
27. Comportamiento
Un agente de la clase Receptor llamándolo
con el nombre “receptor”
java jade.Boot -container receptor:comportat.Receptor
Un agente de la clase Emisor llamándolo con
el nombre "emisor1" :
java jade.Boot -container
emisor1:comportat.Emisor
Obtenemos la siguiente salida:
En el paquete: comportat
◦ Crea la clase: Emisor
◦ Crea la clase: Receptor
28. Comunicación 1ª parte
java jade.Boot -container receptor:comportat.Receptor
Después ejecuta el programa:
30. Fundamentos:La comunicación entre
agentes
Es fundamental para poder conseguir la potencia propia de
los sistemas multiagente.
Determina el comportamiento social de los agentes
Para que los agentes se puedan comunicar deben usar el
mismo lenguaje de comunicación
Un lenguaje de comunicación define los tipos de mensaje:
informar, solicitar, preguntar…
Las conversaciones entre agentes se rigen por una serie de
protocolos de interacción
El lenguaje de comunicación de agentes (ACL) permitirá
transmitir una serie de conocimiento que vendrá expresado
en un lenguaje de contenido. Los términos del lenguaje
de contenido que representen conocimiento pertenecerán a
un vocabulario común a los distintos agentes que se
llama ontología.
31. Comunicación 2ª parte
Un agente de la clase Receptor llamándolo con
el nombre “receptor”
java jade.Boot -container receptor:comportat.Receptor2
Un agente de la clase Emisor llamándolo con el
nombre "emisor1" :
java jade.Boot -container
emisor1:comportat.Emisor2
Obtenemos la siguiente salida:
En el paquete: comportat
◦ Crea la clase: Emisor2
◦ Crea la clase: Receptor2
34. Haciendo uso de createReply().
De esta manera, la clase Receptor quedaría así:
Como verás en este programa, existe una respuesta del agente receptor
Comportamiento
En el paquete: comportat
◦ Crea la clase: Emisor3
◦ Crea la clase: Receptor3
35. Comportamiento
En el paquete: comportat
◦ Crea la clase:
Receptor3
◦ Crea la clase: Emisor3
En el presente
programa se da
un pequeño
dialogo
36. La comunicación JADE :es FIPA-
ACL. Un mensaje FIPA-ACL puede contener los siguientes campos:
performative: tipo de acto comunicativo (acción que realiza el
mensaje). Es el único campo obligatorio y puede tomar uno de
los siguientes valores:
◦ accept-proposal: aceptar una propuesta recibida previamente
◦ agree: estar de acuerdo en realizar alguna acción
◦ cancel: cancelar alguna acción pedida previamente
◦ cfp: solicitar propuestas para realizar una acción dada
◦ confirm: informar a un receptor que una proposición es cierta
◦ disconfirm: informar a un receptor que una proposición es falsa
◦ failure: informar a otro agente que se intentó una acción pero
falló
◦ inform: informar a un receptor que una proposición es cierta
◦ inform-if: si el agente que recibe la acción cree que la sentencia
es verdadera informará de manera afirmativa, sino indicará que
es falsa.
37. La comunicación JADE :es FIPA-
ACL.
not-understood: informar a un receptor que el emisor no entendió el
mensaje
propagate: el receptor trata el mensaje como si fuese dirigido
directamente a él, y debe identificar los agentes en este descriptor y
enviarles el mensaje a ellos
propose: enviar una propuesta para realizar una cierta acción
proxy: el receptor debe seleccionar agentes objetivo denotados por una
descripción dada, y enviarles un mensaje embebido
query-if: preguntarle a otro agente si una determinada proposición es
cierta
query-ref: preguntar a otro agente por el objeto referenciado en una
expresión
refuse: rechazar realizar una acción
reject-proposal: rechazar una propuesta durante una negociación
request: solicitar a un receptor que realice alguna acción
request-when: solicitar al receptor que realice alguna acción cuando una
proposición dada sea cierta
request-whenever: solicitar al receptor que realice alguna acción cada
vez que una proposición dada sea cierta
subscribe: una intención persistente de notificar al emisor de un
determinado valor, y volver a notificarle cada vez que dicho valor cambie
38. La comunicación JADE :es FIPA-
ACL.
Métodos de ACLMessage
A continuación se muestran algunos de los métodos más importantes de la clase
ACLMessage. Para consultar más detenidamente todos los métodos de dicha
clase se puede consultar su documentación en la API de JADE ( ACLMessage )
setPerformative(int ): toma como parámetro una constante representativa de un
tipo de acción performativa y la establece como performativa del mensaje. Los
posibles actos comunicativos son los que hemos visto antes y las constantes que
los representan se pueden ver en la API. Por ejemplo, para hacer que el mensaje
msg sea de tipo agree bastará con escribir:
msg.setPerformative(ACLMessage.AGREE);
getPerformative(): devuelve un entero equivalente a la constante que representa
a la performativa del mensaje
createReply(): crea un mensaje de respuesta para el mensaje sobre el que es
aplicado, poniendo los valores oportunos en campos como receiver, conversation-
id, etc.
addReceiver(AID ): toma como parámetro un AID y lo añade a la lista de
receptores
getAllReceiver(): devuelve un iterador sobre la lista de receptores.
setContent(String ): recibe como parámetro una cadena y la pone como
contenido del mensaje
getContent(): devuelve una cadena con el contenido del mensaje
39. Selección de mensajes
Para seleccionar los mensajes que un agente desea recibir
podemos utilizar la clase MessageTemplate.
Esta clase permite definir filtros para cada atributo del
mensaje ACLMessage y se utiliza como parámetro en los
métodos receive y blockingReceive.
En esta clase se definen un conjunto de métodos estáticos
que nos devuelven como resultado un objeto de tipo
MessageTemplate.
Las diferentes opciones de filtrado son:
MatchPerformative( performative )
donde performativepuede ser:
◦ ACLMessage.INFORM
◦ ACLMessage.PROPOSE
◦ ACLMessage.QUERY_REF
◦ ...
La comunicación JADE :es FIPA-
ACL.
40. MatchSender( AID )
MatchConversationID( String ): Permite dedicar un comportamiento a gestionar
una conversación/negociación.
and( Template1, Template2 ): realiza un and lógico entre los dos filtros.
or ( Template1, Template2 ): realiza un or lógico entre los dos filtros.
not( Template ): invierte el filtro.
MatchOntology( String ): devuelve un filtro según el nombre de la ontologia que
le pasemos como parámetro.
MatchProtocol( String ): devuelve un filtro según el nombre del protocolo que le
pasamos.
MatchLanguage( String ): devuelve un filtro según el lenguaje introducido.
MatchContent( String ): crea una plantilla según el contenido del mensaje.
MatchReplyWith( String ): devuelve un filtro según el campo replywith.
Además existe el método match(ACLMessage) que devuelve verdadero si el
mensaje que le pasamos como parámetro cumple el filtro definido en el objeto
MessageTemplate.
En el ejemplo anterior, el agente Receptor podría solo estar interesado en recibir
mensajes del tipo REQUEST, en Español y procedentes exclusivamente del
agente "emisor". Esto se puede obtener modificando el
La comunicación JADE :es FIPA-
ACL.
41. En el paquete:
comportat
◦ Crea la clase: Emisor4
◦ Crea la clase: Receptor4
La comunicación JADE :es FIPA-
ACL.
44. La comunicación JADE :es FIPA-
ACL.
Ejecución de
◦ La clase:
Receptor4
◦ La clase: Emisor4
45. Páginas amarillas (DF Agent)
Permite a los agentes publicar los servicios que
proporcionan, para que otros agentes puedan
acceder a ellos.
46. Páginas amarillas (DF Agent)
El agente debe proporcionar al DF una
descripción, incluyendo su AID, los
protocolos, lenguajes y ontologías que el
resto de agentes necesitan conocer para
interactuar con él; y la lista de servicios
publicados.
Para cada servicio se proporciona una
descripción, incluyendo: tipo de servicio,
nombre, protocolos, lenguajes y ontologías; y
una serie de propiedades específicas del
servicio.
Antes de finalizar su ejecución el agente
debe eliminar del DF sus servicios.
47. Páginas amarillas (DF Agent)
Para realizar las acciones anteriores Jade proporciona
los siguientes métodos:
static DFAgentDescription register: registra los
servicios de un agente en el DF.
static void deregister: elimina del registro del DF los
servicios del agente.
Los servicios se definen con los siguientes métodos de
la clase ServiceDescription:
◦ void setName: modifica el nombre del servicio.
◦ void setOwnership: modifica el propietario del servicio.
◦ void setType: modifica el tipo de servicio.
◦ void addLanguages: añade lenguaje del servicio.
◦ void addOntologies: añade ontología del servicio.
◦ void addProtocols: añade protocolo del servicio.
◦ void addProperties: añade propiedades del servicio.
48. Publicar servicios:
La descripcion del agente se modifica con los
siguientes métodos de la
clase DFAgentDescription:
◦ void setName: modifica el AID de la descripciñón del
agente.
◦ void addServices: añade el servicio pasado por
parámetro a la descripción del agente.
◦ void removeServices: elimina el servicio pasado por
parámetro a la descripción del agente.
◦ void addLanguages: añade lenguajes que el agente
entiende.
◦ void addOntologies: añade ontologías que el agente
entiende.
◦ void addProtocols: añade protocolos que el agente
entiende.
49. Páginas blancas (AMS Agent)
• Garantiza que cada agente en la
plataforma tenga un único nombre.
• Encargado de proporcionar los
servicios de páginas blancas y ciclo de
vida, y de mantener el directorio de los
identificadores de agentes (AID: Agent
Identifier) y su estado.
• Cada agente debe registrarse con el
AMS para obtener un AID válido, esta
operación en JADE la realizan los
agentes de manera automática en el
agente AMS por defecto.
50. Páginas blancas (AMS Agent)
Para acceder a los servicios del agente AMS hay que
importar la clase AMSService. Esta clase contiene los
siguientes métodos:
static void register: registra al agente en el AMS. Tanto
esta operación como la operación deregister se
realizan automáticamente en JADE cuando se ejecutan
los métodos setup() y takeDown() respectivamente, por
lo tanto no suelen ser usados normalmente.
static void deregister: elimina el registro del agente en
el AMS.
static void modify: modifica los datos del agente en el
AMS.
static AMSAgentDescription search: devuelve la
descripción de los agentes registrados en el agente
AMS.
Programa 14. Crea la clase: PaginasBlancas y
ejecutalo
51. Páginas blancas (AMS Agent)
Programa 14. Crea la clase: PaginasBlancas y ejecutalo
52. Protocolos de comunicación
El paquete jade.proto
Este paquete agrupa todas las clases que, en forma
de
comportamientos, facilitan la implementación de los
protocolos de comunicación definidos por FIPA.
Dichas clases se agrupan dentro del paquete en
cuatro
parejas de clases principales con las cuales se
podrán
implementar la mayoría de los protocolos.
53. Protocolos de comunicación
Como ya se indicó más arriba estas clases
implementan comportamientos, y concretamente el
tipo de comportamiento que implementa es el
FSMBehaviour, ya que las acciones de los agentes
en los protocolos FIPA se puede reducir simplemente
a una máquina de estados finitos, y este es el tipo de
comportamiento indicado para representar dichas
máquinas. Este comportamiento es más fácil de
comprender observando el siguiente ejemplo en el
cual Pedro le pide la hora Juan:
Pedro: Juan, ¿Tienes hora?
Juan: Sí, un segundo.
Juan mira el reloj.
Juan: Son las seis en punto.
55. Protocolos de comunicación
En JADE los
comportamientos de los
iniciadores se ejecutarán
una
sola vez, mientras que los
de
los respondedores serán
cíclicos.
La acciones que se realizan
en
cada estado se definen
mediante manejadores (Ha
ndl
ers), mientras que los
mensajes se concretan
mediante (Prepares)..
56. Algunos de los protocolos que
implementa la clase AchieveRE
son:
FIPA-Request
Este protocolo permite a un agente solicitar a otro la
realización de una acción y está identificado en el
parámetro del protocolo del mensaje con el valor fipa-
request. Los mensajes que se intercambian son:
Request, la petición.
Agree, si acepta la petición o refuse si la rechaza.
En caso de que el mensaje anterior fuera un agree:
Failure si ocurrió algún error en el proceso, inform-done
si se realizó correctamente e inform-result si además se
tiene que comunicar el resultado.
A continuación se presenta un ejemplo que hace uso
de estas clases.
57. Ejercicio último
En este ejemplo un agente (representado por la clase Testigo)
avisará a los
hospitales pasados como parámetro de que ha habido un accidente
de
tráfico y pide ayuda. Es decir podremos crear varios hospitales y
pasarlos todos como parámetros al testigo.
Los hospitales (representados por la clase Hospital) podrán atender
la emergencia o descartarla por estar fuera de su radio de
actuación.
Para que funcione bien, hay que lanzar primero el agente Hospital
(uno o
varios) y luego pasarle como parámetro al agente Testigo uno o
mas
agentes (en caso de no pasar ninguno dará un error de falta de
parámetros).