Simulación de comportamientos inteligentes en entornos virtuales interactivos

Simulación de comportamientos  inteligentes en entornos virtuales  interactivos por: Agustí Sancho Martínez [email protected] Mayo de 2008 5332

0 downloads 39 Views 1MB Size

Story Transcript

Simulación de comportamientos  inteligentes en entornos virtuales  interactivos

por: Agustí Sancho Martínez [email protected] Mayo de 2008

53329642W

1

Índice de contenido 1. Introducción......................................................................................................................................3 2. Áreas de la inteligencia artificial involucradas.................................................................................4 2.1 Búsqueda heurística...................................................................................................................4 2.2 Búsqueda local...........................................................................................................................4 2.3 Aprendizaje automático.............................................................................................................5 2.4.1 Redes neuronales................................................................................................................5 2.5 Agentes inteligentes...................................................................................................................7 2.5.1 Agentes BDI.......................................................................................................................8 3. Entorno, contexto y representación................................................................................................10 4. Aplicaciones prácticas....................................................................................................................12 4.1 Halo: Combat Evolved.............................................................................................................12 4.2 Halo 2.......................................................................................................................................17 4.3 Halo 3.......................................................................................................................................19 4.4 Black & White.........................................................................................................................20 5. Bibliografía.....................................................................................................................................24

2

1. Introducción Uno de los pasatiempos más extendidos por el ser humano es la pasión por superarse a si mismo y a  sus semejantes mediante la competición. Este hecho no es ajeno al mundo de la ingeniería informática, que ya en el año 1952, cuando esta  rama de la ingeniería comenzaba a florecer, todavía limitado al ámbito académico y militar, una de  las primeras interacciones entre un computador y una persona, OXO (desarrollado por Alexander S.  Douglas), se convirtió en una competición por saber quien jugaba mejor al popular juego 3 en raya. Y  es  que  la popularización de la informática orientada al entretenimiento a permitido, no  solo  desarrollar un mercado que aporta hardware cada vez más potente y permite la interacción de los  usuarios con mundos más complejos, sino que ligada a este constante incremento de la complejidad,  se ha visto incentivada el área de la ingeniería informática que trata de simular la inteligencia, la  inteligencia artificial, para proporcionar a los usuarios de mundos virtuales interactivos entidades y  personajes que simulen un comportamiento inteligente y con los que podamos interactuar, desde  ejércitos que liderar, seres extraños con los que conversar hasta mascotas virtuales con las que crear  una relación de empatía. La inteligencia artificial ha estado ligada a este desarrollo de los mundos  virtuales interactivos, sobretodo en el ocio, para intentar saciar las ansias de los usuarios por vivir  nuevas experiencias mediante la interacción con entidades inteligentes. De competir por ganar a una máquina en un tablero en 3 en ralla a liderar en la batalla a cientos de  miles   de   soldados   en   reproducciones   virtuales   históricas.   Este   salto   ha   requirió   años   de  investigación y desarrollo, tanto de tecnologías como de nuevas técnicas de inteligencia artificial. Uno de los mayores retos de este proceso fue encontrar rivales inteligentes. Y cuando hablamos de  inteligentes no nos referimos a capaces de derrotarnos siempre, sino de simular un comportamiento  de un ser inteligente, con sus virtudes, su capacidad de improvisar y aprender, sus debilidades,... Así en el ámbito del ocio electrónico, una misma aplicación interactiva, de un mismo género de la  década pasada, la encontrábamos con rivales omnipresentes, con un conocimiento total de nuestros  movimientos, de nuestra presencia y de habilidades perfectas. Como hacer pues que resulte un reto  digno  de atraer nuestra atención y permitir que los usuarios lo sientan como un reto posible y  deseable? Ese juego de décadas pasadas haría trampa consigo mismo, haciendo errar a propósito a  sus legiones de entes virtuales. Algo demasiado evidente y nada “inteligente”. Pero la evolución del hardware y la inteligencia artificial ha posibilitado que a día de hoy, realmente  nos encontremos con rivales virtuales que supongan un reto, un reto inteligente, no uno imposible ni  fruto   de   restricciones   auto­impuestas.   Hoy   en   día,   y   gracias   a   los   nuevos   paradigmas   de   IA,  podemos encontrar entes virtuales débiles, fuertes, que planean, conspiran, se anticipan, fallan , se  coordinan, interaccionan entre ellos y con nosotros. En definitiva, ha comenzado el camino para  encontrar un rival con el que olvidemos el significado de “simulación” y nos dejemos llevar por la  interacción, olvidando que lo que tenemos delante no es más que software. En las siguientes páginas, haremos un repaso por las diferentes técnicas de inteligencia artificial que  se utilizan en la simulación de comportamientos inteligentes, veremos como el entorno, el contexto  y   la   representación   condicionan   el   éxito   de   una   simulación   y   para   finalizar,   repasaremos   unos  3

cuantos casos prácticos, es decir, aplicaciones interactivas que hacen un uso exhaustivo de la IA  para crear experiencias interactivas atractivas para las personas.

4

2. Áreas de la inteligencia artificial involucradas Las aplicaciones interactivas, y en concreto los videojuegos, han empleado y emplean, muchas y  diversas técnicas del ámbito d ella inteligencia artificial. Debido a que estas aplicaciones suelen tener requisitos muy dispares en función de la interacción  con el usuario que los desarrolladores quieran dar, no todas estas aplicaciones usan una técnica  concreta,   sino   que   integran   en   un   mismo   sistema   aquellas   que   necesitan   para   simular  comportamientos en función del entorno interactivo. Es por eso que vamos a repasar las áreas de la inteligencia artificial más utilizadas, sin contar con  los primeros pasos de este tipo de aplicaciones, donde la simulación se limitaba a funciones de tipo  lógico, con secuencias predeterminadas y bucles de comportamiento.

