miércoles, 20 de enero de 2010

Can Automated Agents Proficiently Negotiate with Humans?

Este artículo hace un recuento del avance de los sistemas en cuanto a las negociaciones. Siendo esto una tarea que pudiese parecer trivial para el ser humano ya que se lleva a cabo de forma cotidiana y sin una mayor complejidad, para los sistemas computarizados siempre ha representado un reto lograr una negociación que se apegue a lo real por mencionarlo de alguna forma y sobre todo cuando se debe interactuar con humanos para llevarse a cabo.

Tomando en cuenta los diversos acercamientos que se han tenido a lo largo de la historia del desarrollo de agentes negociadores, los autores llegan a la conclusión de que es posible desarrollar sistemas de este tipo que sean realmente capaces de llevar a cabo negociaciones que involucren una contraparte humana la cual no es totalmente predictible su comportamiento pero se será capaz de reaccionar al mismo de la manera más adecuada haciendo así posible un nivel de interacción y utilidad mayor respecto a los sistemas basados en agentes.

Viendo los diversos aportes que dan los autores mencionados en este artículo se puede indagar a profundidad en alguno de ellos que se pueda considerar útil.

Lin, R., & Kraus, S. (2010). Can automated agents proficiently negotiate with humans? Communications of the ACM , 78-88.

Know Thine Enemy: A Champion RoboCup Coach Agent

Este artículo es una muestra del equipo ganador de la competencia de Coachs de RoboCup del año 2005 en el cual se especifica que a diferencia de la competencia tradicional entre dos equipos en esta se toman algunas consideraciones extra:

  • Se tiene acceso a los “logs” de los otros equipos antes de un partido (de hecho es una característica fundamental de este formato).
  • El agente fundamental de esta competición es el coach debido a que en base a su desempeño se lleva a cabo toda la puntuación del juego.
  • El coach a diferencia del resto de los agentes cuenta con una vista global y en tiempo real del sistema.
  • Existe una limitación en el tiempo en que el coach puede enviar instrucciones a sus jugadores además de otro retraso en el tiempo que ellos las reciben.

En este tipo de competencia se utiliza un modelado del rival u oponente sobre el cual se trata de obtener patrones de juego y sobre todo debilidades del competidor que puedan ser aprovechadas por el equipo.

También el coach debe ser capaz de detectar las debilidades de su equipo y deberá ser capaz de reaccionar ante las mismas para cubrirlas tal y como haría un entrenador en la vida real.

NOTA: Revisar el formato actual de competición.

Kuhlmann, G., Knox, W., & Stone, P. (2006). Know Thine Enemy: A Champion RoboCup Coach Agent. Proceedings of the Twenty-First National Conference on Artificial Intelligence (págs. 1463–1468). Massachusetts: AAAI.

Python

Dentro de los lenguajes propuestos por el equipo de RoboCup, hasta el momento parece que la tendencia se guía por utilizar Python por lo que es bueno probar si alguna plataforma o framework existente pueden ayudar a que sea más sencillo el desarrollo del mismo. Algunos ejemplos de esto que encontré son:


Las tres opciones permiten la creación de ambientes multi agentes pero faltará ver su desempeño y utilidad en el caso de RoboCup.

martes, 19 de enero de 2010

Wiki RoboCup

Se encontró la wiki del proyecto en la cual existe un manual de usuario (actualmente en construcción como lo menciona el sitio)

http://sourceforge.net/apps/mediawiki/sserver/index.php?title=Main_Page

Nota: Se menciona la existencia de un agente “Coach” que puede ayudar en el desarrollo de la tesis como coordinador de las jugadas si se usa un enfoque parecido al de Myriam.

Cliente RoboCup

Se encontró la página que contiene el proyecto desarrollado para el simulador 2D de RoboCup titulado SoccerBeans, la liga es:

http://jmvidal.cse.sc.edu/soccerbeans/

En dicha liga se encuentra el cliente y un pequeño tutorial sobre el uso del mismo sin embargo no ha sido actualizado desde el 2003 y falta probar su uso con el simulador actual.

Actualización Instalación Servidor y Monitor

Recientemente se actualizaron en la página de RoboCup las versiones del servidor y del monitor por lo cual decidí instalarlas también en mi computadora personal y en la del laboratorio. Los pasos que seguí fueron los siguientes:

Sistema Operativo: Kubuntu 9.10
Servidor versión: 14.0.1
Monitor versión: 14.0.2

Se requieren las siguientes librerías para la instalación:

  • build-essential: Paquete que contiene g++ y los encabezados de desarrollo.
  • libboost1.40-all-dev: Bibliotecas de desarrollo para Boost C++.
  • libxpm4 & libxpm-dev: Biblioteca X11 pixmap y sus encabezados de desarrollo.
  • bison & flex: Generador de parsers y analizadores léxicos.

Por lo que en la terminal se escribe:

sudo apt-get install build-essential libboost1.40-all-dev libxpm4 libxpm-dev bison flex

Lo siguiente es descargar los archivos desde la siguiente liga:

