Inteligencia Artificial

Posted by Jose on lunes, 21 de junio de 2010

Recuerdo un día que, en una clase de una asignatura que cursé llamada Técnicas de Reconocimiento y Síntesis del Habla, íbamos a comenzar a dar materia sobre inteligencia artificial aplicada a sistemas que fueran capaces de reconocer tanto al locutor que hablaba como lo que propiamente decía. La cuestión es que, a modo de anécdota, el profesor nos contó que, cuando el cursó una asignatura sobre temática de inteligencia en computadores, se encontró con algo diferente a lo que las películas plantean. El tema es que a él, en esa asignatura, le mandaron realizar un sistema que, entrenado con los movimientos de la bolsa en los últimos años, fuera capaz de preveer los movimientos próximos (y así, de paso, forrarse). Entonces, un compañero mío le preguntó, muy ilusionado, si el sistema había llegado a funcionar, a lo que el profesor contestó que, de haber estado forrado, se habría pensado el madrugar esa mañana para venir a darnos clase.

La cuestión es que, por suerte o por desgracia, todavía estamos bastante lejos de conseguir tener un Skynet en nuestro ordenador y eso, en cierta manera, puede limitar nuestra experiencia para con los juegos, porque un título (excesivamente) previsible, puede implicar el desprecio del jugador en cuestión de poco tiempo.

Sin embargo, ¿cuándo podemos considerar un sistema inteligente? Allá por 1950 Alan Turing (científico de bastante reputación por, entre otras cosas, haber sido uno de los principales contribuyentes a "romper" el código de la máquina Enigma y, a pesar de ello, después no se puede decir que fuera tratado del todo bien por su país) planteó una especie de test, llamado el test de Turing, que de forma básica exponía que podríamos considerar el tener inteligencia artificial cuando, al interactuar un humano con esa "inteligencia", no fuera capaz de distinguir su naturaleza humana o artificial.

La cuestión es que, realmente esto, nunca (o casi nunca) se suele cumplir en un videojuego. En la gran mayoría de casos nos encontramos con acciones que vienen dadas por scripts que dicen qué ha de hacer el personaje de tipo NPC (Non Player Character) en cada caso, realizando siempre lo mismo (al fin y al cabo, son una serie de condicionales), o, en casos más elaborados, se utilizan algoritmos que permiten a los personajes "improvisar" un poco, como puede ser a la hora de buscar una ruta hacia un destino, tarea para la cual se suelen utilizar algoritmos de resolución de grafos para encontrar el camino óptimo (por ejemplo, el algoritmo de Dijsktra, muy utilizado en protocolos de enrutamiento en redes de ordenadores, es uno de los que se aplica en estos casos) o también las denominadas máquinas de estado finitas, muy utilizadas para la animación de sprites en videojuegos 2D, que permiten modelar una serie de estados (por ejemplo, desesperado, hambriento, andando...) por los que nuestro personaje puede, o no, pasar y que modificará, en parte, el comportamiento que tenga.

Pero volviendo al título del post, ¿cuándo encontramos realmente inteligencia artificial en un videojuego? Informándome por ahí, conseguí encontrar dos títulos (aunque hay más) que realmente implementan cierto aprendizaje automático (ya sea mediante redes neuronales o la técnica que sea), los cuales son:

  • Black and White: En este videojuego, consistente básicamente en ser un dios, debemos manejar una criatura que será nuestro "representante" en la Tierra. La criatura, desde que la obtenemos, irá aprendiendo en función de nuestras acciones (si castigamos mucho al pueblo o si somos benévolos) y, a la larga, se comportará en función a eso que haya ido aprendiendo.
  • Creatures: En este juego deberemos controlar a unas criaturas, llamadas norns, y deberemos intentar que sobrevivan en base a enseñarles qué es lo que han de hacer y qué no.
Por último en lo relativo a este post, mientras me informaba sobre qué poner, encontré una librería de código abierto sobre inteligencia artificial llamada OpenAi, basada en Java y C++, que implementa algunas de las técnicas más comunes. No puedo decir nada más porque realmente no lo sé, pero si alguien se informa o conoce algo más de ellas, no estaría mal un comentario suyo por su parte!!

Pues nada, espero que os haya gustado el tema. Esperamos vuestros comentarios!!

0 comentarios:

Publicar un comentario