viernes, 7 de mayo de 2010

POGAMUT: Plataforma de código abierto para el desarrollo rápido de comportamientos de agentes en videojuegos

En los últimos años está aumentando el interés en la investigación de mecanismos de control del comportamiento de agentes en los videojuegos (la inteligencia artificial de los mismos), y están surgiendo numerosos proyectos en este campo. Para contribuir con la investigación de estos proyectos, la Universidad de Praga (Charles University) ha desarrollado una herramienta de código abierto para el desarrollo de estos agentes.

Pogamut está hecho con la intención de servir tanto a proyectos de investigación como a trabajos académicos de estudiantes o de principiantes en la materia. De hecho fue utilizada por estudiantes para sus proyectos y también como herramienta de aprendizaje en la universidad y en institutos.

El IDE es un pulgin para NetBeans, en el que se proporciona un conjunto de clases e interfaces para que los programadores implementen sus agentes en Java.

Algunas de las funciones que ofrece a los desarrolladores, y que se pueden observar en la siguiente imagen son: plantillas vacías de agentes, agentes de ejemplo (1), lista de agentes en ejecución (4), introspección de las variables y acceso rápido a sus propiedades (3), depurador paso a paso, visor de logs (5) y el manual de contros de posición de los agentes (2).



Pogamut 3 fue presentado en el AAMAS de 2009, y volverán a hacerlo los próximos días 10 y 11 de Mayo en la edición de este año.

Fuente: Enlace al artículo completo.

jueves, 6 de mayo de 2010

Screaming Racers

Screaming Racers es un videojuego de simulación de carreras donde los coches están controlados por agentes inteligentes que comienzan sin tener ningún conocimiento del entorno ni del vehículo. Estos agentes tratan de aprender y mejorar sus habilidades como pilotos, teniendo en cuenta que el único conocimiento que van a tener es el que ellos mismos sean capaces de aprender. El objetivo del juego es crear el mejor grupo artificial de pilotos para poder competir en cualquier circuito y contra cualquier otro equipo.

Arquitectura interna.

Este videojuego se ha diseñado como un sistema multiagente para beneficiarse de las ventajas de un modelo distribuido. La aplicación está dividida en dos partes: servidor y clientes.
El servidor cuenta con un simulador que da vida al entorno donde los agentes piloto se desarrollan, interactúan y aprenden.

Los clientes serán utilizados por los jugadores para conectarse al servidor. El diseño multiagente proporciona una serie de ventajas en lo que se refiere a los agentes piloto. Estos pueden ser movidos desde los clientes al servidor y viceversa cuando sea necesario. Por este motivo se minimizan los problemas de la latencia en las comunicaciones. Por otro lado, los agentes piloto pueden sentir el entorno mediante una serie de sensores predefinidos y además se pueden comunicar entre ellos, permitiendo a los equipos compartir el conocimiento para beneficiarse de un comportamiento colaborativo.
En esta arquitectura cliente/servidor, los principales componentes se encuentran dentro del servidor. Son los responsables de mantener el entorno virtual y el sistema multiagente, además de las comunicaciones entre los clientes. A continuación presentamos una breve descripción de cada uno de estos componentes:
  • Motor Físico: su objetivo es el de aplicar las distintas leyes que rigen la física a todos los objetos que se encuentran en el entorno.

  • Agente Simulador: es el responsable de gestionar y desarrollar cada sesión de entrenamiento o competición. Debe comunicarse con todos los agentes piloto para que estos puedan coordinar su funcionamiento. Funciona también como agente pizarra para comunicaciones entre equipos.

  • Motor Gráfico: muestra en pantalla la apariencia de entorno y la interfaz de usuario.

  • Agente Controlador: es el encargado de coordinar al resto de componentes.

  • Agente Comunicador: implementa las tareas de comunicación entre servidor y clientes y viceversa.

  • Agentes Piloto: cada uno de estos agentes implementa el cerebro de uno de los pilotos del simulador. Reciben información de sus sensores por medio del agente simulador y toman decisiones para actuar en consecuencia.



Resultados obtenidos.


Trazadas de un vehículo: a) Piloto sin evolucionar. b) Piloto entrenado.




miércoles, 5 de mayo de 2010

Resumen del artículo: Juego de Dominó para Cuatro Jugadores ultilizando Agentes Artificiales

Después de haber leído el artículo "Juego de Dominó para Cuatro Jugadores utilizando Agentes Artificiales" hemos hecho un pequeño resumen del mismo.

El objetivo de este es mostrar los sucesos del juego mediante la interacción de los jugadores y los sucesos del comportamiento del juego en pareja. Los resultados que se muestran en el artículo confirman que el uso de agentes programados con reglas y planes básicos, junto con la interacción local entre ellos y con el medio, puede producir comportamientos complejos.

El trabajo del artículo, describe la implementación de un juego de dominó para cuatro jugadores. Para ello, se diseñan dos parejas de agentes, los cuales, representa a los jugadores. Cada agente es dotado con una estrategia local que se basa en observar-razonar-actuar para seleccionar la ficha que se va a poner en juego. Las parejas formadas por los agentes tienen características muy distintas. Dos agentes cooperan para realizar una jugada, mientras que los dos agentes restantes aplican una estrategia individual. Esta división es planteada para comparar el funcionamiento de los agentes descentralizados (agentes cooperativos), que actúa por el bien de la pareja frente a los que actúan de forma individualista.


