Una vez que se conocen los diferentes elementos que toman parte en la escena de
un sistema que requiere inteligencia artificial más compleja y elaborada, llega
el momento de plantearse la forma en la que vamos a gestionar el comportamiento.
Para facilitar las diferentes características que son deseables en la gestión de
entidades dotadas de inteligencia artificial (rehusabilidad de comportamientos, paralelismo,
independencia del agente, entre otras.) se han propuesto varios modelos
matemáticos y mecanismos que permiten fcilitarnos el trabajo y adquirir muchas de
estas características deseables de un sistema complejo de inteligencia artificial.
En este artículo veremos que áreas se han extendido en mayor grado y cuál es la tendencia de
los desarrolladores en materia de gestión del comportamiento.
En primer lugar se expandieron los sistemas que usaban listas complejas y elaboradas de acciones que aplicadas a determinados contextos producian el comportamiento deseado de los agentes. Este enfoque era válido puesto que en los primeros sistemas de entretenimiento en este caso no era necesario un alto grado de complejidad ni existía un indeterminismo inherente alentorno en el que nos encontrabamos.

Un ejemplo de este comportamiento podía ser el de simuladores de lucha como Street Fighter donde se regian reglas del estilo a: Si (el usuario ataca) Y (Nivel de juego = alto) entonces -> Ejecuta contraataque.
Posteriormente a medida que crece la complejidad se introducen elementos que aportan algo de indeterminismo para hacer menos predecible el comportamiento de los agentes. Se introducen parámetros estadísticos y medidas donde las reglas dependen en parte del azar. Un ejemplo sería, al igual que el anterior: Si (el usuario ataca) Y
(Nivel de juego = alto) Y (tiro un dado y sale mayor que 3) entonces -> Ejecuta contraataque.
Como se aprecia, la tendencia era incluir más ‘Y’s a medida que añadiamos dificultad. Conforme avanzan los sistemas de entretenimiento crecen tanto los elementos relativos al entorno como el número de agentes implicados, lo que hace que las reglas de este estilo, en su dia muy válidas y rápidas de computar, sean insuficientes y presenten soluciones de inviabilidad creciente. Un ejemplo sería el sistema de Heavenly Sword donde intervienen muchos agentes sobre entornos
muy diferentes y con habilidades distintas.

Esta complejidad empieza a requerir un grado de organización mayor y requiere estructuras que soporten una rehusabilidad, una escalabilidad y una cambiabilidad acordes a las variaciones de puntos de vista de los departamentos de diseño y de márqueting de las productoras de juegos. El creador de inteligencia artificial debía ahora poder modificar de forma rápida los comportamientos en función de decisiones de diseño o por requisitos de diferentes plataformas. Empiezan a surgir soluciones que tiran del modelo matemático de autómatas de estados finitos (Finite State Machines) donde cada momento queda definido por un estado y a cada estado se puede llegar mediante transiciones (eventos/peticiones del usuario/azar). Cada uno de estos estados tendría asociada una lista de acciones o comportamientos a llevar a cabo por el agente o agentes que tiene asociado.
Conforme la complejidad de los sistemas de entretenimiento aumentan la propuesta de Autómatas de Estados Finitos para modelar el comportamiento deja de ser efectiva. Se hace necesario agrupar comportamientos, definir nuevos cambios de estado y aplicar estructuras más flexibles y complejas al mismo tiempo. Surgen propuestas con lo que llamamos autómatas de estados finitos Jerárquicos (o Hierarchical Finite State Machines HFSM). Con ellos se resuelve en gran parte la rehusabilidad y se añade variabilidad en los comportamientos.
Los HFSM siguen siendo complejos y requieren un alto grado de comprensión por parte de los desarrolladores de IA. Lo que los hace poco competitivos en un entorno tan cambiante como el de la Industria del Entretenimiento. Si bien cumplen su comentido, les falta un grado de intuitividad que aportan otras soluciones como los Árboles de Comportamiento (Behaviour Trees). En este último enfoque organiza del mismo modo los comportamientos de forma jerárquica pero permitiendo agrupaciones en forma de árbol que permite agrupar comportamientos y hacer efectivos diferentes estructuras de forma mucho más intuitiva cuando el sistema empieza a ser realmente complejo.
Cada uno de estos enfoques es válido en su entorno correcto y no se puede decir a priori que uno sea mejor o peor, siempre es necesario aplicarlo al entorno en el que nos vamos a mover y solo la experiencia te permitirá descartar una opción u adoptar otra con un mayor grado de seguridad.
El resultado de cualquier modo, será que cumplirás tus objetivos pero la dificultad será mayor o menor. Y por otro lado cuando tengas que añadir o modificar comportamientos, te será más o menos complejo. Te animo a que le eches un vistazo a los artículos que profundizan un poco
más en cada uno de los enfoques.
Disfrútalo.




Leave a Reply