Aprendiendo a jugar varios juegos con éxito
El juego general ( GGP ) es el diseño de programas de inteligencia artificial para poder jugar más de un juego con éxito. [1] [2] [3] Para muchos juegos como el ajedrez, las computadoras están programadas para jugar estos juegos utilizando un algoritmo especialmente diseñado, que no se puede transferir a otro contexto. Por ejemplo, un programa de computadora que juega ajedrez no puede jugar a las damas . El juego general se considera un hito necesario en el camino hacia la inteligencia artificial general . [4]
El juego de video general ( GVGP ) es el concepto de GGP ajustado al propósito de jugar videojuegos . Para los videojuegos, las reglas del juego deben aprenderse a lo largo de múltiples iteraciones por jugadores artificiales como TD-Gammon , [5] o se predefinen manualmente en un lenguaje específico del dominio y se envían por adelantado a los jugadores artificiales [6] [7] como en el GGP tradicional. A partir de 2013, se logró un progreso significativo siguiendo el enfoque de aprendizaje de refuerzo profundo , incluido el desarrollo de programas que pueden aprender a jugar juegos de Atari 2600 [8] [5] [9] [10] [11] así como un programa que puede aprender a jugar juegos de Nintendo Entertainment System . [12] [13] [14]
El primer uso comercial de la tecnología de juegos generales fue Zillions of Games en 1998. Los juegos generales también se propusieron para los agentes comerciales en la gestión de la cadena de suministro , en el marco de la negociación de precios en subastas en línea a partir de 2003. [15] [16] [17] [18]
Historia
En 1992, Barney Pell definió el concepto de Meta-Game Playing y desarrolló el sistema "MetaGame". Este fue el primer programa en generar automáticamente reglas de juego de juegos similares al ajedrez y uno de los primeros programas en utilizar la generación automática de juegos. Pell luego desarrolló el sistema Metagamer . [19] Este sistema era capaz de jugar una serie de juegos similares al ajedrez, dada la definición de reglas de juego en un lenguaje especial llamado Game Description Language (GDL), sin ninguna interacción humana una vez que se generaban los juegos. [20]
En 1998, Jeff Mallett y Mark Lefler desarrollaron el sistema comercial Zillions of Games . El sistema utilizaba un lenguaje similar a LISP para definir las reglas del juego. Zillions of Games derivaba automáticamente la función de evaluación a partir de las reglas del juego en función de la movilidad de las piezas, la estructura del tablero y los objetivos del juego. También empleaba algoritmos habituales que se encuentran en los sistemas de ajedrez informático : poda alfa-beta con orden de movimientos, tablas de transposición , etc. [21] El paquete se amplió en 2007 con la adición del complemento Axiom, un motor de metajuego alternativo que incorpora un lenguaje de programación completo basado en Forth.
En 1998, Urs Fischbacher desarrolló z-Tree . [22] z-Tree es la primera y más citada herramienta de software para economía experimental . z-Tree permite la definición de reglas de juego en lenguaje z-Tree para experimentos de teoría de juegos con sujetos humanos . También permite la definición de jugadores de computadora, que participan en un juego con sujetos humanos. [23]
En 2005 se creó el Proyecto Stanford de Juego General . [3]
En 2012, comenzó el desarrollo de PyVGDL. [24]
Implementaciones de GGP
Proyecto de Stanford
General Game Playing es un proyecto del Stanford Logic Group de la Universidad de Stanford , California, que tiene como objetivo crear una plataforma para juegos generales. Es el esfuerzo más conocido por estandarizar la IA de GGP y, en general, se considera el estándar para los sistemas de GGP. Los juegos se definen mediante conjuntos de reglas representadas en el lenguaje de descripción de juegos . Para jugar, los jugadores interactúan con un servidor de alojamiento de juegos [25] [26] que monitorea los movimientos para verificar su legalidad y mantiene a los jugadores informados de los cambios de estado.
Desde 2005, se han celebrado competiciones anuales de juego general en la Conferencia AAAI . La competición juzga las habilidades de las IA de los competidores para jugar a una variedad de juegos diferentes, registrando su rendimiento en cada juego individual. En la primera etapa de la competición, se juzga a los participantes por su capacidad para realizar movimientos legales, obtener la ventaja y completar los juegos más rápido. En la siguiente ronda de desempate, las IA se enfrentan entre sí en juegos cada vez más complejos. La IA que gane más juegos en esta etapa gana la competición y, hasta 2013, su creador solía ganar un premio de 10 000 dólares. [19] Hasta ahora, los siguientes programas han resultado victoriosos: [27]
Otros enfoques
Existen otros sistemas de juego generales que utilizan sus propios lenguajes para definir las reglas del juego. Entre otros programas de juego generales se incluyen:
Implementaciones de GVGP
Aprendizaje por refuerzo
El GVGP podría utilizarse potencialmente para crear automáticamente una IA de videojuegos real , así como "para probar entornos de juegos, incluidos aquellos creados automáticamente mediante generación de contenido procedimental y para encontrar posibles lagunas en el juego que un jugador humano podría explotar". [7] El GVGP también se ha utilizado para generar reglas de juego y estimar la calidad de un juego en función de los perfiles de rendimiento de algoritmos relativos (RAPP), que comparan la diferenciación de habilidades que permite un juego entre una buena IA y una mala IA. [42]
Lenguaje de descripción de videojuegos
La Competencia General de IA de Videojuegos (GVGAI) se lleva a cabo desde 2014. En esta competencia, se utilizan videojuegos bidimensionales similares a (y a veces basados en) los juegos de arcade y consola de la era de 1980 en lugar de los juegos de mesa utilizados en la competencia GGP. Ha ofrecido una forma para que los investigadores y profesionales prueben y comparen sus mejores algoritmos de juego de videojuegos generales. La competencia tiene un marco de software asociado que incluye una gran cantidad de juegos escritos en el Lenguaje de Descripción de Videojuegos (VGDL) , que no debe confundirse con GDL y es un lenguaje de codificación que utiliza semántica simple y comandos que se pueden analizar fácilmente. Un ejemplo de VGDL es PyVGDL desarrollado en 2013. [6] [24] Los juegos utilizados en GVGP son, por ahora, a menudo juegos de arcade bidimensionales, ya que son los más simples y fáciles de cuantificar. [43] Para simplificar el proceso de creación de una IA que pueda interpretar videojuegos, los juegos para este propósito se escriben en VGDL manualmente. [ Aclaración necesaria ] VGDL se puede utilizar para describir un juego específicamente para la generación procedimental de niveles, utilizando la Programación de Conjuntos de Respuestas (ASP) y un Algoritmo Evolutivo (EA). GVGP se puede utilizar para probar la validez de los niveles procedimentales, así como la dificultad o calidad de los niveles en función del rendimiento de un agente. [44]
Algoritmos
Dado que la IA de GGP debe diseñarse para jugar a múltiples juegos, su diseño no puede basarse en algoritmos creados específicamente para ciertos juegos. En cambio, la IA debe diseñarse utilizando algoritmos cuyos métodos se puedan aplicar a una amplia gama de juegos. La IA también debe ser un proceso continuo, que pueda adaptarse a su estado actual en lugar de al resultado de estados anteriores. Por esta razón, las técnicas de bucle abierto suelen ser las más efectivas. [45]
Un método popular para desarrollar GGP AI es el algoritmo de búsqueda de árbol de Monte Carlo (MCTS). [46] A menudo utilizado junto con el método UCT ( Límite de confianza superior aplicado a los árboles ), se han propuesto variaciones de MCTS para jugar mejor ciertos juegos, así como para hacerlo compatible con el juego de videojuegos. [47] [48] [49] Otra variación de los algoritmos de búsqueda de árbol utilizados es la búsqueda en amplitud dirigida (DBS), [50] en la que se crea un nodo secundario para el estado actual para cada acción disponible, y se visita cada nodo secundario ordenado por la recompensa promedio más alta, hasta que el juego termina o se agota el tiempo. [51] En cada método de búsqueda de árbol, la IA simula acciones potenciales y clasifica cada una en función de la recompensa promedio más alta de cada ruta, en términos de puntos ganados. [46] [51]
Supuestos
Para poder interactuar con los juegos, los algoritmos deben operar bajo el supuesto de que todos los juegos comparten características comunes. En el libro Half-Real: Video Games Between Real Worlds and Fictional Worlds , Jesper Juul da la siguiente definición de juegos: Los juegos se basan en reglas, tienen resultados variables, diferentes resultados dan diferentes valores, el esfuerzo del jugador influye en los resultados, el jugador está apegado a los resultados y el juego tiene consecuencias negociables. [52] Usando estos supuestos, la IA que juega juegos puede ser creada cuantificando la entrada del jugador, los resultados del juego y cómo se aplican las diversas reglas, y usando algoritmos para calcular el camino más favorable. [43]
Véase también
Referencias
- ^ Pell, Barney (1992). H. van den Herik; L. Allis (eds.). "Metagame: a new challenge for games and learning" [Programación heurística en inteligencia artificial 3–la tercera olimpiada informática] (PDF) . Ellis-Horwood. Archivado (PDF) desde el original el 2020-02-17 . Consultado el 2020-02-17 .
- ^ Pell, Barney (1996). "Un jugador de metajuego estratégico para juegos generales similares al ajedrez". Inteligencia Computacional . 12 (1): 177–198. doi :10.1111/j.1467-8640.1996.tb00258.x. ISSN 1467-8640. S2CID 996006.
- ^ ab Genesereth, Michael; Love, Nathaniel; Pell, Barney (15 de junio de 2005). "Juego general: descripción general de la competencia AAAI". AI Magazine . 26 (2): 62. doi :10.1609/aimag.v26i2.1813. ISSN 2371-9621.
- ^ Canaan, Rodrigo; Salge, Christoph; Togelius, Julian; Nealen, Andy (2019). Actas de la 14.ª Conferencia internacional sobre los fundamentos de los juegos digitales [ Actas de la 14.ª Conferencia internacional sobre la igualdad de condiciones: equidad en los juegos de IA frente a los de humanos ]. págs. 1–8. doi :10.1145/3337722. ISBN 9781450372176.S2CID58599284 .
- ^ ab Mnih, Volodymyr; Kavukcuoglu, Koray; Silver, David; Graves, Alex; Antonoglou, Ioannis; Wierstra, Daan; Riedmiller, Martin (2013). "Jugar a Atari con aprendizaje por refuerzo profundo" (PDF) . Taller sobre sistemas de procesamiento de información neuronal 2013. Archivado (PDF) del original el 12 de septiembre de 2014 . Consultado el 25 de abril de 2015 .
- ^ ab Schaul, Tom (agosto de 2013). "Un lenguaje de descripción de videojuegos para el aprendizaje interactivo o basado en modelos". Conferencia IEEE de 2013 sobre inteligencia computacional en juegos (CIG) . pp. 1–8. CiteSeerX 10.1.1.360.2263 . doi :10.1109/CIG.2013.6633610. ISBN. 978-1-4673-5311-3.S2CID812565 .
- ^ ab Levine, John; Congdon, Clare Bates; Ebner, Marc; Kendall, Graham; Lucas, Simon M.; Miikkulainen, Risto; Schaul, Tom; Thompson, Tommy (2013). "General Video Game Playing". Inteligencia artificial y computacional en juegos . 6 . Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik: 77–83. Archivado desde el original el 9 de abril de 2016 . Consultado el 25 de abril de 2015 .
- ^ Bowling, M.; Veness, J.; Naddaf, Y.; Bellemare, MG (14 de junio de 2013). "El entorno de aprendizaje Arcade: una plataforma de evaluación para agentes generales". Revista de investigación en inteligencia artificial . 47 : 253–279. arXiv : 1207.4708 . doi :10.1613/jair.3912. ISSN 1076-9757. S2CID 1552061.
- ^ Mnih, Volodymyr; Kavukcuoglu, Koray; Plata, David; Rusu, Andrei A.; Venecia, Joel; Hassabis, Demis; Bellemare, Marc G.; Tumbas, Alex; Riedmiller, Martín; Fidjeland, Andreas K.; Stig Petersen, Georg Ostrovski; Beattie, Charles; Sadik, Amir; Antonoglou, Ioannis; Rey, Helena; Kumaran, Dharshan; Wierstra, Daan; Legg, Shane (26 de febrero de 2015). "Control a nivel humano mediante aprendizaje por refuerzo profundo". Naturaleza . 518 (7540): 529–533. Código Bib :2015Natur.518..529M. doi : 10.1038/naturaleza14236. Número de modelo: PMID 25719670. Número de modelo: S2CID 205242740.
- ^ Korjus, Kristjan; Kuzovkin, Ilya; Tampuu, Ardi; Pungas, Taivo (2014). "Replicando el artículo "Jugando Atari con aprendizaje de refuerzo profundo"" (PDF) . Universidad de Tartu . Archivado (PDF) del original el 18 de diciembre de 2014 . Consultado el 25 de abril de 2015 .
- ^ Guo, Xiaoxiao; Singh, Satinder; Lee, Honglak; Lewis, Richard L.; Wang, Xiaoshi (2014). "Aprendizaje profundo para juegos de Atari en tiempo real mediante planificación de búsqueda de árbol de Montecarlo sin conexión" (PDF) . Actas del NIPS β . Conferencia sobre sistemas de procesamiento de información neuronal . Archivado (PDF) del original el 17 de noviembre de 2015 . Consultado el 25 de abril de 2015 .
- ^ Murphy, Tom (2013). "El primer nivel de Super Mario Bros. es fácil con ordenamientos lexicográficos y viajes en el tiempo... después se vuelve un poco complicado". (PDF) . SIGBOVIK. Archivado (PDF) del original el 26 de abril de 2013 . Consultado el 25 de abril de 2015 .
- ^ Murphy, Tom. "learnfun & playfun: una técnica general para automatizar juegos de NES". Archivado desde el original el 19 de abril de 2015. Consultado el 25 de abril de 2015 .
- ^ Teller, Swizec (28 de octubre de 2013). «Semana 2: El nivel 1 de Super Mario Bros. es fácil con ordenamientos lexicográficos y». Un friki con sombrero . Archivado desde el original el 30 de abril de 2015. Consultado el 25 de abril de 2015 .
- ^ McMillen, Colin (2003). Hacia el desarrollo de un agente inteligente para el juego de gestión de la cadena de suministro de la Competencia de agentes comerciales de 2003 [ Competencia de agentes comerciales de 2003 ] (Tesis). Tesis de maestría. Minneapolis, MN: Universidad de Minnesota. S2CID 167336006.
- ^ Zhang, Dongmo (2009). De las descripciones generales de juegos a un lenguaje de especificación de mercado para agentes comerciales generales [ Comercio electrónico mediado por agentes. Diseño de estrategias y mecanismos comerciales para mercados electrónicos ]. Berlín, Heidelberg: Springer. pp. 259–274. Bibcode :2010aecd.book..259T. CiteSeerX 10.1.1.467.4629 .
- ^ "AGAPE - Un lenguaje de subastas para jugadores de subastas en general". AGAPE (en francés). 8 de marzo de 2019. Archivado desde el original el 2 de agosto de 2021 . Consultado el 5 de marzo de 2020 .
- ^ Michael, Friedrich; Ignatov, Dmitry (2019). "General Game Playing B-to-B Price Negotiations" (PDF) . Actas del taller CEUR . -2479: 89–99. Archivado (PDF) del original el 6 de diciembre de 2019. Consultado el 5 de marzo de 2020 .
- ^ ab La investigación de Barney Pell sobre los juegos de ordenador Archivado el 12 de agosto de 2007 en Wayback Machine .
- ^ "Metagame and General Game Playing" ( Metagame y juego en general ) . Archivado desde el original el 3 de marzo de 2001. Consultado el 27 de marzo de 2016 .
- ^ Disponible: Universal Game Engine Archivado el 3 de noviembre de 2012 en Wayback Machine. Correo electrónico a comp.ai.games por Jeff Mallett, 10 de diciembre de 1998.
- ^ "UZH - z-Tree - Zurich Toolbox for Readymade Economic Experiments" (UZH - z-Tree - Caja de herramientas de Zúrich para experimentos económicos listos para usar) www.ztree.uzh.ch . Archivado desde el original el 21 de febrero de 2016. Consultado el 17 de febrero de 2020 .
- ^ Beckenkamp, Martin; Hennig-Schmidt, Heike; Maier-Rigaud, Frank P. (1 de marzo de 2007). "Cooperación en juegos de dilema del prisionero simétricos y asimétricos". Red de investigación en ciencias sociales. SSRN 968942.
- ^ ab Schaul, Tom (7 de febrero de 2020). "schaul/py-vgdl". GitHub . Archivado desde el original el 11 de junio de 2018 . Consultado el 9 de febrero de 2020 .
- ^ Servidor GGP Archivado el 21 de febrero de 2014 en Wayback Machine , plataforma para la competencia de sistemas de juego generales.
- ^ Servidor GGP de Dresde Archivado el 7 de abril de 2013 en Wayback Machine , plataforma para la competición de sistemas de juego generales con programación automática de partidos.
- ^ "Juegos generales". www.general-game-playing.de . Archivado desde el original el 26 de diciembre de 2008. Consultado el 21 de agosto de 2008 .
- ^ Información sobre Fluxplayer Archivado el 19 de julio de 2011 en Wayback Machine , el ganador de la 2da competencia internacional de juegos generales.
- ^ Información sobre CADIAPlayer Archivado el 22 de julio de 2011 en Wayback Machine , más información sobre el ganador de la 3.ª, 4.ª y 8.ª competencia internacional de juego general.
- ^ ¡ Sancho es el campeón de GGP 2014! Archivado el 22 de diciembre de 2015 en Wayback Machine , ganador de la competición internacional de juego general de 2014.
- ^ Tagiew, Rustam (2009). Filipe, Joaquim; Fred, Ana; Sharp, Bernadette (eds.). Hacia un marco para la gestión de la interacción estratégica [ Actas de la Conferencia Internacional sobre Agentes e Inteligencia Artificial ] (PDF) . Porto, Portugal. pp. 587–590. ISBN 978-989-8111-66-1. Archivado (PDF) del original el 9 de marzo de 2021. Consultado el 2 de junio de 2021 .
{{cite book}}
: CS1 maint: location missing publisher (link) - ^ Tagiew, Rustam (2011). Strategische Interaktion realer Agenten Ganzheitliche Konzeptualisierung und Softwarekomponenten einer interdisziplinären Forschungsinfrastruktur (neue Ausg ed.). Sarrebruck. ISBN 9783838125121.
{{cite book}}
: CS1 maint: location missing publisher (link) - ^ "Zillions of Games - ¿Quiénes somos?". www.zillions-of-games.com . Archivado desde el original el 15 de noviembre de 2017. Consultado el 16 de noviembre de 2017 .
- ^ "Página de inicio de AiAi – Stephen Tavener". mrraow.com . Archivado desde el original el 6 de septiembre de 2015. Consultado el 16 de noviembre de 2017 .
- ^ "Hilo de anuncio de Ai Ai". BoardGameGeek . Archivado desde el original el 2017-11-16 . Consultado el 2017-11-16 .
- ^ "El proyecto PolyGamo Player | Lenguajes de programación y reproductores generales para juegos abstractos y rompecabezas". www.polyomino.com . Archivado desde el original el 23 de septiembre de 2002 . Consultado el 16 de noviembre de 2017 .
- ^ Kowalski, Jakub; Mika, Maksymilian; Sutowicz, Jakub; Szykuła, Marek (17 de julio de 2019). "Juegos de mesa habituales". Actas de la Conferencia AAAI sobre Inteligencia Artificial . 33 (1): 1699-1706. doi : 10.1609/aaai.v33i01.33011699 . ISSN 2374-3468. S2CID 20296467.
- ^ Kowalski, Jakub; Miernik, Radoslaw; Mika, Maksymilian; Pawlik, Wojciech; Sutowicz, Jakub; Szykula, Marek; Tkaczyk, Andrzej (2020). "Razonamiento eficiente en juegos de mesa habituales". Conferencia IEEE sobre Juegos (CoG) 2020 . págs. 455–462. arXiv : 2006.08295 . doi : 10.1109/cog47356.2020.9231668. ISBN 978-1-7281-4533-4. S2CID 219687404 . Consultado el 19 de noviembre de 2023 .
- ^ "Portal de Ludii | Inicio del sistema de juego general de Ludii". www.ludii.games . Archivado desde el original el 2021-10-27 . Consultado el 2021-10-27 .
- ^ "Proyecto Digital Ludeme | Modelización de la evolución de los juegos tradicionales". www.ludeme.eu . Archivado desde el original el 2021-10-02 . Consultado el 2021-10-27 .
- ^ Piette, E.; Soemers, DJNJ; Stephenson, M.; Sironi, C.; Stephenson, M.; Winands MHM; Browne, C. (2020). «Ludii – El sistema de juego general ludémico» (PDF) . Conferencia Europea sobre Inteligencia Artificial (ECAI 2020), Santiago de Compostela . Archivado (PDF) desde el original el 21 de enero de 2022. Consultado el 27 de octubre de 2021 .
- ^ Nielsen, Thorbjørn S.; Barros, Gabriella AB; Togelius, Julian; Nelson, Mark J. "Hacia la generación de reglas de juegos arcade con VGDL" (PDF) . Archivado (PDF) desde el original el 2015-09-12 . Consultado el 2018-02-24 .
- ^ ab Levine, John; Congdon, Clare Bates; Ebner, Marc; Kendall, Graham; Lucas, Simon M.; Miikkulainen Risto, Schaul; Tom, Thompson; Tommy. "Jugando a videojuegos en general" (PDF) . Archivado (PDF) desde el original el 2016-04-18 . Consultado el 2016-04-09 .
- ^ Neufeld, Xenija; Mostaghim, Sanaz; Perez-Liebana, Diego. "Generación de niveles procedimentales con programación de conjuntos de respuestas para juegos de video en general" (PDF) . Archivado (PDF) desde el original el 28 de marzo de 2016 . Consultado el 24 de febrero de 2018 .
- ^ Świechowski, Maciej; Park, Hyunsoo; Mańdziuk, Jacek; Kim, Kyung-Joong (2015). "Avances recientes en el juego en general". The Scientific World Journal . 2015 . Hindawi Publishing Corporation: 986262. doi : 10.1155/2015/986262 . PMC 4561326 . PMID 26380375.
- ^ ab "Búsqueda de árboles de Montecarlo para juegos generales". ResearchGate . Consultado el 1 de abril de 2016 .
- ^ Finnsson, Hilmar (2012). "Extensiones de búsqueda de árboles de Montecarlo generalizadas para juegos generales". Actas de la vigésimo sexta conferencia de la AAAI sobre inteligencia artificial . Archivado desde el original el 15 de octubre de 2013. Consultado el 9 de abril de 2016 .
- ^ Frydenberg, Frederik; Anderson, Kasper R.; Risi, Sebastian; Togelius, Julian. "Investigación de las modificaciones de MCTS en el juego de videojuegos en general" (PDF) . Archivado (PDF) desde el original el 2016-04-12 . Consultado el 2016-04-09 .
- ^ M. Swiechowski; J. Mandziuk; YS Ong, "Especialización de un programa de juego general basado en UCT para juegos de un solo jugador", en IEEE Transactions on Computational Intelligence and AI in Games , vol.PP, no.99, pp.1-1 doi :10.1109/TCIAIG.2015.2391232
- ^ "Cambiar el nodo raíz de un paso anterior del juego". Archivado desde el original el 17 de enero de 2021.
DBS: un algoritmo de búsqueda en amplitud dirigida (DBS)
- ^ ab Perez, Diego; Dieskau, Jens; Hünermund, Martin. "Búsqueda en bucle abierto para jugar videojuegos en general" (PDF) . Archivado (PDF) desde el original el 28 de marzo de 2016 . Consultado el 9 de abril de 2016 .
- ^ Jesper Juul. Half-Real: Videojuegos entre reglas reales y mundos ficticios. MIT Press, 2005.
Enlaces externos
- Página de inicio de juegos generales en la Universidad de Stanford
- Consulte también GGP.org, la página de GitHub de GGP.org y games.stanford.edu.
- Recursos generales para juegos proporcionados por la Universidad Tecnológica de Dresde.
- AiAi de Stephen Tavener
- Proyecto PolyGamo Player de David M. Bennett
- Kit de desarrollo Axiom, un sistema de desarrollo de metajuegos compatible con Zillions of Games, de Greg Schmidt.
- Palamedes: un entorno de desarrollo integrado para juegos generales
- Demostración de aprendizaje profundo Q de ConvNetJS