2.1 Búsqueda heurística La búsqueda heurística es un algoritmo de búsqueda que trabaja sobre una representación en forma  de árbol. Se utiliza una función de evaluación que mide la distancia estimada a un objetivo, guiando así el  algoritmo por el árbol de la representación hasta obtener una solución de existir esta. Esta función de evaluación g(n), en función del tipo de búsqueda heurística que estemos realizando  recibirá unos parámetros u otros. En la simulación de comportamientos es muy utilizado el algoritmo de búsqueda heurística A*. A* se utiliza para encontrar el   camino más corto entre un punto inicial y un punto de destino  mediante una función de evaluación que tiene en cuenta el coste del camino realizado y una función  heurística que proporciona una estimación de lo que cuesta llegar. Un ente virtual que interacciona con el entorno debe desplazarse por él y, por ejemplo, en el caso de  una persona simulada en un entorno natural, este dispone de un estanque de agua detrás de una  montaña,   con   un   túnel   y   además   un   camino   que   la   rodea.   Si   desea   beber   antes   de   morir   de  deshidratación deberá acudir a la fuente lo antes posible, y el algoritmo A* es una forma eficiente  de conseguir decidir que camino seguirá hasta alcanzarla, si por el túnel o dando un rodeo.

2.2 Búsqueda local Los algoritmos de búsqueda local trabajan con un espacio de soluciones, y de estas, siempre tratan  de obtener la mejor. El algoritmo trabaja a partir de una solución inicial, que, mediante una serie d operadores,modifica,  obteniendo así un conjunto de soluciones posibles que, mediante una función que evalúa su calidad,  elige una. Este proceso se realiza hasta encontrar la mejor solución que podemos obtener o hasta  una cota que se le imponga al algoritmo y que interrumpe su búsqueda. Estos algoritmos son muy utilizados en la simulación de comportamientos en entornos interactivos.  Un   claro   ejemplo   de   ello   lo   encontramos   en   simulaciones   en   juegos   de   estrategia,   donde   el  “general”   artificial   que   controla   las   tropas   enemigas   genera   una   serie   de   soluciones   de   ataque  5

posibles y de entre ellas, selecciona la mejor que es capaz de obtener para diezmar nuestras tropas  mediante búsqueda local. Hay   que  señalar que, la  solución encontrada,  en este  caso un ataque,  será la mejor que puede  obtener la IA del adversario, ya que la búsqueda local no es capaz de encontrar el óptimo y la  calidad de dicho ataque estará en función de la pericia de los ingenieros que hayan diseñado los  operadores y la función de evaluación, así como del tiempo disponible para obtenerlo.

2.3 Aprendizaje automático Este área es una rama de la Inteligencia Artificial. Su principal objetivo es desarrollar técnicas que  permitan a un software aprender. Muchos problemas que la ingeniería informática debe solucionar  son de clase NP­Hard (realmente costosos de solucionar), por lo que las aplicaciones desarrolladas  en aprendizaje automático están enfocadas al diseño de soluciones viables a esos problemas. El   Aprendizaje   Automático   tiene   una   amplia   gama   de   aplicaciones,   incluyendo   motores   de  búsqueda, diagnósticos médicos, detección de fraude en el uso de tarjetas de crédito, análisis del  mercado de valores, clasificación de secuencias de ADN, reconocimiento del habla y del lenguaje  escrito, juegos y robótica. En este tipo de sistemas, el usuario aportará su intuición y su conocimiento en la interacción con el  sistema, ya que, a pesar de que una parte del aprendizaje se realiza de forma ajena al usuario, con  datos que el sistema procesa, la intuición y los conocimientos que un ser humano puede aportar no  pueden ser simulados. El aprendizaje automático se basa en el modelo humano de aprendizaje, donde un ente, en este caso  la inteligencia artificial, es capaz de: –

recoger información de su entorno, asimilarla, creando una base de conocimiento



deducir o razonar una solución a partir de esa base que “recuerda”



realizar la acción que ha concluido llevar a cabo

Este tipo de solución es ideal cuando, se dispone de una cantidad de datos demasiado elevada para  ser tratado por los usuarios, ya que el aprendizaje automático, supervisado por un ser humano, es  capaz de, una vez establecidos atributos que identifiquen la información, la clasifiquen y se apliquen  decisiones sin la necesidad de que un usuario deba interceder. De esta forma, a partir de un gran volumen de información, con un asesoramiento humano mínimo,  el aprendizaje automático nos ofrece una solución personalizada en función de nuestra interacción. Dentro   del   ámbito   de   la   simulación   de   comportamientos,   esta   técnica   es   muy   útil   cuando  disponemos de un ente, que es capaz de realizar una serie de comportamientos e interacciones con  su entorno y los entes que lo pueblan muy grande. Esta serie de comportamientos que pueden  realizar,  en  ocasiones pueden ser contradictorios y es ahí, en la selección donde el aprendizaje  automático   es   capaz   de,   mediante   la   interacción   de   un   usuario,   crear   estructuras   que   permitan  seleccionar estas conductas con su entorno y así tejer un ente con un “personalidad” tan rica como  permita el conjunto de comportamientos que se le suministren.

6