Como está diseñado

Los agentes están diseñados bajo el esquema del enfoque clásico de IAD-SMA (Inteligencia Artificial Distribuida-Sistemas Multiagente). Utilizan la lógica de primer orden para representar la base de conocimiento de los agentes jugadores. El lenguaje de programación que utilizan para representar dicho conocimiento es Prolog, el cual les permite el diseño de programas basados en procesos de inferencia.

La base de conocimientos, el proceso de selección de acción, así­ como los procesos de comunicación, los han traducido en términos de fórmulas lógicas. Por último, definen un agente más denominado facilitador, responsable de la logística del juego.

En el artículo se presentan los experimentos con gráficas que representan los resultados obtenidos.

Para consultar más información se facilita la dirección web en la cual se halla el artículo original:

http://ccc.inaoep.mx/~munoz/docs/MartinezMunoz_WR-ENC05.pdf (Última visita 5-5-2010)

Simulación basada en agentes

Una de las aplicaciones de la tecnología de agentes es la simulación. La simulación basada en agentes intenta hacer más fáciles entre otras, las tareas de comprender el sistema y hacer predicciones cualitativas y cuantitativas en relación al futuro. Un modelo de simulación basado en agentes consiste en un conjunto de agentes, los cuales encapsulan el comportamiento de varios individuos. La ejecución del modelo emula el comportamiento global del sistema. La Simulación Basada en Agentes utiliza los agentes para la generación del comportamiento del modelo en un estudio de simulación.

La simulación basada en agentes utiliza los agentes en un estudio de simulación con los siguientes propósitos:

  • Para proveer asistencia computacional para las funciones de interfaces finales o internas;

  • Para procesar elementos de un estudio de simulación de forma simbólica (por ejemplo, para verificaciones de consistencia y fiabilidad incorporada);

  • Para proveer habilidades cognitivas a los elementos de un estudio de simulación, tales como aprendizaje o comprensión de habilidades.

lunes, 19 de abril de 2010

Juego de Dominó para Cuatro Jugadores utilizando Agentes Artificiales


Introducción:

Se presenta el diseño e implementación de un juego de dominó utilizando agentes artificiales, dos de los cuales fueron diseñados para jugar como pareja, mientras que los otros dos se diseñaron como jugadores individualistas.

Este trabajo describe la implementación de un juego de dominó para cuatro jugadores. Para ello, se diseñaron dos parejas de agentes artificiales que representan a los jugadores.

Cada jugador fue dotado con una estrategia local basada en el ciclo observar-razonar-actuar para la selección de la ficha a tirar. Este es uno de los mecanismos propuestos por el enfoque clásico de IAD-SMA. Dos jugadores combinan sus acciones para realizar un juego en pareja. Los agentes de la pareja restante aplican una estrategia individualista. El objetivo es comparar el desempeño de agentes descentralizados que observan y razonan individualmente contra el de agentes colaborativos, que actúan en beneficio de su pareja de juego.



Enfoque basado en agentes

El juego de dominó por pareja puede ser diseñado como un sistema multi-agente, en donde cada jugador puede ser representado como un agente artificial. La relación de pareja, existente entre los jugadores en el dominó de parejas, establecerá una cooperación con el objetivo de ganar el juego de manera conjunta.

GTA San Andreas


El popular juego GTA - San Andreas, de la companía RockStar Games©, está implementado como un Sistema Multiagente.
El juego simula una ciudad en la que interactúan numerosos vehículos y otros actores con el personaje controlable.

La ciudad como SMA presenta:
- Una organización
- Un conjunto de agentes
- Un entorno
- Unas interacción

  • Organización:
Debido al tamaño del SMA es necesario representar el conjunto con una jerarquía.


  • Los agentes y su entorno
- La ciudad:
Agente y entorno debe mantener el entorno y responder adaptándose a los jugadores.
- Controladores Específicos:
Coordina grupos de agentes relacionados de acuerdo a los cambios que detecta la ciudad.
- Personajes no jugadores:
Representa los agentes humanos que interactuan en la ciudad, tienen autonomía de decisión para la solución de resultados. Pueden presentar personalidad.
- Entidades menores:
Son aquellos agentes que precisamos como complemento de realismo en la escena, pero que no deben consumir un tiempo de cómputo excesivo, por ejemplo pájaros o perros, etc.

  • Las interacciones
Se utilizan dos aproximaciones:

- Smart-Objects:
Los objetos presentes en el entorno pasan su información relevante a los agentes. Descentraliza la información.
- SOTAI (Smart-ObjetcT Agent Interaction):
Realiza un intercambio de información entre objetos y agentes que simboliza mejor la interacción natural con objetos. Cada objeto presenta un conjunto de acciones y estímulos que el agente puede emplear para mezclar con experiencias pasadas y así inferir información sobre objetos que se encuentra por primera vez.


Más información aquí.


Trailer del juego: