miércoles, 26 de enero de 2011

Skynet se une al enjambre: cómo la Supermente Berkeley ganó la competencia de StarCraft AI (Inteligencia Artificial) del 2010 (Parte final)

Esta es la última de las cuatro partes, como ven jugar es mas serio de lo que parece y para los que juegan (SC) hay algunas ideas interesantes que pueden usar para mejorar sus juegos. Los dejo con la última parte, al final he incluido un vídeo que no aparece en el artículo original pero que ilustra de manera general el comportamiento del agente, lo saqué de la página del proyecto, espero les resulte interesante.
viene de la tercera parte


El planificador de ruta también es útil para algo más que mover las unidades de un lado a otro. Además de la cobertura estática, una misión clave para los OverLords es proporcionar la detección de unidades ocultas. Sin embargo, los mutaliscos se mueven demasiado rápido como para que los OverLords los sigan. En su lugar, el agente asigna dinámicamente OverLords para proporcionar cobertura de camuflaje utilizando el planificador de ruta para calcular el camino mas corto seguro de acceso para cada OverLord a los mutaliscos. El OverLord con el camino más corto seguro es asignado. A medida que los mutaliscos vuelan alrededor del mapa, hay OverLords constantemente asignados y desasignados, protegiendo a los mutaliscos contra unidades camufladas, mientras mantienen una buena cobertura del resto del mapa. 
Ud puede ver un OverLord que es llamado en asistencia de los mutaliscos en este vídeo.



Combinando el seguimiento de amenazas, la planificación de ruta, y los exploradores creamos un círculo virtuoso. El mapa de amenazas permite la planificación de ruta para mantener las unidades de exploración con vida, y una mejor exploración mejora el mapa de amenazas. Cuanto mejor imagen global tuviera el agente, podía conseguir una mejor exploración, y viceversa. Esta última adición hizo de la Supermente de Berkeley un enemigo formidable: podía producir unidades, usarlas con habilidad en combate, y reaccionar de forma inteligente a las acciones del enemigo. 
Contratar a Oriol como nuestro "entrenador" nos ayudó a aplicar los toques finales. Oriol había jugado StarCraft a nivel profesional antes de retirarse y pasar a una vida de ciencia, y se unió al equipo como nuestro entrenador, oponente designado, y experto de StarCraft en casa. 
Con un experto humano de alto nivel para probar en contra y todos los algoritmos en su lugar, el agente progresó rápidamente en las últimas semanas, que culminaron con la primera victoria contra Oriol unos días antes de la presentación final. El agente se presentó a la medianoche del último día, en el último momento posible. No había nada que hacer sino esperar.

"Sus guerreros se han enfrentado al enemigo"