2.4.1 Redes neuronales Las redes neuronales son una técnica empleada en el campo de la inteligencia artificial basada en la  simulación de la estructura del cerebro y en su funcionamiento por estímulos. Su   objetivo   es   similar   a   los   sistemas   expertos.   Partimos   de   la   necesidad   de   representar   el  conocimiento, pero en vez de hacerlo mediante la obtención de reglas, las redes neuronales utilizan  un   método   inductivo,   es   decir,   el   aprendizaje   mediante   ejemplos.   Es   por   esto,   que   son   mas  adecuados para reconocer patrones, solucionar problemas de optimización o clasificación. Esta técnica utiliza una estructura de datos, que se denominan neuronas, que se interconectan entre  si como un grafo dirigido. Sobre ellas se aplican dos tipos de funciones, la función de propagación,  que podríamos encontrar símil en la biología como la interpretación de un estímulo, ya que ésta  puede excitar o inhibir las conexiones entre neuronas y las funciones de transferencia, que son las  encargadas de acotar e interpretar la salida de la neurona. Las redes neuronales se basan en modelos matemáticos. En esencia, las neuronas están “entrenadas”  para realizar una función matemática concreta y poder así, entre toda la red, obtener resultados.  Podríamos imaginarla como cientos de pequeñas CPUs que realizan una función concreta. Este  proceso   se   realiza   mediante   algoritmos   de   aprendizaje,   de   los   que   hay   dos   tipos,   los   no­ supervisados, y los supervisados, donde el aprendizaje que realiza la red es supervisada por un  usuario,que  suministra decisiones  que la red no es  capaz  de aprender por si misma, ya que  la  intuición todavía no es posible de simular adecuadamente y así poder compensarla. Así, el usuario  suministra a la red una entrada de información y una seria de instrucciones de como se espera que  actúe La estructura de una neurona artificial es: donde la entrada que recibe es el la suma de activaciones de entrada multiplicadas por sus pesos  respectivos: ent i =  W i , j a j=W i . ai i

Donde  ai son los valores de activación de la neurona i y  W i los pesos que conducen a la  neurona i. Cuando se construye una red neuronal para solucionar un problema, es necesario saber el número de  neuronas que van a ser necesarias, que tipo es necesario y como se conectarán formando una red.  Deben inicializarse los pesos de las neuronas y se les da la posibilidad de admitir un algoritmo de  aprendizaje sobre ellos, aplicándolo a un conjunto de ejemplos. También será necesario decidir  como se codificarán estos ejemplos. Actualmente podemos encontrar 2 tipos de redes neuronales en función de su estructura. Éstas son: –

Redes de prealimentación Las conexiones son unidireccionales y no hay ciclos. Las neuronas están organizadas por capas  o niveles y las neuronas solo se conectan con otras del nivel siguiente. El primer nivel contará  con nodos de notificación de activación y el último con el nodo de salida.

7

Red neuronal de prealimentación –

Redes recurrentes Estas redes son más parecidas a como funciona nuestro cerebro. Las redes recurrentes están  compuestas   por   conexiones   entre   neuronas   bidireccionales.   Esto   hace   que   permitan   la  implantación de sistemas con agentes más complejos que con las redes de prealimentación, pero  son mucho más costosas que esas a la hora de obtener el resultado a un problema y pueden  volverse caóticas y dificultar el aprendizaje. Un modelo de red recurrente muy divulgad son las  redes Hopfield que tienen conexiones bidireccionales con pesos simétricos.

Otra característica interesante de este paradigma de programación es la que ofrece su estructura paralela, ya que las neuronas artificiales pueden entenderse como CPUs que conforman una red, y este modelo puede ser aprovechado por hardware específico, diseñado para procesar en paralelo y poder así trabajar con grandes redes neuronales en tiempo real. Dentro del ámbito de la simulación de comportamiento esta técnica todavía se utiliza poco a pesar de su gran utilidad. Son pocos los programas interactivos que los utilicen pero por lo general se utilizan para simular acciones y comportamientos y definir la personalidades de entes virtuales (como una mascota por ejemplo). En estos casos, los nodos de activación del cerebro serán activados por los estímulos externos que el usuario o otros entes le proporcionen, activando así la red neuronal y obteniendo una respuesta.

2.5 Agentes inteligentes Los agentes inteligentes nacen de la necesidad detener un método con el que abordar cualquier problema que pueda ser resuelto mediante la inteligencia artificial. Podríamos definirlos como entes que se dividen las tareas necesarias para resolver un problema. Mediante los sistemas basados en agentes inteligentes podemos abordar las diferentes áreas de ésta relacionándolas entre si. De esta forma, la representación, la búsqueda y resolución de problemas, el aprendizaje automático, el razonamiento y la IA distribuida pueden ser abordadas con este paradigma. Los agentes funcionan de forma independiente, pero entre ellos deben poder comunicarse con tal de abordar un problema intercambiando información. Un agente estará en constante búsqueda de los datos necesarios para llevar a cabo su función gracias a su capacidad de contemplar su entorno 8

(dentro del contexto en el que se encuentre claro) y de responder ante éste. Estas características propias de los agentes pueden obtenerse mediante 3 métodos diferentes: –

Arquitecturas Deliberativas Las arquitecturas deliberativas se definen por como representan el mundo real y como se realiza la decisión con esa representación. El comportamiento y conocimiento del mundo que tienen los agentes están representados mediante un conjunto de símbolos físicos, es decir un conjunto físicamente realizable de entidades y estructuras. Además de esto en la arquitectura deliberativa las decisiones de los agentes son hechas mediante razonamiento lógico. Los principales problemas a la hora de abordar este diseño serán la forma en que representemos el mundo real mediante una representación simbólica y como éstos razonarán. Mediante la arquitectura deliberativa se pueden obtener los agentes BDI, que utilizan como razonamiento una rama de la filosofía llamada razonamiento práctico.



Arquitecturas Reactivas Las arquitecturas reactivas son aquellas que no hacen uso de un modelo simbólico del mundo y no usa un razonamiento simbólico. Los agentes toman decisiones a partir de una lista de comportamientos que, mediante percepciones externas, desencadenan en una serie de reacciones a éstas. Es la responsabilidad del agente seleccionar cual de estas posibles acciones realizar. Esta clase de arquitectura también es llamada alternativa, ya que surgió como una opción a las arquitecturas deliberativas que presentan problemas que en ocasiones no se pueden solucionar y además se aleja de la representación del conocimiento mediante un modelo simbólico.



Arquitecturas Híbridas Las arquitecturas híbridas nacen de las voces críticas con las dos arquitecturas citadas anteriormente, que creen que ninguna de las dos termina por obtener resultados satisfactorios del todo. De esta forma,la arquitectura híbrida opta por una estructura en capas, donde la arquitectura reactiva y reactiva se combinan para obtener, en principio, las ventajas de ambos diseños y evitando sus inconvenientes.