http://sourceforge.net/projects/sserver/files/

Los archivos son:

rcssserver-14.0.2.tar.gz
rcssmonitor-14.0.1.tar.gz

Se descomprimen en el lugar donde se guardaron con las sentencias:

tar xzvf rcssserver-14.0.2.tar.gz
tar xzvf rcssmonitor-14.0.1.tar.gz

Y se procede a realizar la configuración e instalación de ambos elementos en el sistema ejecutando los siguientes comandos dentro de cada carpeta creada (rcssserver-14.0.2 y rcssmonitor-14.0.1):

./configure
sudo make
sudo make install

Notas:

Al archivo:

rcssserver-14.0.2/rcssbase/net/socketstreambuf.hpp

Se les debe agregar al inicio del archivo:

#include

En el archivo:

/etc/ld.so.conf.d/robocup.conf

Se deben poner las siguientes lineas al final del codigo:

# Librerias del Simulador del Servidor de Robocup

/usr/local/lib
/usr/local/lib/rcssserver/modules
/

Si al momento de realizar el configure en el rcssmonitor-14.0.2 aparece el error:

The QtCore library >= 4.3.0 could not be found

Entonces se debe instalar dicha librería con el siguiente comando:

sudo apt-get install libqt4-dev

lunes, 11 de enero de 2010

Emotion-Based Framework for Multi-Agent Coordination and Individual Performance in a Goal-Directed Environment

Siguiendo con la búsqueda de sistemas multiagentes utilizando context-aware encontré en varios sitios que se empleaba también una técnica en la que se emplean plataformas que toman en cuenta los estados de ánimo de los agentes (tristeza, enojo, felicidad, etc.) para llevar a cabo una representación más apegada a la realidad de los agentes respecto a los humanos.

En este artículo proponen utilizar algo similar en base a lo que habían encontrado otros autores respecto al uso de este tipo de plataformas.

Las situaciones que ocurren dentro del sistema y como afectan a cada agente influyen directamente en el estado de ánimo del mismo por ejemplo si el agente lleva un largo tiempo vagando sin encontrar su objetivo final o alguna pista que lo guie al mismo este empezara a desesperarse y entrar a un estado de enojado lo cual le restringirá las acciones que puede tomar en base a que el estado de ánimo de un ser humano influye directamente en las decisiones que toma.

Al contrario del caso anterior, un agente que se encuentre feliz por haber hallado su objetivo tendrá muchas más opciones en sus movimientos para elegir. Todo el sistema es influido directamente por el uso de comunicación entre los mismos agentes lo cual también puede afectar a su estado de ánimo y la credibilidad con la que toman en cuenta los mensajes.

(NOTA: Revisar artículo mencionado de Trajkovski, 2007 ya que se menciona que los agentes externos pueden tomarse como simples obstáculos dinámicos).
Para investigaciones futuras se menciona que el uso de los estados de ánimo pueden afectar directamente a grupos de agentes y como colaboran entre sí, esto puede ser útil para entornos como el que me interesa (fútbol).

También encontré el libro llamado Context-aware Emotion-based Multi-agent Systems pero hace falta leer un poco para conocer su utilidad real en el sistema que se planea implementar.

Vincenti, G., Braman, J., & Trajkovski, G. (2007). Emotion-Based Framework for Multi-Agent Coordination and Individual Performance in a Goal-Directed Environment. 2007 AAAI Fall Symposium Series. Arlington, Virginia: AAAI.

Context-Aware Intelligent Multi-Agent Technology inKnowledge Grid Environments for E-Learning Systems

Buscando artículos sobre Context-Aware Computing relacionado con sistemas multiagentes encontré este artículo en el cual se utilizan ambos con el fin de lograr una especie de tutor inteligente que haga un aporte significativo al E-Learning.

En este caso se utilizan agentes que representan los distintos modelos que comprende el sistema que emplean (estudiante, maestro, administrador, interfaz y tareas). Dichos agentes se encuentran distribuidos en el sistema e interactúan entre sí para presentar al estudiante la información como se crea necesario.

En base a los datos percibidos por el sistema respecto al conocimiento además de las capacidades de la máquina en la que se encuentra es como se adapta el sistema a la forma en que puede presentar su contenido ya que al ser un sistema distribuido es necesario que funcione de forma correcta en computadoras con componentes heterogéneos.

Un aspecto interesante y relacionado con documentos leídos (específicamente el de Myriam Arias) es el uso de casos para decidir la forma en que se desplegará el contenido, es decir se tiene un conjunto predefinido de qué tipo de estudiantes prefiere cierta forma para mostrar el contenido y para elegir cual se utilizará en los estudiantes actuales se hace una comparación con dichos casos y se decidirá en qué forma se utiliza dicho caso.

Rao, D. H., & Mangalwede, S. R. (2009). Context-Aware Intelligent Multi-Agent Technology in Knowledge Grid Environments for E-Learning Systems. Proceedings of the International Conference on Advances in Computing, Communication and Control (págs. 257-263). Belgaum, India: ACM.