agentes inteligentes m.c. juan carlos olivares rojas [email protected]...
TRANSCRIPT
![Page 1: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/1.jpg)
Agentes Inteligentes
M.C. Juan Carlos Olivares Rojas
[email protected]@hotmail.com
@jcolivareshttp://antares.itmorelia.edu.mx/~jcolivar
Febrero, 2010
![Page 2: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/2.jpg)
Competencia Específica
• Conoce los fundamentos teóricos de la teoría de agentes y poderla aplicar en la práctica.
![Page 3: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/3.jpg)
Agentes• Es un software (que puede incluir
hardware) que trabaja de manera autónoma y es capaz de realizar una serie de problemas de forma razonada.
• Los agentes se caracterizan por tener bien delimitados sus alcances. Generalmente reciben entrada a través de estímulos y realizan acciones hacia el exterior.
![Page 4: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/4.jpg)
Arquitectura de Agentes
![Page 5: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/5.jpg)
Agentes Inteligentes• Un agente es algo que razona (agente
viene del latín agere, hacer).
• Aparte de la autonomía y la racionalidad un agente debe de ser adaptable y en muchos casos “sociable”; es decir, poderse comunicar con otros agentes e incluso con el hombre mismo.
• Algunos autores a los agentes les llaman softbot.
![Page 6: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/6.jpg)
Agentes Inteligentes
![Page 7: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/7.jpg)
Aplicación de los Agentes
Inteligencia y Conocimiento
Patrones
Agentes
Coordinación y Sincronización
Robótica Móvil
Robótica de Manipuladores
Procesamiento de Imágenes
Redes Neuronales
![Page 8: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/8.jpg)
Agentes Inteligentes• Se trata de emular la inteligencia natural
Razonamiento
Percepción
Memoria
Aprendizaje
Medio am
biente
Abstracción
Imaginación
Creatividad
Conciencia
Libre albedrio
Solución de problemas
Actuación
![Page 9: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/9.jpg)
Áreas de la Teoría de Agentes
IA DistribuidaIngeniería de software
Sistemas distribuidos y redes
POO
NOCION DENOCION DEAGENCIAAGENCIA
![Page 10: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/10.jpg)
Cerebro Humano como Máquina
• ¿Una computadora biológica?
• 1011 Neuronas (procesadores)
• Poder desconocido• 1000 – 10000
conexiones por neurona• Capacidad basada en
las conexiones.• Cada neurona es muy
compleja.• Almacenamiento
redundante.• No binario, no estable y
no asíncrono.
![Page 11: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/11.jpg)
“Sensores Humanos”Neuronas
Olor
Color
Sabor
Sonido
Tersura
información
acciones
Conexiones
![Page 12: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/12.jpg)
“Sensores Humanos”• Sonido 102 Hz, 104 Hz
• Color 1015 Hz
• Sabor ¿es una onda?
• Olor ¿es una reacción química?
• Tersura ¿es una onda?
104 Hz
102 Hz
![Page 13: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/13.jpg)
MAS• Multi-Agent System (Sistemas Multi
Agentes) son una colección de agentes generalmente distribuidos geográficamente y que pueden trabajar en conjunto para el logro de objetivos.
• Se caracterizan por que no hay un control global del sistema (recordar que cada agente es autónomo), por lo que los datos están descentralizados y la comunicación es asíncrona.
![Page 14: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/14.jpg)
MAS• Los agentes pueden ser reactivos o
proactivos.
• Se dice que es un agente es reactivo cuando dado un estímulo es capaz de procesar la respuesta.
• Un agente es proactivo cuando antes de percibir estímulos se encuentra trabajando.
![Page 15: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/15.jpg)
MAS• Algunos ejemplos de agentes:
• Un demonio en unix (poca racionalidad)• Un sistema de calefacción/aire
acondicionado automatizado (poca racionalidad)
• Un agente planificador de vuelos• Un agente para recomendaciones en
sistemas de comercio electrónico.
![Page 16: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/16.jpg)
MAS• Se considera que para que un agente
inteligente esté realmente completo se necesita de las siguientes actitudes:
• Conocimientos• Creencias• Intenciones• Obligaciones• Emociones
![Page 17: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/17.jpg)
MAS• En los sistemas multiagente se hace
sumamente necesario la movilidad. Existen diversas clasificaciones de MAS:
COOPERATIVOSCOOPERATIVOS
AUTONOMOSAUTONOMOS
APRENDENAPRENDEN
AGENTES INTELIGENTESAGENTES INTELIGENTESCOLABORATIVOSCOLABORATIVOS
AGENTES DE AGENTES DE INTERFAZINTERFAZ
COLABORATIVOS/COLABORATIVOS/APRENDENAPRENDEN
![Page 18: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/18.jpg)
Actividad• Para un Taxi con piloto automático (taximetro
reemplazado por un agente inteligente )
• Determine lo siguiente:
• Percepciones• Acciones• Metas• Ambiente
![Page 19: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/19.jpg)
Ejemplo de MAS
![Page 20: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/20.jpg)
Ambientes• Dependiendo del tipo de ambiente, la
inteligencia del agente varía. Actualmente se maneja el concepto de AMI (Ambientes Inteligentes) para describir el cómputo generalmente ubicuo que puede interactuar con su entorno. Es una variante de la domótica y del cómputo automatizado.
• A continuación se muestran los diferentes tipos de ambientes.
![Page 21: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/21.jpg)
Cómputo Ubicuo y AMI
Inteligencia Ambiental
![Page 22: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/22.jpg)
Consciencia del
dispositivo
Consciencia del
dispositivo
¿Qué se necesita para AMI?
¿Donde? WHERE¿Donde? WHERE
¿Quién? WHO¿Quién? WHO
Realizar servicios solosRealizar servicios solos
Realizar servicios coordinados
Realizar servicios coordinados
¿Cuándo? WHEN¿Cuándo? WHEN
¿Qué? WHAT¿Qué? WHAT
Context-Aware y SOA
¿Cómo? HOW¿Cómo? HOW
![Page 23: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/23.jpg)
Ambientes• Accesible/Inaccesible: Si los sensores
proporcionan todo lo que hay que saber sobre el estado completo del ambiente.
• Determinístico/No-determinístico (estocástico): Si el estado siguiente del ambiente está determinado plenamente por el estado presente del mismo, y por la acción del agente.
![Page 24: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/24.jpg)
Ambientes• Episódico/No-episódico: Un ambiente
episódico implica que los episodios siguientes no dependen de las acciones que ocurrían en episodios previos.
• Estático/Dinámico: Será estático todo ambiente que no cambie mientras el agente está pensando.
![Page 25: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/25.jpg)
Ambientes• Discreto/Continuo: se es discreto cuando
existe un escaso número de percepciones y acciones en el ambiente. Continuo en el otro caso.
• Sin adversario/con adversarios racionales: los ambientes de estudio generalmente son contrincarios, aunque la realidad es más compleja, como la bolsa o los juegos deportivos.
![Page 26: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/26.jpg)
Ejercicio de Ambientes
![Page 27: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/27.jpg)
Tipos de Ambientes• De acuerdo con Russell & Norving se
tienen los siguientes tipos de agentes:
• De reflejo simple: se basan en reglas condición/acción. Carecen de memoria referente a estados pasados del mundo.
• Bien informado de lo que pasa: con un estado interno usado para almacanar estados pasados del mundo.
![Page 28: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/28.jpg)
Tipos de Ambientes• Basados en meta (proactivos): además de
disponer de información sobre el estado, tienen una meta que describe situaciones deseables.
• Basados en Utilidad: basan su decisión en
la teoría de la utilidad para actuar racionalmente.
![Page 29: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/29.jpg)
Agente Reactivo (Reflejo)
![Page 30: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/30.jpg)
Agentes bien informados
![Page 31: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/31.jpg)
Agentes basados en Metas
![Page 32: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/32.jpg)
Agentes basados en Utilidad
![Page 33: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/33.jpg)
BDI• Es una forma de representar agentes:
Belief (creencias), Desire (deseos), Intentions (intenciones).
• Las creencias representan la base de conocimientos, los deseos los logros a obtener y las intenciones son la serie de acciones a realizar para lograr los objetivos.
• Todo esto se debe explicitar de alguna forma.
![Page 34: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/34.jpg)
Ejemplo de BDI• Ejemplo: TERMOSTATO • D = mantener temperatura en T• B = { t (A), OK(T) }• I = { Calentar, Enfriar, nada}
• Filtro: - Si A > T entonces I = Enfriar• - Si A < T entonces I = Calentar• - Si A = T entonces I = Nada
![Page 35: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/35.jpg)
Ejemplo de BDI• Acción: Case I de • Enfriar Acción = bajar temp• Calentar Acción = subir temp• Nada Acción = nada
• Después de todo esto el principal reto en teoría de agentes es el lenguaje de comunicación entre los agentes y su entorno.
![Page 36: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/36.jpg)
Lenguajes de Agentes• Existen diversos lenguajes de comunicación entre
agentes la gran mayoría propietarios aunque en los últimos años se han estandarizado dos:• KQML• FIPA ACL
– En este curso se trabajará con la plataforma de
agentes JADE.
– Los agentes se han hecho tan populares que ha surgido el paradigma de programación orientado a agentes AOP por sus siglas en inglés.
![Page 37: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/37.jpg)
AOP• Programación Orientada a Agentes
• Nuevo paradigma computacional• Especialización de la OOP
• Elemento central: Agentes BDI
• Agente: creencias + capacidades + compromisos
![Page 38: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/38.jpg)
AOPCaracterística OOP AOP
Unidad Básica Objecto Agente
Unidad Básica de Estados
Sin restricciones Creencias, compromisos, …
Proceso de cálculo Métodos de Respuesta y Paso de Mensajes
Métodos de Respuesta y Paso de Mensajes
Tipo de mensajes Sin restricciones Informe, solicitud, oferta, promesa, declinación
Limitaciones en métodos
Ninguna Honestidad, Consistencia, …
![Page 39: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/39.jpg)
AOP• Modelado de Agentes
<<agent>> agent-name
Role
role 1, role 2, …, role n
role dynamic 1, role dynamic 2, …, role dynamic n
Organization
organization 1, organization 2, ., organization n
org dynamic 1, org dynamic 2, ., org dynamic n
![Page 40: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/40.jpg)
Plataformas de Agentes• Existen muchas plataformas MAS como:
• Concordia• FIPA-OS• Zeus• Gossip• JATLite• Odyssey• Aglets• Voyager
![Page 41: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/41.jpg)
JADE• Java Agent DEvelopment Framework fue
desarrollado en Italia por Telecom (formalmente CSELT) junto con la Universidad de Parma en Julio de 1998.
• El objetivo fue crear una implementación concreta de la especificación FIPA.
• Actualmente es la plataforma de agentes más utilizada en el mundo.
![Page 42: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/42.jpg)
FIPA• Es un estándar para el manejo de
agentes para poderlos hacer interoperables define una arquitectura básica así como un lenguaje de agentes: ACL basado en KQML.
• En el caso de JADE se tiene la característica de manejar agentes móviles donde si no se le define “inteligencia” simplemente funcionan como un middleware de aplicaciones distribuidas.
![Page 43: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/43.jpg)
JADE• Es un marco de trabajo de software para
facilitar el desarrollo de sistemas multiagentes inteligentes e interoperables.
• Constituye un midelware para el desarrollo y un ambiente de ejecución para aplicaciones punto a punto que siguen el paradigma de agentes.
• Jade está basado en Java.
![Page 44: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/44.jpg)
Arquitectura de JADE
![Page 45: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/45.jpg)
Arquitectura JADE• Cada instancia del ambiente de ejecución
se llama Contenedor, dado que puede contener varios agentes.
• El conjunto de contenedores activos se llama Plataforma.
• Debe existir un contenedor denominado como principal (Main Container), en el cual todos los demás contenedores deben registrarse tan pronto inicien su ejecución en el sistema.
![Page 46: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/46.jpg)
Arquitectura JADE• El primer contenedor en iniciar en una
plataforma debe ser el principal.
• Los demás contenedores deben saber dónde localizar al principal (host:port)
• Si existe otro contenedor principal, entonces este constituye otra plataforma.
• Los contenedores puede registrarse en cualquiera de las plataformas disponibles.
![Page 47: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/47.jpg)
Arquitectura JADE• El contenedor principal maneja dos
agentes especiales:• AMS (Agent Management System)
– Provee el servicio de nombres y representa la autoridad en el sistema (crear o eliminar agentes en un contenedor remoto).
• DF (Directory facilitator)– Provee las páginas amarillas de servicios a
través del cuál un agente puede encontrar a otros que proveen los servicios que requiere para completar sus metas.
![Page 48: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/48.jpg)
Arquitectura JADE• JADE cuenta con una interfaz gráfica para
el manejo de los agentes.
• Para poder ejecutar JADE se requiere actualizar la variable de entorno classpath.
• En sistemas *X a través de export CLASSPATH=$CLASSPATH:/rutabibliotecas/jade.jar:/rutabibliotecas/otrosarchivos.jar
![Page 49: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/49.jpg)
Arquitectura JADE• En el caso de sistemas Windows puede
hacer a través de línea de comandos o a través de la opción de variable de entorno dentro de la configuración principal del equipo.
• Una vez instalada la máquina virtual de Java se ejecuta: java jade.Boot para correr en modo texto JADE o bien java jade.Boot –gui para correrlo en modo gráfico.
![Page 50: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/50.jpg)
Arquitectura JADE• Interfaz Gráfica RMA (Remote Agent
Management)
![Page 51: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/51.jpg)
Arquitectura JADE• Se cuenta con algunos agentes de
utilidad como el agente sniffer que permite rastrear el paso de mensajes entre los agentes.
![Page 52: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/52.jpg)
Arquitectura JADE• El agente instrospector permite visualizar
los mensajes y comportamientos de los agentes.
![Page 53: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/53.jpg)
Arquitectura JADE• El agente Dummy permite interactuar
con otros agentes mandando y recibiendo mensajes.
![Page 54: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/54.jpg)
Arquitectura JADE• Para la comunicación se utiliza el
protocolo IIOP utilizando RMI (con compatibilidad nativa con CORBA).
• La comunicación se puede dar:– Entre agentes en el mismo contenedor– Entre agentes en distintos contenedores pero
en la misma máquina– Entre agentes en distintas máquinas
utilizando JADE– Entre agentes en distintas plataformas
![Page 55: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/55.jpg)
Ciclo de Vida de Agente en JADE
![Page 56: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/56.jpg)
Modelo de Ejecución• JADE usa la abstracción de Behavior o
comportamiento para modelar las tareas que un agente debe realizar.
• JADE usa el modelo de concurrencia de hilo-por-agente en lugar de hilo-por-comportamiento para mantener pocos hilos en concurrencia.
![Page 57: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/57.jpg)
Modelo de Ejecución• Cada agente posee un programador de
comportamientos que implementa una política “round-robin non-preemptive”.
• Se utilizan dos métodos para manejar la cola de comportamientos de agente: addBehaviour(Behaviour) y removeBehaviour(behaviour).
![Page 58: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/58.jpg)
Hola Mundo en JADE• En el caso de contar con un IDE como
NetBeans se deberán incluir todos los archivos de biblioteca *.jar en el proyecto.
• Para poder ejecutarlo se necesitará modificar las propiedades del proyecto para que la clase principal sea jade.Boot y en los argumentos de ejecución la opción –gui seguida del nombre del agente y de la clase agente. Por ejemplo agente1:Comprador
![Page 59: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/59.jpg)
Modelo de Ejecución
![Page 60: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/60.jpg)
Programación en JADE• El proyecto en su totalidad se puede
bajar de la liga AgenteSimple.zip del sitio Web de la asignatura.
import jade.core.*;import javax.swing.*;public class AgenteSimple extends Agent { @Override public void setup(){ System.out.println("Ejemplo de Agente
Simple!!!");
![Page 61: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/61.jpg)
Programación en JADE JOptionPane.showMessageDialog(null, "El
nombre del agente es:"+getAID().getName());
}
@Override public void takeDown(){ JOptionPane.showMessageDialog(null,
"Se murió el agente"); }}
![Page 62: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/62.jpg)
Programación en JADE• Un agente de manera predeterminada no
recibe datos a través de su constructor por lo que debe pasárselos a través de línea de comandos.
import jade.core.Agent;public class Parametros extends Agent { private String titulo; @Overrideprotected void setup() { System.out.println("Prueba de
![Page 63: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/63.jpg)
Programación en JADEObject[] args = getArguments();if (args != null && args.length > 0) { titulo = (String) args[0]; System.out.println("Comprando CD:"+titulo);} else { System.out.println("No se recibieron parámetros. El agente
morirá"); doDelete(); }}• @Override• protected void takeDown() { • System.out.println("El agente:"+getAID().getName()+" está
colgando los tennis");
• }• }
![Page 64: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/64.jpg)
Programación en JADE@Overrideprotected void takeDown() { System.out.println("El
agente:"+getAID().getName()+" está colgando los tennis");
} }
Para ejecutarse sería algo así como: java jade.Boot –gui agente:MiClaseAgente(“Parametro1”, parametro2, etc…)
![Page 65: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/65.jpg)
Programación en JADE• Aunque se pueden crear agentes a partir
de otra clase que por ejemplo tenga o no un método main() su funcionamiento no es el adecuado.
• Por ejemplo si quisiéramos que un agente tuviese una interfaz gráfica, sería el agente el cual debiera de crear la interfaz.
![Page 66: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/66.jpg)
Programación en JADE• Otra de las características fundamentales
de los agentes es la programación de los comportamientos.
• Un comportamiento no es otra cosa que un método que ejecuta de manera constante (en forma concurrente un hilo).
• A continuación se muestra un ejemplo de definición de comportamiento de un agente con interfaz gráfica.
![Page 67: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/67.jpg)
Programación en JADEimport jade.core.Agent;import jade.core.behaviours.*;import java.util.*;public class Comportamiento extends
Agent { private Hashtable catalogo; private Interfaz i; @Overrideprotected void setup() { setCatalogo(new Hashtable());
![Page 68: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/68.jpg)
Programación en JADEi = new Interfaz(this); i.setVisible(true);}@Overrideprotected void takeDown() {i.dispose(); }public Hashtable getCatalogo() { return catalogo; }
![Page 69: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/69.jpg)
Programación en JADEpublic void setCatalogo(Hashtable
catalogo) { this.catalogo = catalogo; }}
• En la interfaz se diseña una forma con un cuadro de texto y dos botones: uno para agregar el texto (implementa el comportamiento del agente) y otro para listar los datos.
![Page 70: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/70.jpg)
Programación en JADE• La clase que define el comportamiento
tiene la siguiente estructura
class comportamientoAgregar extends Behaviour{
private String titulo; private int precio; private Hashtable catalogo; public comportamientoAgregar(String
t, int p, Hashtable h){ titulo = t;
![Page 71: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/71.jpg)
Programación en JADEprecio = p; catalogo = h; } public void action() { catalogo.put(titulo, precio); } public boolean done() { return true; }}
![Page 72: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/72.jpg)
Programación en JADE• En lo que respecta al botón de agregar en
la interfaz que manda llamar al comportamiento del agente se tiene:
public void actualizarCatalogo() { agente.addBehaviour(new
comportamientoAgregar(titulo.getText(), Integer.parseInt(precio.getText()), agente.getCatalogo()));
}
![Page 73: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/73.jpg)
Comportamientos en JADE• Existen algunos tipos de
comportamientos básicos predefinidos para extender el uso de comportamientos:
• SimpleBehaviour: Es un comportamiento simple en el cual el usuario debe definir dentro del método onEnd() la condiciones sobre las cuales el comportamiento debe terminar.
![Page 74: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/74.jpg)
Comportamientos en JADE• OneShotBehaviour: Es un
comportamiento simple que se ejecuta sólo una vez y no puede ser bloqueado. Por lo tanto el método done() siempre retorna verdadero. La función done() retorna verdadero o falso para definir si el comportamiento finalizó o no.
• CyclicBehaviour: Este comportamiento simple puede ser ejecutado infinitamente, por lo que el método done() siempre retorna falso.
![Page 75: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/75.jpg)
Comportamientos en JADE• FSMBehaviour.- Es un comportamiento
compuesto que se ejecuta de acuerdo a una máquina de estado finito cuyos estados son definidos por el usuario.
• SequentialBehaviour.- Este comportamiento compuesto ejecuta secuencialmente varios subcomportamientos y termina cuando todos los subcomportamientos hayan terminado.6. ParallelBehaviour.- Es un comportamiento compuesto que ejecuta subcomportamientos concurrentemente y termina cuando una condici ́on particular en estos subcomportamien- tos se cumple.
![Page 76: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/76.jpg)
Comportamientos en JADE• ParallelBehaviour: Es un comportamiento
compuesto que ejecuta subcomportamientos concurrentemente y termina cuando una condición particular en estos subcomportamientos se cumple.
• TickerBehaviour: es un comportamiquento que se hace cada x tiempo predeterminado.
![Page 77: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/77.jpg)
Comportamientos en JADE• public class AgenteMonitor extends Agent
{ ...• addBehaviour(new
TickerBehaviour(this,2000) { public void onTick() {
• //Instrucciones de monitoreo• System.out.println(“ya casi es hora de
salir”)• }} }); ...
![Page 78: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/78.jpg)
Clonación• Los agentes se pueden clonar, para ello
se deberán redefinir los métodos afterClone y beforeClone para definir funcionalidades básicas.
• Los agentes se pueden crear en tiempo de ejecución para ello se deberá importar la clase jade.core.RunTime.
• Runtime rt = Runtime.instance();
![Page 79: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/79.jpg)
ClonaciónAgentContainer ac =
getContainerController();
AgentController agente1= ac.createNewAgent("AgenteRecolector",”paquete.X",args);
Agente1.start();
![Page 80: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/80.jpg)
Ontologías en JADE• Se pueden definir ontologías para un
manejo homogéneo del vocabulario de los agentes.
• Las ontologías se basan en jade.content.onto.Ontologyy deben de definir tres dominios de conceptos: PredicateSchema, AgentActionSchema y ConceptSchema incluidas en el paquete jade.content.schema.
![Page 81: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/81.jpg)
Ejemplo de Ontologíapackage conexionOntology;import jade.content.onto.*;import jade.content.schema.*;public class conexionOntology extends
Ontology {public static final String ONTOLOGY_NAME
= "ontología de conexión”; public static final String URL_ = "Url”;public static final String URL_IP = "ip";public static final String URL_PUERTO =
![Page 82: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/82.jpg)
Ejemplo de Ontología"puerto";public static final String CONEXIONA =
"ConexionA";public static final String CONEXIONA_URL =
"url";public static final String CONECTA =
"Conecta";public static final String CONECTA_URL =
"url”; private static Ontology laInstancia = new
conexionOntology();
![Page 83: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/83.jpg)
Ejemplo de Ontologíapublic static Ontology getInstance() {return
laInstancia;} private conexionOntology() {super(ONTOLOGY_NAME,
BasicOntology.getInstance());try {add(new ConceptSchema(URL_), Url.class);add(new PredicateSchema(CONEXIONA),
ConexionA.class);add(new AgentActionSchema(CONECTA),
![Page 84: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/84.jpg)
Ejemplo de OntologíaConecta.class); URL_ConceptSchema cs = (ConceptSchema)
getSchema(URL_);cs.add(URL_IP, (PrimitiveSchema)
getSchema(BasicOntology.STRING),ObjectSchema.OPTIONAL);
cs.add(URL_PUERTO, (PrimitiveSchema) getSchema(BasicOntology.INTEGER));
PredicateSchema ps = (PredicateSchema) getSchema(CONEXIONA);
![Page 85: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/85.jpg)
Ejemplo de Ontologíaps.add(CONEXIONA_URL, (ConceptSchema)
getSchema(URL_));AgentActionSchema as =
(AgentActionSchema) getSchema(CONECTA);
as.add(CONECTA_URL, (ConceptSchema) getSchema(URL_));
}catch (OntologyException oe) {oe.printStackTrace();
}}
![Page 86: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/86.jpg)
Concepto de Ontologíapackage conexionOntology;import jade.content.Concept;public class Url implements Concept {private String ip;private int puerto;public String getIp() {return ip;}public void setIp(String i) {ip = i;}public int getPuerto() {return puerto;}public void setPuerto(int p) {puerto = p;}}
![Page 87: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/87.jpg)
Ejemplo deOntologías package conexionOntology;import jade.content.Predicate;public class ConexionA implements
Predicate {private Url url;public Url getUrl() {return url;}public void setUrl(Url u) {url = u;}}
![Page 88: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/88.jpg)
Ejemplo de Ontologíaspackage conexionOntology;import jade.content.AgentAction;public class Conecta implements
AgentAction {private Url url;public Url getUrl() {return url;}public void setUrl(Url u) {url = u;}}
![Page 89: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/89.jpg)
Programación en JADE• Como puede observarse en algunos casos
da lo mismo implementar un comportamiento que definir un método cuando el comportamiento no es inteligente.
• La parte más interesante de los sistemas de agentes móviles es la comunicación entre los agentes. A continuación se muestra un ejemplo de cómo implementar el envío de mensajes
![Page 90: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/90.jpg)
Programación en JADEimport jade.core.*;import jade.lang.acl.*;import java.io.*;public class Mensajero extends Agent { private String nombre; private String contenido; public Mensajero(){ nombre = ""; contenido = ""; }
![Page 91: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/91.jpg)
Programación en JADE@Override public void setup() { ACLMessage msg = new
ACLMessage(ACLMessage.INFORM); BufferedReader bf = new
BufferedReader(new InputStreamReader(System.in));
System.out.println("Introduce el nombre del agente a enviar mensaje?");
try { nombre = bf.readLine();
![Page 92: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/92.jpg)
Programación en JADE} catch (IOException ioe) { ioe.printStackTrace(); } msg.addReceiver(new AID(nombre,
AID.ISLOCALNAME)); msg.setLanguage("Español"); System.out.println("Introduce el
contenido del mensaje?"); try { contenido = bf.readLine();
![Page 93: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/93.jpg)
Programación en JADE} catch (IOException ioe){ ioe.printStackTrace(); } msg.setContent(contenido); send(msg); System.out.println("Contenido
Enviado"); }}
![Page 94: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/94.jpg)
Programación en JADEimport jade.core.*;import jade.lang.acl.*;public class ReceptorRespuesta extends
Agent{ @Override public void setup(){ //receive es no bloueante... //ACLMessage msg = receive(); //Hasta que llegue un mensaje aquí se
queda
![Page 95: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/95.jpg)
Programación en JADEACLMessage msg = blockingReceive(); if (msg != null) { System.out.println("Llego
mensaje..."); String nombre =
msg.getSender().getLocalName(); System.out.println("Mensaje
enviado por:"+nombre); String contenido =
msg.getContent();
![Page 96: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/96.jpg)
Programación en JADESystem.out.println("El contenido del mensaje
es:"+contenido); ACLMessage reply =
msg.createReply();
reply.setPerformative(ACLMessage.PROPOSE);
String respuesta = String.valueOf(Math.random()*100);
System.out.println("La respuesta a enviar es:"+respuesta);
reply.setContent(""+respuesta);
![Page 97: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/97.jpg)
Programación en JADEsend(reply); } else { System.out.println("No llegó
mensaje"); } }}
![Page 98: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/98.jpg)
Programación en JADEimport jade.core.*;import jade.domain.*;import
jade.domain.FIPAAgentManagement.*;public class Registro extends Agent{ @Override public void setup(){ System.out.println("Registrando
Agente en la sección amarilla..."); DFAgentDescription dfd = new
DFAgentDescription();
![Page 99: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/99.jpg)
Programación en JADEdfd.setName(getAID()); ServiceDescription
sd = new ServiceDescription(); sd.setType("Venta-Libros"); sd.setName("Agente-Vendedor"); dfd.addServices(sd); try { DFService.register(this, dfd); } catch (FIPAException fe) { fe.printStackTrace(); } }
![Page 100: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/100.jpg)
Programación en JADE@Override protected void takeDown() { try { DFService.deregister(this); } catch (FIPAException fe) { fe.printStackTrace(); } System.out.println("Desregistrando
servicios en el DF"); }}
![Page 101: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/101.jpg)
Prácticas• Agente para Transacciones de Comercio
Electrónico (“carrito de compras”)
• Un MAS que permita tener un agente para tomar pedido, recolectar pedido, cancelar pedido.
• Un buscador Web de páginas semánticas en dispositivos móviles
![Page 102: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/102.jpg)
Bibliografía
Winston, P. (1992) Artificial Intelligence, 3ra. Edición, Addison-Wesley.
• Fabio Bellifemine, Giovanni Caire, Agostino Poggi, Giovanni Rimassa, 2008, JADE: A software framework for developing multi-agent applications. Lessons learned, Information and Software Technology, 50(1): 10-21. http://jade.tilab.com/
![Page 103: Agentes Inteligentes M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar](https://reader035.vdocuments.site/reader035/viewer/2022081506/5665b4721a28abb57c918701/html5/thumbnails/103.jpg)
¿Preguntas, dudas y comentarios?