2.5.1 Agentes BDI Los agentes BDI actúan creando un modelo que define que acciones se desean realizar para obtener un fin y como los vamos a obtener. En ese camino intervienen la visión del mundo del agente (las creencias), que posibilidades tengo según estas (deseos) y que objetivos voy a lograr (intenciones). El funcionamiento de una agente BDI sería el siguiente:

9

Revisión de creencias Creencias

Generación de opciones

Opciones Generador de objetivos

Selección de acciones Objetivos

?

Ac ció n

Diagrama de funcionamiento de un agente BDI Como vemos en el diagrama, el agente tiene una visión del mundo que va actualizando. A partir de ella, se extraen las opciones de que dispone para realizar sus deseos para después, a partir de éstos y del entorno que le rodea generar los objetivos que desea lograr. De todos ellos, mediante una función de selección, el agente escoge el objetivo a realizar, traduciéndolo en una acción que realizará. Dado el posible estado cambiante del entorno de un agente BDI (sobretodo en aplicaciones interactivas) éste debe revisar su visión del mundo, para poner al día sus objetivos y las acciones que debe realizar. Ésto supone un problema, ya que en función del volumen de información con la que el agente trabaje, actualizar los objetivos/acciones puede ser muy costoso, así que debe buscarse un equilibrio en la frecuencia de este proceso, determinado por el contexto en el que se encuentra el agente.

10

3. Entorno, contexto y representación En la simulación del comportamiento en entornos interactivos disponemos de entes virtuales que  pueblan un “mundo”. Es este mundo el que las personas podemos entrar y es el objetivo de la  inteligencia artificial que el usuario realmente crea que forma parte de él. Este propósito se intenta conseguir mediante la interacción de los pobladores virtuales entre ellos y  con su propio entorno. ¿Todos se comportaran siguiendo las mismas reglas? Bueno, eso estará en  función de la complejidad del entorno y del contexto. Esto es  fundamental para que la simulación tenga éxito en su misión, porque supongamos  que  accedemos a un mundo virtual compuesto por una habitación cerrada, completamente vacía de otos  elementos que las paredes, el suelo y el techo. Aquí tenemos el entorno. Y lo pueblan dos entes, uno  representa un pez, y otro un gato. El pez es capaz de nadar por el entorno buscando plancton y el  gato es capaz de dormir y pasearse por el entorno. Evidentemente ante tal representación, para el  usuario esos entes virtuales no serán creíbles, porque a no ser que estemos hablando de un pez  mágico (y no es el caso) este solo debería de nadar sobre el agua, y al estar en una habitación sin  ella, debería estar tendido en el suelo muerto. Con este ejemplo intento explicar la importancia del  entorno, ya que este determina y condiciona la simulación del comportamiento. Supongamos ahora que el pez esta en una pecera, el gato sigue dando vueltas tranquilamente y  durmiendo. Podríamos pasarnos horas observando y en ningún momento el gato tendría hambre e  intentaría   comerse   al   pez.   Este   es   otro   ejemplo   con   el   que   quiero   mostrar   la   importancia   del  contexto, pues estaríamos simulando el comportamiento de un animal común y como tal, un gato no  puede ignorar la apetitosa presencia de un pez. Así, el contexto del mundo que se desea representar  condiciona también la simulación del comportamiento. Estas restricciones de entorno y contexto comportan que las técnicas y métodos para realizar una  simulación sean completamente diferentes entre aplicaciones y que éstas al final utilicen diferentes  técnicas (algunas de ellas citadas en el apartado 2), imposibilitando así una solución definitiva o  general para este tipo de aplicaciones y necesitando un estudio exhaustivo de que es lo que se quiere  representar. Así, la inteligencia artificial que domina a un gato en una aplicación en el que somos un ratón  intentando saquear una despensa, donde éste intentara terminar con nuestra vida, no será la misma  que si ese gato se encontrase en un juego donde debemos gestionar una granja. Evidentemente en la  granja   el   gato   no   intentaría   acabar   con   nosotros   teniendo   en   cuenta   que   le   suministramos   el  alimento. Otro punto importante en la simulación de comportamientos es la representación que se ofrece de  ellos. En una aplicación interactiva donde el usuario observa como se comportan sus pobladores e  interactúa   con   ellos,   no   solo   es   necesario   que   éstos   sean   capaces   de   saber   como   comportarse,  también es vital para el éxito de la simulación que ésta sea reconocible por el usuario. Un ejemplo muy claro lo encontramos en el clásico juego PAC­MAN, donde controlamos a un  simpático personaje con forma de pizza que come bolitas y que es perseguido por un escenario  laberíntico por unos fantasmas. En el escenario existe una bolita más grandes que el resto, que le  daba al personaje la capacidad d engullir a los fantasmas que le persiguen. Éstos, entran en pánico y  huyen de nosotros, cambiando su apariencia por una cara de pavor. Si este cambio de apariencia,  para   manifestar   y   hacer   comprender   al   usuario   que   estos   entes   tienen   “miedo”,   los   fantasmas  hubiesen huido de nosotros de todos modos, pero para el usuario puede pasar desapercibido. Este  11

ejemplo resalta la importancia de la representación de los comportamientos de los entes virtuales y  como su manifestación externa es muy importante para que el usuario realmente crea y comprenda  que éstos son inteligentes y son capaces de manifestar y realizar comportamientos artificiales Oto   ejemplo   igualmente   bueno   lo   encontramos   en   un   juego   ambientado   en   la   segunda   guerra  mundial, donde el usuario lanza una grande hacia un comando alemán y estos, que han detectado la  amenaza se alejan de ella. Si esta pequeña muestra de inteligencia estuviera dentro de una gran  batalla donde se le exige al usuario un esfuerzo al haber muchos focos de atención, tal vez pasase  desapercibida   la   muestra   de   inteligencia,   pero   simplemente   añadiendo   una   frase   preestablecido  como “Cuidado una granada, todos al suelo!” el jugador seria consciente del comportamiento de los  entes virtuales ante su interacción. Y para hacer más creíble la experiencia, entraría en juego el  contexto, donde la frase antes mencionada debería estar en perfecto alemán, haciendo todavía más  creíble que esos entes virtuales son realmente soldado alemanes.

