Entornos de simulación
Escrito en la categoría Entornos de simulación, Inteligencia Artificial Aplicada
17 de Febrero del 2009
En esta nueva sección del blog vamos a intentar explicar cuáles son los diferentes entornos que nos permitirán simular, en un ordenador, condiciones de la vida real, o simplemente nos darán unas herramientas para poder aplicar nuestro conocimientos sobre inteligencia artificial en un entorno determinado. La simulación en ordenador consiste en un software en un ordenador, o dispuesto en una red de ordenadores, que controlan todas las variables de un modelo abstracto que se aplica a un sistema.
Existen multitud de simuladores, desde los simuladores de carreras, o deportivos, hasta los simuladores de vida artificial, con los que puedes programar la reacciones de una célula o de un organismo completo haciendo que estos aprendan y evolucionen.
Todos estos entornos se caracterizan por dar al usuario un serie de herramientas que le permiten desarrollar sus propios ejemplos, e introducirlos en el entorno. El sistema devolverá los datos de cómo ha reaccionado el sujeto en el entorno de simulación, y entonces el usuario analizará estos resultados y modificará el ejemplar para volverlo a introducir en entorno, hasta que los datos sean satisfactorios. La utilidad de estos sistemas es que permiten hacer pruebas de ensayo y error sin poner en peligro medios materiales o humanos y reduciendo los gastos en pruebas, ya que el simulador intenta emular todas las condiciones reales. Los simuladores pueden devolver resultados casi en tiempo real o necesitar de una red de ordenadores enorme para dar una respuesta en un par de días, todo depende de la complejidad del modelo y de los parecido que sea con el mundo real. Dependiendo de lo crítico que sea el sistema, esta similitud puede ser vital, y marcar la diferencia entre un estrepitoso fracaso o un rotundo éxito.
Nosotros nos vamos a centrar en entornos de simulación simples, con una rápida curva de aprendizaje. A la vez deben ser amenos y divertidos lo que nos facilitará programar ejemplos, ya que lo haremos jugando:
-
Robocode. Tal vez sea uno de los entornos de simulación más sencillos y más divertidos de usar. En él nos encontramos en un mundo de dos dimensiones de un tamaño reducido, en donde los tanques luchan entre sí en diferentes modos de combate (por equipos o todos contra todos). El entorno permite la programación de nuevos tanques, o la programación de equipos, todo ello utilizando Java como lenguaje. En este simulador podemos aplicar multitud de técnicas de inteligencia artificial, tanto de búsqueda como de aprendizaje. Al permitirnos el trabajo en equipos podemos utilizar sistemas de aprendizaje distribuidos. Robocode es open source y una herramienta perfecta para aplicar todos tus conocimientos sobre inteligencia artificial.

-
Tao of soccer. Este entorno simula un partido de fútbol en el cual podremos controlar a todos los jugadores de un equipo y enfrentarnos contra otros jugadores manejados por el ordenador. El sistema tiene una arquitectura cliente-servidor: el servidor se encarga de montar el entorno gráfico, de que se respeten la reglas del juego y de comunicar el estado del juego al resto de jugadores. Esta comunicación se realiza mediante paquetes UDP; de esta manera, los clientes se pueden desarrollar en cualquier lenguaje que soporte el manejo de sockets UDP. Al contrario que en Robocode, este entorno no tiene que implementar interfaces, ni heredar de objetos, ni basarse en un librerías previamente desarrolladas, únicamente se debe respetar el protocolo de comunicación entre el cliente y el servidor. En este entorno podemos desarrollar técnicas de inteligencia artificial para grupo, tanto aprendizaje distribuido como estrategias de colaboración. Este entorno también es perfecto para el aprendizaje y permite de una forma divertida mejorar en técnicas de colectivas.

-
RARS. Crear una inteligencia artificial capaz de manejar un coche de carreras: esto es lo que nos permite RARS. A través de programación en ANSI C o C++, podremos desarrollar los bots que controlen nuestros vehículos, y de esta manera competir con otros bots ya creados. En este programa podrás usar procesos de aprendizaje complejos, ya que el sistema devuelve una gran cantidad de datos del entorno del coche. Además, dependiendo del circuito, el competidor deberá tomar diferentes decisiones que pueden cambiar el transcurso de la carrera, por lo que el uso de árboles de decisión también puede ser interesante. Un simulador completo para gente que quiera pasar un buen rato y tenga unos conocimientos amplios sobre la inteligencia artificial.

-
Breve. Éste es quizá el simulador más complejo de los cuatro, ya que permite el desarrollo de infinitos objetos distintos, donde los grados de libertad los decide el usuario. Breve es un entorno de simulación ideal para los desarrollos de vida artificial, ya que el control físico de los agentes es realizado por el entorno. Para desarrollar en Breve podemos optar por utilizar Phyton o usar Steve, un lenguaje orientado objetos parecido a Objetive-C o Small Talk que ha sido creado específicamente para crear agentes para el sistema. También se facilitan interfaces que permiten extender el simulador a través de plugins. Un entorno muy completo, pero para usuarios muy avanzados, donde podemos aplicar todos nuestros conocimientos sobre inteligencia artificial y seguramente nos quedemos cortos si queremos crear agentes complejos.

Todos estos entornos nos permiten probar los conocimientos que poco a poco iremos enseñando y, por tanto, es importante que conozcamos este software, ya que estas herramientas nos ayudan a comprender cuáles son las ventajas y desventajas de utilizar ciertas técnicas respecto a otras. Más adelante nos encargaremos de enseñaros los entresijos de estos programas, y cómo poder aplicar vuestros conocimientos de inteligencia artificial en entornos de simulación.

