miércoles, 16 de diciembre de 2009

Building Blocks for Agent Design (SoccerBeans)

Al estar investigando el posible uso de JADE para el RoboCup Soccer Simulator se encontró esta tesis en la que se creó una plataforma en la que facilitan el uso del simulador debido a la simplificación de la definición de los agentes y sus acciones de forma que se facilite a los desarrolladores el uso del simulador ya que no se perderá tanto tiempo en desarrollar el ambiente sino que se puede pasar de forma directa a la implementación de las estrategias colaborativas que utilizaran.

Por lo tanto en lugar de definir desde cero cada uno de los sistemas multiagentes se describe sus comportamientos debido a que las bases ya se encuentran planteadas con el SoccerBeans.

El desarrollo de esta plataforma tomó en cuenta el uso de otras como lo es el mismo JADE, JAF y Zeus para la misma. Todas estas facilitan la implementación de sistemas multiagentes y se encargan de aspectos de los mismos descritos en el documento, cada uno teniendo sus características propias.

Jawahar, H. (2003). Building Blocks for Agent Design. South Carolina: Requirements for the Degree of Master of Science in the University of South Carolina.

Learning competition in robot soccer game based on an adapted neuro-fuzzy inference system

En este artículo se describe como los autores logran diseñar e implementar un modelo en el cual a cada agente se le enseña un conocimiento básico sobre el juego el cual va complementándose con el paso del tiempo y el cómo se va desenvolviendo cada situación que se presenta.

Los agentes se adaptan a cada situación en base a un conjunto de fuzzy rules con las que cuenta como es el caso que se presenta en el artículo y es descrito como una situación en la que se encuentra un atacante con el balón frente a un defensa y un portero.

Sin embargo la implementación de este resulta ser más complejo ya que utiliza métodos de inteligencia artificial más avanzados y que requieren un estudio más a detalle.