12

4. Aplicaciones prácticas Después de haber repasado las diferentes técnicas utilizadas en la simulación de comportamientos  en entornos virtuales y explicar los factores que determinaran el éxito de la simulación, es decir, el  entorno, el contexto y la representación de ésta, vamos a analizar una serie de implementaciones de  motores de inteligencia artificial en aplicaciones interactivas. Hay mucha variedad actualmente de este tipo de aplicaciones que el público en general puede  disfrutar y es que el mayor evolución de este tipo de tecnología, la inteligencia artificial en entornos  virtuales, ha evolucionado de forma más palpable en la industria del ocio electrónico. Son los  videojuegos el software que más uso ha hecho de la inteligencia artificial y dado el gran capital que  mueve esa industria, siempre intentando superarse para ofrecer a los usuarios nuevas y más realistas  experiencias, es de entender que mucho del esfuerzo por parte de os ingenieros de software se haya  centrado en este campo. He seleccionado 4 videojuegos, 3 de ellos pertenecientes a la saga Halo obra del estudio  norteamericano Bungie y el juego Black&White, obra del estudio inglés LionHead, capitaneado por  Peter Molyneux. Evidentemente, el último capítulo de la saga Halo es el que presenta la IA más perfeccionada, pues  los 3 capítulos de esta saga han ido mejorando la inteligencia artificial sobre los pilares que asentó  la primera parte, pero me ha parecido muy interesante explicar los 3 para comprobar como se ha ido  perfeccionando una inteligencia artificial que actualmente, es considerada por muchos una de las  mejores implementaciones en un videojuegos que simula comportamientos inteligentes mediante  agentes inteligentes de tipo reactivo. La otra obra que paso a analizar, Black&White, a pesar de ser un título de 2001, aplico una serie de  conceptos sobre el aprendizaje automático totalmente inéditos en el sector del ocio electrónico con  grandes resultados que aun hoy en día pocos estudios han podido volver aplicar. Para ese fin se hizo  uso de agentes inteligentes BDI y de redes neuronales.

4.1 Halo: Combat Evolved En Halo: Combat Evolved, desarrollado por Bungie el 2002, encarnamos el papel de un marine  espacial de la clase Spartan que debe luchar contra un ejercito alienígena en el futuro. Este ejercito  está compuesto por diferentes razas de toda la galaxia, con formas y personalidades muy diferentes,  que siguen una extraña religión que les impulsa a perseguir y aniquilar nuestra especie. En el  desarrollo del juego nos encontramos en un misteriosos mundo anillo que esconde nuevas especies,  tanto mecanoides como biológicas que serán nuestros aliados o nuestros enemigos, tanto de nuestra  especie, los humanos, como del peligroso Pacto. Halo: Combat Evolved es un juego que se desarrolla en primera persona, en el que disponemos de  un arsenal de armas que cualquier ser de cualquier especie puede utilizar si esta dotado para ello, en  el que tanto nosotros, como nuestros aliados, como el enemigo es capaz de utilizar vehículos y en el  que se suceden grandes batallas con las que interactuar en las que participan hasta 50 entidades  virtuales de bandos diferentes de más de 10 especies. Los logros de este juego en la inteligencia artificial son muchos pero vayamos por partes. 13

Uno de los pilares de la IA de Halo:Combat Evolved es el uso de marcadores en el entorno y en sus  pobladores. Podríamos definir los marcadores como una estructura de datos que contiene una  posición y un atributo que define a que está asignado, ya sea a un enemigo, a un aliado, a una roca  que puede usarse de cobertura, a un puente, a diferentes zonas de una plataforma, etc. Los  marcadores tienen como objetivo la catalogación del entorno y sus pobladores para optimizar los  cálculos de la inteligencia artificial y para tener un conocimiento de todo lo que rodea la acción sin  costosos cálculos y con una total percepción de este n función del contexto del juego, que en este  caso se trata de un juego de disparos. Los marcadores son introducidos en el sistema por diseñadores, es decir por personas, que son  capaces de interpretar en función del contexto que marcadores deben ser introducidos y de que tipo.  Esta solución difiere de otros títulos que mediante funciones matemáticas realizaban una precarga  de los entornos y asignaban este tipo de marcadores en función de uso criterios, siendo la máquina  la que decidiría asignarlos. Al relegar esta tarea a los diseñadores, se tiene un control mayor sobre  las reacciones de los entes virtuales y la variedad de marcadores así como la correcta asignación  mediante la experimentación, dando así mejores resultados de cara al usuario en la simulación del  comportamiento. Gracias a este sistema, podemos ver por primera vez en Halo: Combat Evolved como los enemigos  o nuestros aliados, cuyo perfil como raza les atribuye una mayor inteligencia militar, son capaces de  colocarse en situaciones ventajosas para el ataque, esconderse para tender emboscadas, refugiarse el  fuego enemigo poniendo muros, piedras, etc. entre los dos, etc.

Ejemplo de uso de los marcadores en Halo: Combat Evolved para clasificar el entorno donde se  desarrolla la acción El uso de marcadores para individuos permite que, mediante el ahorro de procesado que conllevan,  pueda ser posible proporcionar a un ente virtual una autentica percepción de su entorno. Si nos  14

fijamos en obras anteriores de otros estudios pero de un genero similar, la máquina “hace trampa”,  es decir, los entes amigos o enemigos saben todo lo que esta pasando en cualquier momento, tienen  un conocimiento realmente total de su entorno, mientras que en Halo, gracias a los marcadores, los  entes virtuales realmente son conscientes del entorno que son capaces de percibir por sus propios  sentidos (los sentidos que tenga su especie claro). Así y a diferencia de juegos anteriores, si  cogemos a un enemigo de espaldas, podemos posicionarnos para acabar con el, porque nuestra  presencia no será detectada, en vez de tan solo por estar en el mismo entorno, saber el de nuestra  existencia, algo que sería contradictorio con una correcta simulación de comportamiento.

