Curso UIMP: Taller de Agentes Inteligentes con Jade


En la segunda sesión de la mañana hemos tenido anticipada la sesión teórica del taller de agentes inteligentes dependientes del contexto, que tenía que haber tenido lugar mañana por la mañana. La razón ha sido el cambio de planes surgido por la no comparecencia de los conferenciantes de telefónica y la Universidad de Salamanca. Quedan para mañana las conferencias sobre las aplicaciones de vídeo en Inteligencia Ambiental (AmI)

La sesión ha sido impartida por Javier Carbó, la misma persona que nos da el taller práctica por las tardes. En teoría, esta sesión tendría que haber servido según el programa del curso para la discusión de los resultados obtenidos por los alumnos en el taller. Puesto que al final no hemos podido hacer el taller tal y como estaba planificado (que se ha quedado en un simple tutorial del uso de la plataforma JADE), el ponente se ha dedicado a proporcionarnos más contenido y a hablar de lo que vamos a hacer esta tarde en la última sesión práctica.

Se ha presentado un documento borrador con las especificaciones de la aplicación del mercado elaborada por el profesor Carbó como un borrador de base sobre la que podemos desarrollar un prototipo. Se ha comentado con cierto detalle el contenido del documento.

Se han explicado los agentes que intervienen: mercado, proveedor-pasillo, cesta, clientes. Se han especificado en ese documento los cuatro casos/escenarios que se pueden dar con los agentes, los mensajes que se intercambian y su clasificación por actos comunicativos. Con todos estos datos podemos diseñar e implementar la ontología con Protege.

El perfil que un agente cliente publica al registrarse con el agente mercado solamente incluye la parte que considera pública, p.e sus preferencias, con predicados como “comida que deseo” llevados por mensajes del tipo INFORM. Otras características, como el presupuesto, permanecen privadas al agente. No obstante, otros agentes pueden obtener dicha información de forma indirecta de lo que lleva el cliente en la cesta (p.e si el cliente tiene productos de primeras marcas y por lo tanto de precio alto se puede inferir que el presupuesto del cliente es alto y ofrecerle productos caros)

El proveedor tendrá su propio perfil y BDIs (i.e qué productos desea vender primero por caducidad, precio, adecuación al cliente, objetivos de beneficios, etc.) El proveedor enviará mensajes de tipo PROPOSE con ofertas de productos a los clientes que tendrán relacionados una acción, “venta”.

La decisión de aceptar o rechazar la oferta llevará aparejada la inclusión como parámetro de la oferta en cuestión (se podría haber inferido ese dato del identificador de la conversación pero se ha preferido incluir la información completa en la oferta)

Se ha incluido un caso en el que se contempla el escenario en el que el agente mercado pueda poner en contacto a dos clientes con perfiles (BDIs) similares para que uno de ellos recomiende productos a otro. El recomendador recibirá un mensaje REQUEST del agente mercado pidiéndole que haga recomendaciones con el identificador y parte del perfil relevante para la recomendación como parámetros.

El agente cesta tendrá asociados los predicados “comida que llevo” que tendrán como valor listas con los productos de la cesta por cliente. Este agente modela el hecho de que las cestas de la compra que cogen los clientes en el mercado tienen un sensor que permite determinar cada producto que se mete en la cesta (cómo identifica al client al que pertenece la cesta es una cuestión interesante que no se trató :))

Se trataron también los comportamientos (jade.core.Behaviour: SimpleBehaviour, CyclicBehaviour y OneShotBehavour) que permiten determinar las acciones a realizar al recibir mensajes de otros agentes o datos del entorno (contexto) Estos comportamientos derivan de una clase base donde se especifican los métodos que se deben redefinir (override): action y done. Estos comportamientos no son concurrentes (i.e son Single Threaded). Un agente solamente puede realizar uno a la vez.