Chi, L., Jiang, C., Zhen, Y., & Zengqi, S. (2001). Learning competition in robot soccer game based on an adapted neuro-fuzzy inference system. Intelligent Control, 2001. (ISIC '01). Proceedings of the 2001 IEEE International Symposium on , 195-199.

Coordinated Team Play in the Four-Legged RoboCup League

Este artículo describe la asignación de roles en los robots utilizados anteriormente en las competencias de RoboCup y la forma en que decidieron representarlos a ellos y cada comportamiento que tienen en el desarrollo de jugadas, en este caso estrategias.

Se describe como se pasó de la representación de un típico juego de fútbol con humanos a las consideraciones requeridas para su investigación y los cambios requeridos como el uso de cuatro jugadores en lugar de once.

Al tomar en cuenta lo anterior decidieron definir roles tal y como se hace en el fútbol tradicional y tener siempre un portero, atacante, defensor y medio. Al tener esto definido se facilitó la representación de las jugadas en redes Petri debido a la facilidad de plasmar eventos concurrentes.



Como en la figura anterior se muestra, cada uno de los agentes o robots tienen una red que muestra su comportamiento en un momento dado del juego y se pasa de una red Petri a otra en base a una máquina de estados que determina sus cambios respecto a la posesión y posición del balón como se muestra a continuación:



Kontes, G., & Lagoudakis, M. (2007). Coordinated Team Play in the Four-Legged RoboCup League. Tools with Artificial Intelligence, 2007. ICTAI 2007. 19th IEEE International Conference on , 109-116.

miércoles, 9 de diciembre de 2009

Resumen de Team Agent Behavior Architecture – TABA (tesis Myriam Arias Ruiz)

Se detalla en el documento las características propias del juego y su ambiente como lo son las medidas de la cancha, los jugadores y otros aspectos básicos requeridos para entender el funcionamiento del ambiente y las estrategias que serán aplicadas.

También se describe que las estrategias pueden ser aplicadas independientemente al entorno. Otro factor importante es la inclusión de los adversarios como elementos a identificar debido a que son parte fundamental del entorno en el que se desarrolla el soccer.

La cancha fue subdividida en 35 secciones para poder implementar de una forma realista los movimientos del jugador dentro de la misma y de aquí se desprenden los estados que puede presentar el equipo como tal dentro del juego los cuales resultan ser:

  • Patada Inicial.- Que se suscita al inicio del juego o cuando un equipo realiza una anotación, es el estado inicial.
  • Ofensivo.- Cuando la pelota se encuentra en la zona del rival (su mitad de la cancha).
  • Defensivo.- Contrario al ofensivo, es decir, cuando el balón se encuentra en la zona del equipo.

Aunado a lo anterior se tienen cuatro jugadores en total de los cuales uno es el portero que se dedica exclusivamente a sus labores y los otros tres pueden tener distintas actividades como lo son los roles defensivos y ofensivos, además existe el rol de líder que puede ser tomado por cualquier jugador (incluyendo al portero) y este determina la estrategia que será utilizada en el campo.

La forma en la que se encuentran guardadas las estrategias y la forma en la que son utilizadas es en base a archivos XML ya que en uno se tiene la descripción de la estrategia y el proceder de cada uno de los agentes y en otro archivo se encuentra el indexado total de las jugadas con algunos atributos básicos de cada jugada que permiten llevar a cabo la selección de la misma.

Se describe el uso de SSDS (Soccer Strategy Description Symbols) de forma que las jugadas o estrategias puedan ser entendidas de forma rápida y simple basándose en una simbología como lo realizan algunos equipos profesionales de fútbol, esto tiene la finalidad de permitir el diseño y programación de las estrategias. La simbología es la siguiente:


SIMBOLOGÍA SSDS

Esto da paso al uso de TABA como tal debido a que al tener preestablecidas las bases de cómo funcionará el ambiente se definen ciertos pasos a seguir los cuales son:


TABA

Para llevar a cabo el proceso de TABA se deben realizar cada una de las etapas siendo la primera la elección del líder la cual se lleva a cabo de una forma sencilla y se determina respecto a la posición del balón eligiendo al jugador que se encuentre más lejano a la pelota debido a que es el que posiblemente se encuentra en un estado pasivo y el procesamiento de las estrategias no impactan realmente en las acciones que está llevando a cabo.

Después de haber sido elegido un líder cada uno del resto de los jugadores envía información sobre su percepción del entorno para que el líder electo pueda seleccionar una jugada que mejor se adapte al momento en que se encuentran.

Posteriormente se busca en el indexado de jugadas y se evalúa un cálculo de similitud que permite designar la mejor jugada mediante la evaluación de cada uno de los casos posibles en el indexado.

Por último se pasa a la asignación de roles respecto a la jugada y a la ejecución de la misma lo cual viene detallado en el archivo con las estrategias especificas y varía dependiendo del caso y situación en el que se encuentre el medio.

Arias, M. (2008). Definición de una Arquitectura para la Generación y Selección de Estrategias en Equipos de Fútbol Robótico. México: Tesis para la Maestría en Ciencias Computacionales, Instituto Técnológico y de Estudios Superiores de Monterrey.

Resumen red de contratantes (tesis José Luis Vega)

En el simulador creado por JLV se requería una forma de comunicación y colaboración entre agentes pero con la restricción de que la carga por realizar este esfuerzo fuera mínima para que no afecte en el desempeño de los agentes. Él optó por uso de una versión reducida del KQML y el uso de una red de contratantes.

En la red el comportamiento básico es que un agente (administrador) tenga una tarea y le informe a los agentes aptos y libres para que realicen una licitación (el costo de realizar la acción) y se lo responden al administrador para que elija al mejor y le informe que ha sido contratado, al resto no se le informa nada y continúan sus actividades.

Se probó la forma en cómo los jugadores realizan pases entre sí para llegar a la portería rival y anotar un gol, se muestran los mensajes utilizados con el KQML modificado donde introducen coordenadas del jugador y los rivales.

Se tuvo que evaluar el costo y riesgo de realizar los pases respecto a la posición actual del rival además del ángulo respecto al pase. Además se complemento con una función que determinaba la distancia entre el agente que idealmente debe recibir el pase y los contrarios cercanos para calcular si es relativamente fácil para ellos interceptar el pase o no. Esto terminó por dar a los jugadores ciertos comportamientos como el que se presenta al momento de tirar ya que al evaluar el riesgo deciden lanzar el balón a la zona más alejada del portero lo que hace que los goles sean más fáciles de anotar.

También se tomaron en cuenta aspectos de comunicación para la posesión del balón con el fin de evitar que todos los agentes se lancen a la búsqueda del mismo y se amontonen en la cancha además de tener un comportamiento más inteligente respecto a quién tiene el balón.

Vega, J. L. (2006). Definición de Estrategias de Robots Jugadores de Fútbol a través de XML. México: Tesis para la Maestría en Ciencias Computacionales, Instituto Técnológico y de Estudios Superiores de Monterrey.

Actualización Assembla

Instalé el simulador y probe algunos partidos en Ubuntu 9.10.

Además actualice la wiki de assembla.com con lo necesario para instalar y ejecutar el simulador de RoboCup en Ubuntu 9.10