Después de cerradas las presentaciones a la competencia el 15 de septiembre de 2010, los partidos reales se realizaron en línea a finales de septiembre, con los resultados finales anunciados el 13 de octubre en la Conferencia de Inteligencia Artificial y entretenimiento digital interactivo (AIIDE Artificial Intelligence and Interactive Digital Entertainment). 
La competencia global se dividió en cuatro torneos, con los dos primeros centrados en torno a la microgestión de pequeños ejércitos. El tercero comprendió un juego reducido, sin niebla de guerra y opciones limitadas en términos de las unidades que se podía construir, y el cuarto fue el juego completo. Nuestro equipo entró solo al torneo 4, que se desarrolló en un formato de doble eliminación con los agentes avanzando al ganar lo mejor de 5 juegos. El resultado final fue el siguiente: de 17 entradas en el cuarto torneo, la Supermente Berkeley, obtuvo el primer lugar, ganando todos sus partidos, y 21 del total de 22 partidos que jugó.
Ver las repeticiones de los juegos de torneo fue alentador y también nos puso un poco nerviosos,  algunos de los juegos estuvieron muy cerca. Todos los agentes que lo hicieron bien eran muy sofisticados. Ellos construyeron ejércitos y acosaron, retirándose frente a fuerzas superiores, y adaptaron las estrategias para hacer frente a sus enemigos. Algunos fueron vulnerables a los ataques de hostigamiento de Sparky, pero muchos más se prepararon. Los mejores competidores cerraron completamente a Sparky, reaccionando correctamente a sus ataques de acoso y protegiéndose contra el robo de gas. Algunos tenían su propia versión de Sparky, y el robo de gas apareció en varios otros agentes.
Hubo algunas sorpresas también. KrasiO, el subcampeón, fue otro agente muy capaz, y produjo un comportamiento que no esperábamos porque no lo habíamos visto en los partidos de humanos. Los trabajadores Terran tienen la capacidad de reparar las unidades mecánicas y los edificios, pero esta capacidad se utiliza muy poco en combate, porque los trabajadores son frágiles y tener suficientes para hacer una diferencia en el combate requiere demasiada microgestión de parte del jugador. 
KrasiO utiliza pequeños grupos de trabajadores como equipos de reparación móviles para sus tanques y Goliat, reparando a veces las unidades mas rápidamente de lo que los mutaliscos podían hacer daño. El código de predicción de nuestro agente no tenía esto en cuenta, por lo que los mutaliscos a menudo sobre-estimaron sus posibilidades de éxito. Estos partidos se convirtieron en batallas de desgaste brutal que la Supermente ganó debido a la capacidad de los mutaliscos para contener la expansión del enemigo y a la pérdida de recursos que las reparaciones requerían.
Al final, la victoria de nuestro agente fue alentadora para nosotros, no sólo porque ganó, sino por la forma en que lo hizo. La Supermente produjo un juego parecido al de buenos jugadores humanos, no porque los humanos especificaran estas acciones en el código, sino porque tenía la capacidad de razonar y tomar decisiones, y decidió que era lo correcto. El planificador de construcciones producía edificios y unidades en secuencias parecidas a órdenes de construcción conocidas como resultado de sus deliberaciones internas, y las defensas fueron incorporadas de forma natural y sin problemas en la planificación, cuando los OverLords observaron ataques enemigos entrantes.
Lo más interesante de todo, la estrategia de contención-acoso-expansión que golpeó a Oriol y a Krasi0 fue un comportamiento completamente emergente. Con el código de predicción, nuestro agente sabía que no podría sobrevivir a un ataque frontal a las bases con una fuerte defensa, así que en vez de eso daba vueltas en círculos en busca de objetivos que podría atacar sin incurrir en grandes pérdidas. Esta estrategia impidió la expansión de los oponentes hacia sitios con recursos adicionales debido a que la movilidad superior de los mutaliscos hacía imposible la defensa de todas las bases de forma simultánea. Mientras tanto, la Supermente ocupaba rápidamente el resto de los sitios con recursos, creando una fuerza abrumadora. Todo esto ocurrió en forma natural como resultado de la toma de decisiones internas en cada nivel del agente, no porque un humano le dijera lo que debía hacer.

"Bueno, ¿qué sigue?"

El futuro inmediato es claro: la competencia de IA se llevará a cabo nuevamente en la próxima Conferencia AIIDE, y los equipos estarán estudiando detenidamente las repeticiones y pensando en maneras de mejorar sus agentes. 
Vamos a estar haciendo lo mismo. Para aquellos interesados en aprender más, tenemos vídeos y otras actualizaciones en nuestro sitio web overmind.cs.berkeley.edu, y una vez que tengamos la logística resuelta, tenemos la intención de dejar que los seres humanos jueguen contra el agente online. También vamos a estar escribiendo trabajos académicos sobre los diversos algoritmos detrás de la Supermente.
Los resultados del torneo nos dan esperanzas de que los futuros agentes de StarCraft pueden llegar a ser aún más inteligentes, aunque aún quedan muchos retos. La planificación estratégica de alto nivel, la gestión de los diversos grupos de tipos de unidades, y una mejor gestión de la información son algunos de los problemas que necesitan ser resueltos. 
Sin embargo, la tasa de progresión que la Supermente Berkeley mostró en contra de Oriol es alentadora. Los primeros juegos fueron victorias vergonzosamente fáciles para los humanos. Ya fuera con prisas iniciales o esperando para construir un gran ejército, usando unidades de tierra o unidades de aire o incluso un ataque con una fuerza de trabajadores, podíamos pedirle que utilizara cualquier estrategia, cualquier combinación de unidades, y él podía vencer el agente con la misma. Para cuando se cumplió el plazo de presentación, la Supermente era tan buena que tenía que jugar en serio en su contra. 
"Hubo casos de prueba que queríamos probar que simplemente no pudimos", señala Dan, "porque no pudimos llegar a esa fase del juego. O bien nos golpearon temprano, o los mutaliscos simplemente ganaron" Dan cree que en unos años habrá agentes que siempre podrán competir contra jugadores humanos del mas alto nivel. Hay mucho por hacer antes de alcanzar este objetivo, pero parece que sólo es cuestión de tiempo.


El vídeo final