33bits

Versión completa: Introduccion a la IA y su apliacion el los videojuegos
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola a todos mangurriales !!!
Para mi primer post voy a hablar de algo interesante (o a mi parecer lo es) y que se usa bastante en el mundo en el que nos movemos, videojuegos e Inteligencia Artificial.
Para empezar a hablar de IA hay que ponerse en antecedentes en dos campos en concreto Lógica y Programación.
Lógica

La lógica es una rama de la matemática/filosofía que estudia como trasladar el mundo del lenguaje natural a lenguaje forma (que no matemático), usando una serie de conectores (símbolos).

[Imagen: exercicio4.gif]

Existen muchas clases de lógica, siendo las mas básicas la lógica de enunciados y la lógica de predicados, en el mundo de la IA y los juegos esta tiene un especial peso ya que permite crear "funciones┬á formales"(parecido a las funciones matematicas) que se pueden aplicar a distintos "objetos" siendo estos objetos de un Pj a un jugadores o un objeto.

Programación

La programación es la ciencia que estudia la creación de programas a través de lenguajes de programación (como java, C, etc...), pero para lo que nos interesa vamos a tener en cuenta los siguientes aspectos:

-Los datos que necesita el programa, los generados y los resultados intermedios se almacenan en "variables" cuyo valor se puede modificar cuando sea necesario.

-Existen distintos tipos de variables, dependiendo del lenguaje de programación en si, pero podemos almacenar básicamente: números, caracteres (uno o palabras) y variables LOGICAS que solo pueden ser verdaderas o falsas.

-Especialmente importante es el concepto de "Objeto",que es una entidad que nosotros creamos que dispone de un conjunto de variables y una serie de mecanismos específicos, estos objetos se utilizan para representar cosas de la realidad como puede ser un PJ, un cofre o un nivel.

-Seguidamente tenemos Tipos Abstracto De Datos (TAD), los mas importantes para la IA son las listas y los Grafos, siendo listas (y sus variantes pilas y colas) simplemente una lista de variables a las que podemos añadir y quitar variables cuando sea necesario sin preocuparnos por el tamaño, os pongo un ejemplo gráfico de un grafo que que es un concepto matemático mas abstracto.

[Imagen: 420px-Grafo_simple.svg.png]

BUENO pues acabado el tostón inicial vamos a los guay Inteligencia Artificial.

La IA es una interdisciplina (disciplina que es un cumulo de otras) informática que estudia la creación de entes "inteligentes", considerando como inteligentes todo aquello que requiere cierto razonamiento (sumar 2+2 no es algo inteligente, la coordinación visión y movimiento de un robot al andar si es inteligente), esta disciplina fue impulsada por el matemático ingles Alan Turing, creando el famoso "Test De Turing" por el cual se demuestra si una maquina es inteligente o no.

Para el mundo de los videojuegos existen dos conceptos de la IA muy importantes: Los Agentes y La Búsqueda En Espacio de Estados (con y sin restricciones).

AGENTES.

Los agentes son toda aquella entidad(por lo general en forma de objetos) que interactua son su entorno y realiza acciones en respuesta,por ejemplo, un robot mediante una serie de sensores capta su entorno (viendo por ejemplo que delante de el tiene un escalon) y actuando en respuesta (levantado un pie para subir el escalon), dentro de este campo existen dos tipos de agentes especialmente utiles, los agentes que aprenden y los agentes con objetivos.

[Imagen: agente-inteligente.jpg]


BÚSQUEDA EN ESPACIO DE ESTADOS.

La búsqueda en espacio de estados es quizás uno de los aspectos mas importantes para la IA enfocada a los videojuegos actualmente,para entender por encima este concepto tenemos que tomar las siguientes consideraciónes:

-En todo momento disponemos de "sensores" que nos codifican el estado del mundo actual en variables, por ejemplo, tenemos un termómetro que nos mide la temperatura y la almacena en memoria.

-Un "ESTADO" es la lectura de todas las variables implicadas en la descripción del entorno en el que estamos en un momento en concreto,por ejemplo, la lectura de la memoria de ese termómetro.

-El "ESPACIO DE ESTADOS " se define como los estados posibles que podemos tener y las acciones para llegar de un estado a otro, por ejemplo, un estado seria ESTADO FRIO y la acción necesaria para llegar a el seria que nuestro termómetro marque menos de 10 º

Una vez definido el espacio de estados viene lo "Inteligente", nuestro Agentes va a recorrer este espacio de estados en búsqueda de su "Objetivo" (recordar el agente con objetivo) hasta que lo encuentre.

¿Como traducimos esto al mundo de los Videojuegos? muy simple, por lo general nuestro personaje va a ser un agente que estará controlado por nosotros, el entorno que nos rodea y todo lo que podemos hacer (explorar, luchar, curarnos, abrir puertas) sera nuestro espacio de estados y tendremos una misión o similares que sera nuestro "Objetivo" por lo que el agente(nosotros) interactuaremos en este espacio de estados hasta llegar a nuestro objetivo/objetivos(Bieeeeen nos hemos pasado el juego), pero como todos sabéis por lo general esto no es tan facil, normalmente tenemos una serie de enemigos, que también serán agentes, pero esta vez manejados con el juego que intentaran que no lleguemos a cumplir el objetivo.
Una de las primeras aplicaciones de este concreto de búsqueda en espacio de estados fue "El mundo de Wumpus", donde representábamos a un explorador en busca de oro que escapaba del monstruo Wumpus, representando como estado cada posible posición de nuestro explorador y la de wumpus en cada momento y como acción el desplazamiento de cada uno.

[Imagen: image+(5).jpg]
Esto es muy interesante.

Pd: putos grafos
Realmente lo es, pero la "Teoria" puede resultar un poco aburrida, la aplicación real es bastante entretenida e interesante

Ya veo que has tenido que pelear con grafos alguna vez, la verdad es que hasta que les coges practica son bastante tediosos

Cineastasingular

Esto me interesa bastante, en clase de Montaje estuvimos hablando sobre la IA y su aplicación en juegos. El profesor nos recomendó especializarnos en esta rama porque en el tema juegos esto es por lo que más se paga(eso dice el).
Aunque a mi no me interesa por dinero ni nada de eso sino porque me parece muy fascinante. Mañana le echo un buen vistazo. Pondrás más cosas sobre esto?
Si┬á a la gente le gusta/lo piden explicare mas en profundidad los conceptos aquí explicados (No he explicado ni una decima parte de cada concepto) tanto en el ambito de la Programacion (Para ver como se implementaria realmente ) con el el de la IA.

Personalmente yo me voy a especializar en esta rama a partir de enero y me gustaria terminar en alguna empresa de juegos independientemente del tema monetario