Ejemplo de uso de los marcadores en Halo: Combat Evolved para recoger la percepción de los  entes virtuales Otro gran logro de este título es el conseguido por la representación de comportamientos. Con la  premisa de que se están modelando las inteligencias de múltiples especies, cada una con diferentes  comportamientos y de que éstos deben ser claros para el usuario, el uso de la representación de los  comportamientos se da en todas las razas mediante expresión corporal y/o oral. Así, nos encontramos con una raza en el juego de pequeños soldados cuya raza tiene tendencia a  entrar en pánico y huir. Así, si terminamos con el líder de un escuadrón, los subalternos que suelen  ser de esa raza entraran en pánico, comenzando a gritar y soltando frases como “Huid! Nos va a  matar” agitando los brazos y corriendo todos los individuos en direcciones dispares, transmitiendo  realmente una sensación creíble y lógica para su especie, haciendo que el usuario averigüe una  característica de un especie de entes virtuales y haga una asociación de un estado humano como es  la cobardía y el pánico a un ente virtual.

15

Soldado de clase Grunt huyendo de un atacante Otro ejemplo del uso de la representación lo encontramos en la especie enemiga Elite, que  podríamos definir como soldados disciplinados y muy inteligentes. Son la especie más diligente y  que utiliza táctica más elaboradas. Estos soldados utilizan una especie de campo de energía, que una  vez hemos descargado muchos proyectiles sobre ellos desaparece y es solo entonces cuando  podemos terminar con ellos. Estos escudos se regeneran en unos segundos, así que los elites que es  una de las especies más inteligentes, intentará cubrirse para recuperar su escudo si se ve apoyado  por otros compañeros. Pero si se encuentra solo o no se ve incapaz de escapar puede enloquecer y  lanzarse contra nosotros a pesar de su vulnerabilidad, para intentar acabar con nosotros. Para  representar este estado de locura transitoria, el elite comenzara a gritar y a maldecir para después  lanzar directamente sobre nosotros desesperadamente y obviando toda alternativa más elaborada.  Aquí Bungie consigue atribuir un comportamiento ilógico pero propio de especies inteligentes  como los seres humanos, haciendo todavía más creíble que el modelado en 3d que estamos viendo  es realmente un ser alienígena con inteligencia y personalidad propia.

Soldado de la clase Elite enloquecido por un ataque enemigo Pero el principal logro de Halo: Combat Evolved en la inteligencia artificial es como han logrado  implementar un sistema que englobe tantas especies diferentes, con personalidad propia en un  mismo entorno y que son capaces de interactuar con éste y con los seres y objetos que lo pueblan. Esto se consigue mediante una máquina de estados que será la encargada de, mediante las entradas  que recoge un ente del mundo que le rodea, realizar una acción en consecuencia.

16

Esquema del “cerebro” de un ente de Halo: Combat Evolved Como vemos en la figura, el actor o ente virtual tiene una serie de entradas que recibe del exterior,  estas situaciones son analizadas y convertidas a una estructura que la inteligencia artificial pueda  comprender. Este análisis de la situación es llevado a el bloque de decisión lógica, donde la  inteligencia artificial decidirá que debe hacer el actor a continuación y buscando la acción en una  lista prefijada para finalmente, materializarla. Esta decisión lógica se realizará en función del ciclo de comportamiento de un ente (que incluye los  estados Ataque, Búsqueda y Relax) y los comportamientos que éste realiza.

Esquema de la decisión lógica 17

Como podemos ver en el esquema,los comportamientos (behaviors) y el estado del ente son  suministrados a una caja negra, que decidirá que acción de la colección se debe realizar. Esta caja  negra es diferente para cada especie. De esta forma, las acciones que realizarán las diversas especies  no serán iguales a pesar de tener las mismas entradas.  Así por ejemplo y citando las dos especies del ejemplo anterior, el cobarde Grunt y el soldado  implacable Elite, estas dos especies si reciben dolor y están en estado de ataque, la máquina negra  de los Grunts decidirá realizar la acción flee (huir) mientras que con las mismas entradas la  máquina de un Elite optará por (Hide) cubrirse. Así la máquina negra en función de la especie, el estado actual del actor y el conjunto de estímulos  externos que recibe decidirá que hacer a continuación. Como podemos observar, la inteligencia artificial de Halo: Combat Evolved sigue el paradigma  acción­reacción para poder obtener una simulación realista de los comportamientos, huyendo así de  la aleatoriedad y siguiendo una lógica en función del entorno y el contexto de cada especie. Esta implementación como hemos podido observar, responde al paradigma de programación de  agentes inteligentes de tipo reactivo, al basarse en un conjunto de comportamientos posibles de los  que se selecciona la acción a realizar en función de los impulsos que éstos reciben.

4.2 Halo 2 Halo 2 es un juego de acción y aventuras en primera persona que salió al mercado el año 2004. Fue  creado por Bungie y es una continuación (tanto en el tipo de juego como en su desarrollo e historia)  de Halo: Combat Evolved (para más información consultar el punto 4.1). En esta ocasión el bestiario de criaturas se ha incrementado al igual que el armamento y los  vehículos. La tecnología en que se basa la inteligencia artificial de Halo 2 se basa en la que definió su  predecesor, pero con alguna serie de cambios para mejorarla y hacerla más creíble y más eficiente.  Recordemos que la saga Halo estuvo pensada originalmente para un sistema cerrado, como es una  videoconsola, con un hardware que no evoluciona y eso exige una mayor optimización de los  recursos.  Halo 2 utiliza la misma tecnología de marcadores de entes y de localizaciones del escenario para  obtener los datos del entorno de una forma rápida y eficiente. La principal novedad de halo 2 en la  inteligencia artificial es la sustitución del anterior modelo de máquina de tomar decisiones por una  inteligencia artificial escalable, que se basa en el uso de arboles de comportamiento.

