26-12-2013 16:20
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).
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.
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.
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.
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).
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.
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.
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.