El proceso de diseño de un sistema de agentes pasa entonces por la especificación de los requisitos, la determinación de los agentes, responsabilidades y escenarios, la definición e implementación de la ontología (directamente o usando la herramienta protégè)

A la hora de construir los mensajes para la comunicación que implementan el protocolo de interacción entre agentes hay que echar un vistazo a los que están ya implementados por la FIPA/ACL por si podemos ahorrarnos trabajo y no reinventar la rueda. Al recibir el mensaje debemos identificarlo haciéndolo corresponder con una plantilla predefinida de los mensajes que podemos recibir y por lo tanto vamos a procesar, ya que tienen asociado un comportamiento.

El ponente indicó, hablando de LEAP y sus especiales características y limitaciones, que en algunos casos un agente puede estar dividido entre dos hosts, uno con fuertes restricciones de proceso y otro con menos (p.e un PDA y un portátil)

El JADEX los BDIs se expresan en un documento XML con etiquetas cono Belief, fact, etc. Mostró un ejemplo de aspiradoras robóticas implementadas como agentes deliberativos que viene con la distribución de JADEX. Es curioso pero es el mismo ejemplo que viene en el libro de Russell y Norvig.

2 comentarios en “Curso UIMP: Taller de Agentes Inteligentes con Jade

  1. Búsquedas posteriores

    Durante la charla/taller se me ocurrieron varias ideas que quiero explorar:

    Java Wireless Toolkit + LEAP -> emulador de terminal móvil genérico
    Simuladores y frameworks en C++?
    Emuladores de terminales concretos? (i.e S60, iPhone …)
    Mote Emulators para incluir en entornos de simulación de redes de sensores, integrada dos a su vez en entornos de simulación de sistemas embebidos o de AmI completos (una especie de SystemC para AmI … es más se puede utilizar SystemC/GreenSoC en AmI …?)

    Otras referencias interesantes son las siguientes:

    VMNet: A WSN Emulator for Application Performance Evaluation
    EmTOS: TinyOS/NesC Emulation for EmStar
    FreeMote

    Se me ha ocurrido también que podría utilizar la plataforma JADE/JADEX/LEAP como un laboratorio para las asignaturas de computacion evolutiva, métodos simbólicos (sé que Jade se puede integrar con Jess que es la versión java de CLIPS!) y minería de datos (una manera que tendrían los agentes de explotar los datos de cesta de la compra, por ejemplo, algo que sé que se hace a gran escala en las compañías de alimentación) Los agentes deliberativos tendrían un razonador simbólico o bioinspirado :)

    > VMNet: A WSN Emulator for Application Performance Evaluation
    http://www.cse.ust.hk/vmnet/

    > EmTOS: TinyOS/NesC Emulation for EmStar
    http://cvs.cens.ucla.edu/emstar/ref/emtos.html

    > FreeMote
    http://www.assembla.com/wiki/show/freemote

    Se me ha ocurrido también que podría utilizar la plataforma JADE/JADEX/LEAP como un laboratorio para las asignaturas de computación evolutiva, métodos simbólicos (sé que Jade se puede integrar con Jess que es la versión java de CLIPS!) y minería de datos (una manera que tendrían los agentes de explotar los datos de cesta de la compra, por ejemplo, algo que sé que se hace a gran escala en las compañías de alimentación) Los agentes deliberativos tendrían un razonador simbólico o bioinspirado :)

  2. Voy a poner aquí la lista de posts relacionados con el taller para tenerlos todos juntos (están en orden inverso de aparición, del más reciente al más antiguo, excepto el artículo principal de la conferencia del jueves que está la primera):

    Curso UIMP: Taller de Agentes Inteligentes con Jade
    Curso UIMP: Taller JADE, la implementación final
    Curso UIMP: Taller de Jade/Jadex/Protege
    Curso UIMP: Taller JADE/JADEX. Primeros ejemplos
    Curso UIMP: Taller JADE/JADEX

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s