18

Árbol de comportamiento Mediante esta estructura, un ente virtual que recibe un acontecimiento externo, selecciona una rama  del árbol en función de esa entrada, obteniendo así el comportamiento que mostrará. Como  podemos ver, la estructura del árbol va de un comportamiento más general a uno más especifico.  Gracias a la modularidad y escalabilidad de este tipo de representación, a partir de un árbol de  comportamientos genérico, se pueden obtener los N árboles de comportamiento mediante la  herencia necesarios para Halo 2, uno por cada clase de ente que puebla el juego. Así cada especie  dispondrá de una serie de comportamientos a realizar acotados y podremos representar para cada  especie las clases de comportamiento que puede realizar como las que actualmente esta realizando. Debido a la gran memoria que requeriría replicar esta estructura para cada personaje que esta  interactuando en ese momento, se transforma el árbol general par la instancia de un individuo en un  vector donde se guarda el camino y obteniendo así las componentes que forman el estado actual.

19

Transformación árbol de comportamientos → vector de estados Gracias a esta estructura, se ha podido implementar un sistema de marcadores sobre el terreno que  pueden modificar el árbol de comportamiento en función del terreno en el que se encuentre el  individuo. Gracias a esta técnica se mejora todavía más la elección de un comportamiento en  función del entorno y el contexto. De esta forma, si la misión del enemigo en aquella zona  determinada es mantenerse en ella para que no pase el adversario, se recortará el árbol de  comportamientos, no permitiendo que éstos avancen, mientras que si en un terreno determinado el  objetivo es huir de una fuerza muy superior, se recortara el árbol de nuevo, recortando así la  posibilidad de quedarse a combatir. De esta forma el contexto, en este caso diferentes situaciones en  una batalla se tienen en cuenta y no solo se tienen en cuenta la personalidad de las diferentes  especies sino que también se crea unas directrices de grupo para seguir estrategias coordinadas.

4.3 Halo 3 Halo 3 es un juego de acción y aventuras en primera persona que salió al mercado el año 2007. Fue  creado por Bungie y es una continuación (tanto en el tipo de juego como en su desarrollo e historia)  de Halo: Combat Evolved y de Halo 2 (para más información consultar el punto 4.1). En esta ocasión, Halo 3 fue concebido para una nueva plataforma, a diferencia de sus dos  antecesores, contando así con más recursos para representar la acción. Esto motivó al equipo de  Bungie a mejorar su motor de inteligencia artificial para poder representar un mayor número de  entes virtuales en un mismo escenario y perfeccionar el comportamiento en equipo de éstos. Para poder llevar a cabo este objetivo de forma eficiente, la anterior tecnología de árbol de  comportamientos comportaba problemas de eficiencia. La coordinación de entes que formaban  parte de una estructura jerárquica dentro de un grupo mediante comportamientos asignados a cada  individuo comportaba unos grandes requisitos de cálculo teniendo en cuenta la ingente cantidad de  20

entes que ahora aparecían en un mismo entorno. Fruto de esa necesidad se desarrollo una nueva estructura para la simulación de comportamientos de  colectivos de individuos independientes de forma eficiente. Estas estructuras se generan para cada  subgrupo de entes que en ese momento están interactuando en la escena. En ellas aparecen los  comportamientos propios de un escuadrón como avanzar, retirarse o resistir y cual de ellos tiene  actualmente el grupo. Estos estados vienen junto a una función que en función del entorno y la  situación actual decide que estado va activarse para el grupo. Así esos patrones básicos de ataque en  los individuos pasan a formar parte del grupo, conservando la personalidad propia de cada  integrante mediante su propio árbol de comportamiento para comportamientos más específicos de  su especie. Estos datos del entorno son recogidos por el sistema de marcadores ya utilizado desde  Halo: Combat Evolved para poder obtener de forma eficiente una representación del entorno. Un ejemplo en Halo 3 de esta tecnología la podemos apreciar cuando estamos avanzando con  nuestro propio escuadrón adentrándonos en unas instalaciones a través de unos pasillos llenos de  cajas. Al girar la esquina encontramos otro pasillo con 3 escuadrones de fuerzas hostiles que nos  barren el paso. Al eliminar casi la mitad de sus fuerzas retroceden hasta la mitad del pasillo. Al  avanzar nosotros aparece una nave de descenso enemiga con mas refuerzos que se añaden a los que  nos atacaban. Éstos detienen su retirada y eliminan a  un gran cantidad de nuestras tropas, lo cual  hace que éstas se retiren, mientras que el enemigo viendo el panorama deciden reconquistar su  posición anterior, viendo que nosotros retrocedemos para escudarnos de su ataque y muchos de  nuestros aliados han caído.

Una avanzadilla ataca nuestra posición mientras otro escuadrón espera en la retaguardia. Este uso de la inteligencia artificial para simular comportamientos coordinados de entes virtuales  hace que la experiencia del usuario sea más rica y que la  inteligencia artificial tenga un mayor éxito  al representar comportamientos naturales no solo de individuos, sino de grupos de individuos.

21

4.4 Black & White En Black&White, juego publicado el año 2001 por el estudio inglés LionHead encarnamos el papel  de un dios recién llegado a un nuevo mundo. Nuestro personaje es omnipresente y esta representado  por una mano con la que realizaremos la interacción con el entorno y sus pobladores. El objetivo del  juego es conseguir que los habitantes de este mundo nos adoren y derrotar a otros dioses robándoles  creyentes convirtiéndolos a nuestra religión. Como dios, no podemos dar ordenes a nuestros creyentes, pero podemos sugerirles que realicen  tareas cogiéndolos con nuestra divina mano y llevándoles allí donde sus habilidades puedan ser de  provecho para nuestros intereses. Seremos capaces de realizar hechizos para impresionar a nuestro  seguidores y que estos incrementen su fe en nosotros. Uno de los pilares de Black&White es la total libertad con la que contamos para conseguir nuestros  objetivos. Como dioses, necesitamos creyentes, pero podemos conseguirlos mediante el miedo o  mediante la admiración, ayudándolos. Así gestionaremos diversos poblados a lo largo de la  aventura, decidiendo como jugadores como comportarnos para lograr nuestra meta.

Nuestro personaje, la mano, suministra madera a unos aldeanos para ganarse su fe Los creyentes interaccionaran con nosotros solicitando ayuda en función de sus necesidades  (comida, casas, descendientes, etc.) y otros dioses rivales intentaran derrocarnos. Para estos entes  virtuales la inteligencia artificial de Black & White no presenta ninguna sorpresa ni haría de este  título un hito en el ocio electrónico en el uso de la IA. Es en nuestro ayudante, nuestra mascota, una  criatura gigantesca que como Dios se pondrá a nuestro cargo donde Black&White explota técnicas  de inteligencia artificial de forma realmente exitosa que no se habían utilizado antes. Como dioses, al principio del juego, se nos da la oportunidad de elegir nuestra criatura.  Inicialmente, serán 3 nuestras posibles compañeras. Un tigre gigante, una criatura muy agresiva,  22

una vaca gigante, un animal bueno y bondadoso y una criatura intermedia, una tortuga gigante. Y es  que las criaturas en Black&White, al igual que nosotros, pueden optar por hacer el bien o el mal y  estas, cuando se nos entregan, tienen diferente grado de predisposición a cada bando. Pero esto es solo su personalidad inicial, pues las criaturas de Black&White aprenderán de nosotros  como comportarse, mediante la observación o nuestra directa implicación, mediante estímulos  positivos (una caricia) o negativos (un golpe) para que sepan que pensamos de sus  comportamientos.

Nuestra criatura ha aprendido a lanzar un hechizo mediante la observación Así las criaturas llegarán a aprender a lanzar hechizos como nosotros, a tratar a los creyentes  devorándolos, jugando con ellos lanzándoles por los aires, ayudándolos,.. todo dependerá de la  predisposición y del aprendizaje, por nuestra intervención directa y/o por la observación que realice  la criatura de su entorno. La criatura contra más atención le dediquemos más la echara en falta, de la misma forma que  podemos ignorarla completamente durante el juego y así desarrollará su personalidad y crecerá de  forma completamente independiente, basándose pues únicamente en las percepciones y experiencias  que haya experimentado. Las criaturas no solo se limitarán a interactuar con nosotros sino que camparán libremente  interactuando con los creyentes (nuestros o de nuestros adversarios) y con otras criaturas de otros  dioses, pudiendo crear enemistades o amistades con estas independientemente de nuestra rivalidad  con sus dueños. Otro de los grandes logros de Black&White es el uso que hace de la expresión corporal y oral para  manifestar el estado de nuestra criatura. Ésta intentará llamar nuestra atención silvándonos, agitando  las manos, trayéndonos objetos para que la felicitemos.. Estas muestras hacen que el usuario  empatice con la criatura y se la tome como un verdadera mascota y no como un simple ente virtual. Para poder implementar la inteligencia artificial de Black&White, el estudio inglés hizo uso de  23

agentes inteligentes BDI para simular los comportamientos de las criaturas y que éstas se asemejen  a una criatura viva independiente. También se hizo uso de redes neuronales para apoyar el  aprendizaje automático, completando así la IA de unas criaturas que como ya hemos comentado, en  función de la percepción que poseen del mundo generan una personalidad y una conducta  coherente. Así, las criaturas mediante la observación generan un conjunto de conocimientos sobre lo que les  envuelve y en función de éstos, generará unos objetivos, es decir, unos deseos. Estos pueden ser  “ayudar a los aldeanos”, “que mi dios me preste atención”, “quiero comer”, etc. Estos objetivos  serán manifestados en acciones según lo determine una función de selección que esta implementada  en la propia IA, en función de la prioridad de éstos y del contexto. La forma de llevarlos a cabo  vendrá determinada por el conjunto de habilidades que la criatura haya aprendido y su propia  personalidad. De esta forma se consigue tener claros unos objetivos que la criatura desea llevar a cabo y que serán  realizados en función de su personalidad. Así ante el deseo “quiero comer” si nuestra criatura tiene  una personalidad malvada y carnívora, comerá lo primero que se encuentre, incluidos nuestros  creyentes, mientras que si es benigna se limitará a animales que los creyentes no valoren o a comer  vegetales. Las posibilidades son enormes y al tratarse de criaturas totalmente independientes del usuario se  logra una sensación de exitosa simulación por parte del usuario, que observara, siquiera, una  criatura que hace la suya, que explora el mundo que le rodea, interacciona con él y aprende de él.

24

5. Bibliografía ●

Libros ○ Brian Schwab, AI Game Engine Programming, Charles River Media, 2004 ○ Stuart Russell, Peter Norving, Inteligencia Artificial: Un enfoque moderno, Prentice  Hall, 1996 ○ Javier Béjar, Aplicaciones de la inteligencia Artificial



Material web ○ Teoría de la decisión,  http://www.virtual.unal.edu.co/cursos/ingenieria/2001394/index.html ○

The game AI Page, http://www.gameai.com/



AI in Games: a personal view, http://www.gameai.com/blackandwhite.html



AI Game Dev, http://www.aigamedev.com Gamasutra, http://www.gamasutra.com/

○ ○

Aprendizaje   automático,   Wikipedia,  http://es.wikipedia.org/wiki/Aprendizaje_autom %C3%A1tico



Red neuronal artificial, Wikipedia, http://es.wikipedia.org/wiki/Red_neuronal



Game/AI, http:www.ai­blog.net



Game artifical intelligence, Wikipedia, http://en.wikipedia.org/wiki/Game_AI

25

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.