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 usando un algoritmo especialmente diseñado, que no se puede transferir a otro contexto. Por ejemplo, un programa de computadora que juega al ajedrez no puede jugar a las damas . El juego general se considera un hito necesario en el camino hacia la Inteligencia General Artificial . [4]
El juego general de videojuegos ( GVGP ) es el concepto de GGP ajustado al propósito de jugar videojuegos . Para los videojuegos, las reglas del juego deben ser aprendidas en múltiples iteraciones por jugadores artificiales como TD-Gammon , [5] o predefinidas manualmente en un lenguaje específico de dominio y enviadas por adelantado a jugadores artificiales [6] [7] como en GGP tradicional. A partir de 2013, se lograron avances significativos siguiendo el enfoque de aprendizaje por 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 juego general fue Zillions of Games en 1998. También se propuso el juego general para los agentes comerciales en la gestión de la cadena de suministro bajo 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 de juegos automatizada. Luego, Pell desarrolló el sistema Metagamer . [19] Este sistema fue capaz de jugar una serie de juegos similares al ajedrez, dada la definición de las reglas del juego en un lenguaje especial llamado Game Description Language (GDL), sin ninguna interacción humana una vez que se generaron los juegos. [20]
En 1998, Jeff Mallett y Mark Lefler desarrollaron el sistema comercial Zillions of Games . El sistema utilizó un lenguaje similar a LISP para definir las reglas del juego. Millones de juegos derivaron la función de evaluación automáticamente de las reglas del juego basadas en la movilidad de las piezas, la estructura del tablero y los objetivos del juego. También empleó algoritmos habituales como los 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 metajuegos alternativo que incorpora un lenguaje de programación completo basado en Forth.
En 1998, z-Tree fue desarrollado por Urs Fischbacher . [22] z-Tree es la primera y más citada herramienta de software para la 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 estableció el Stanford Project General Game Playing . [3]
En 2012, comenzó el desarrollo de PyVGDL. [24]
Implementaciones de GGP
Proyecto 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 para estandarizar GGP AI y, en general, se considera el estándar para los sistemas GGP. Los juegos se definen mediante conjuntos de reglas representadas en el lenguaje de descripción de juegos . Para jugar los juegos, 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 sobre los cambios de estado.
Desde 2005, ha habido competencias anuales de Juego General en la Conferencia AAAI . La competencia evalúa las habilidades de la IA de la competencia para jugar una variedad de juegos diferentes, registrando su desempeño en cada juego individual. En la primera etapa de la competencia, los participantes son juzgados por su habilidad para realizar movimientos legales, ganar ventaja y completar 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 competencia, y hasta 2013 su creador solía ganar un premio de $ 10,000. [19] Hasta ahora, los siguientes programas salieron victoriosos: [27]
Año | Nombre | Desarrollador | Institución | Árbitro |
---|---|---|---|---|
2005 | Cluneplayer | Jim Clune | UCLA | |
2006 | Fluxplayer | Stephan Schiffel y Michael Thielscher | Universidad Tecnológica de Dresde | [28] |
2007 | Cadiaplayer | Yngvi Björnsson y Hilmar Finnsson | Universidad de Reykjavik | [29] |
2008 | Cadiaplayer | Yngvi Björnsson, Hilmar Finnsson y Gylfi Þór Guðmundsson | Universidad de Reykjavik | |
2009 | Ary | Jean Méhat | Universidad Paris 8 | |
2010 | Ary | Jean Méhat | Universidad Paris 8 | |
2011 | TurboTurtle | Sam Schreiber | ||
2012 | Cadiaplayer | Hilmar Finnsson e Yngvi Björnsson | Universidad de Reykjavik | |
2013 | TurboTurtle | Sam Schreiber | ||
2014 | Sancho | Steve Draper y Andrew Rose | [30] | |
2015 | Galvanizar | Richard Emslie | ||
2016 | Madera Stock | Eric Piette | Universidad de Artois |
Otros enfoques
Hay otros sistemas de juego generales, que utilizan sus propios lenguajes para definir las reglas del juego. Otro software de juego general incluye:
- Un sistema llamado FRAMASI desarrollado a partir de 2009. [31] [32]
- Un sistema llamado AiAi por Stephen Tavener (desarrollador anterior de Zillions) [33] que se remonta a 2015 y se desarrolló activamente a finales de 2017. [34] [35]
- Un sistema llamado PolyGamo Player de David M. Bennett lanzado en septiembre de 2017 basado en el motor de juego Unity . [36]
Implementaciones de GVGP
Aprendizaje reforzado
GVGP podría usarse para crear automáticamente IA de videojuegos reales , así como para "probar entornos de juego, incluidos los creados automáticamente mediante la generación de contenido procedimental y para encontrar posibles lagunas en el juego que un jugador humano podría explotar". [7] GVGP también se ha utilizado para generar reglas de juego y estimar la calidad de un juego según 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. [37]
Idioma de descripción del videojuego
La Competencia General de Inteligencia Artificial de Videojuegos ( GVGAI ) se lleva a cabo desde 2014. En esta competencia, se utilizan videojuegos bidimensionales similares (y a veces basados en) los juegos de arcade y consola de la década de 1980 en lugar de los juegos de mesa utilizados en el GGP competencia. Ha ofrecido una forma para que los investigadores y profesionales prueben y comparen sus mejores algoritmos generales de juego de videojuegos. 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 y comandos simples 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. [38] 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. 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). Luego, GVGP se puede utilizar para probar la validez de los niveles de procedimiento, así como la dificultad o la calidad de los niveles según el desempeño de un agente. [39]
Algoritmos
Dado que GGP AI debe estar diseñado para jugar múltiples juegos, su diseño no puede depender de 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 la salida de estados anteriores. Por esta razón, las técnicas de circuito abierto suelen ser las más eficaces. [40]
Un método popular para desarrollar GGP AI es el algoritmo de búsqueda de árbol de Monte Carlo (MCTS). [41] A menudo utilizado junto con el método UCT ( Upper Confidence Bound aplicado a árboles ), se han propuesto variaciones de MCTS para jugar mejor a ciertos juegos, así como para hacerlo compatible con los videojuegos. [42] [43] [44] Otra variación de los algoritmos de búsqueda de árboles utilizados es la búsqueda dirigida en amplitud primero (DBS), [45] en la que se crea un nodo secundario al estado actual para cada acción disponible y visita cada niño ordenado por la recompensa promedio más alta, hasta que el juego termine o se acabe el tiempo. [46] En cada método de búsqueda de árbol, la IA simula acciones potenciales y clasifica cada una según la recompensa promedio más alta de cada ruta, en términos de puntos ganados. [41] [46]
Supuestos
Para 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 es adjunto a los resultados, y el juego tiene consecuencias negociables. [47] Usando estas suposiciones, la IA de juego se puede crear cuantificando la entrada del jugador, los resultados del juego y cómo se aplican las diversas reglas, y usando algoritmos para calcular la ruta más favorable. [38]
Ver también
- AlphaZero
- MuZero
- Inteligencia artificial general
- Inteligencia artificial en videojuegos
- Lenguaje de entretenimiento específico del dominio
- Idioma de descripción del juego
- Aprendizaje multitarea
- Esquema de la inteligencia artificial
- Transferir aprendizaje
Referencias
- ^ Pell, Barney (1992). H. van den Herik; L. Allis (eds.). "Metagame: un nuevo desafío para los juegos y el aprendizaje" [Programación heurística en inteligencia artificial 3: la tercera olimpiada informática] (PDF) . Ellis-Horwood. Cite journal requiere
|journal=
( ayuda ) - ^ 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 .
- ^ a b Genesereth, Michael; Con amor, Nathaniel; Pell, Barney (15 de junio de 2005). "Juego general: descripción general de la competencia AAAI". Revista AI . 26 (2): 62. doi : 10.1609 / aimag.v26i2.1813 . ISSN 2371-9621 .
- ^ Canaán, Rodrigo; Salge, Christoph; Togelius, Julian; Nealen, Andy (2019). Nivelación del campo de juego [ Actas de la 14ª Conferencia Internacional sobre la nivelación del campo de juego: equidad en la IA frente a los puntos de referencia del juego humano ]. dl.acm.org . págs. 1–8. doi : 10.1145 / 3337722 . ISBN 9781450372176. S2CID 58599284 .
- ^ a b 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 de sistemas de procesamiento de información neuronal 2013 . Consultado el 25 de abril de 2015 .
- ^ a b 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) : 1–8. CiteSeerX 10.1.1.360.2263 . doi : 10.1109 / CIG.2013.6633610 . ISBN 978-1-4673-5311-3. S2CID 812565 .
- ^ a b Levine, John; Congdon, Clare Bates; Ebner, Marc; Kendall, Graham; Lucas, Simon M .; Miikkulainen, Risto; Schaul, Tom; Thompson, Tommy (2013). "Reproducción de videojuegos en general" . Inteligencia artificial y computacional en juegos . Schloss Dagstuhl – Leibniz-Zentrum fuer Informatik. 6 : 77–83 . Consultado el 25 de abril de 2015 .
- ^ Bolos, 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; Silver, David; Rusu, Andrei A .; Veness, Joel; Hassabis, Demis; Bellemare, Marc G .; Graves, Alex; Riedmiller, Martin; Fidjeland, Andreas K .; Stig Petersen, Georg Ostrovski; Beattie, Charles; Sadik, Amir; Antonoglou, Ioannis; Rey, Helen; Kumaran, Dharshan; Wierstra, Daan; Legg, Shane (26 de febrero de 2015). "Control a nivel humano a través del aprendizaje por refuerzo profundo". Naturaleza . 518 (7540): 529–533. Código Bib : 2015Natur.518..529M . doi : 10.1038 / nature14236 . PMID 25719670 . S2CID 205242740 .
- ^ Korjus, Kristjan; Kuzovkin, Ilya; Tampuu, Ardi; Pungas, Taivo (2014). "Replicando el papel" Jugando Atari con aprendizaje de refuerzo profundo " " (PDF) . Universidad de Tartu . Consultado el 25 de abril de 2015 .
- ^ Guo, Xiaoxiao; Singh, Satinder; Lee, Honglak; Lewis, Richard L .; Wang, Xiaoshi (2014). "Aprendizaje profundo para el juego Atari en tiempo real utilizando la planificación de búsqueda de árboles de Montecarlo sin conexión" (PDF) . Procedimientos NIPS β . Conferencia sobre sistemas de procesamiento de información neuronal . Consultado el 25 de abril de 2015 .
- ^ Murphy, Tom (2013). "El primer nivel de Super Mario Bros. es fácil con pedidos lexicográficos y viajes en el tiempo ... después de eso se vuelve un poco complicado " (PDF) . SIGBOVIK . Consultado el 25 de abril de 2015 .
- ^ Murphy, Tom. "learnfun & playfun: Una técnica general para automatizar juegos de NES" . 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 pedidos lexicográficos y" . Un friki con sombrero . 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 de maestría. Minneapolis, MN: Universidad de Minnesota. S2CID 167336006 . Cite journal requiere
|journal=
( ayuda ) - ^ Zhang, Dongmo (2009). Desde descripciones generales de juegos hasta un lenguaje de especificación de mercado para agentes comerciales en general [ Comercio electrónico mediado por agentes . Diseño de estrategias y mecanismos de negociación para mercados electrónicos. ]. Berlín, Heidelberg: Springer. págs. 259-274. Código bibliográfico : 2010aecd.book..259T . CiteSeerX 10.1.1.467.4629 .
- ^ "AGAPE - un lenguaje de subasta para jugadores de subasta general" . AGAPE (en francés) . Consultado el 5 de marzo de 2020 .
- ^ Michael, Friedrich; Ignatov, Dmitry (2019). "Negociaciones de precios B-to-B de juego general" (PDF) . Actas del Taller CEUR . -2479: 89–99 . Consultado el 5 de marzo de 2020 .
- ^ a b Investigación de Barney Pell sobre juegos de computadora Archivado el 12 de agosto de 2007 en Wayback Machine .
- ^ "Metagame y juego general" . Metagame y juego general . Consultado el 27 de marzo de 2016 .
- ^ Disponible: correo electrónico de Universal Game Engine a comp.ai.games por Jeff Mallett, 10 de diciembre de 1998.
- ^ "UZH - z-Tree - Caja de herramientas de Zurich para experimentos económicos confeccionados" . www.ztree.uzh.ch . 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étrico y asimétrico". Red de Investigación en Ciencias Sociales. SSRN 968942 . Cite journal requiere
|journal=
( ayuda ) - ^ a b Schaul, Tom (7 de febrero de 2020). "schaul / py-vgdl" .
- ^ Servidor GGP , plataforma para la competencia de sistemas de juego en general.
- ^ Dresden GGP Server , plataforma para la competencia de sistemas de juego general con programación automática de partidos.
- ^ "Juego general" . www.general-game-playing.de .
- ^ Información sobre Fluxplayer , el ganador del segundo concurso internacional general de juego.
- ^ Información sobre CADIAPlayer , más información sobre el ganador de la 3ª, 4ª y 8ª Competencias Internacionales de Juego General.
- ^ ¡ Sancho es campeón de GGP 2014! , ganador de la competencia 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) . Oporto, Portugal. págs. 587–590. ISBN 978-989-8111-66-1.
- ^ Tagiew, Rustam (2011). Strategische Interaktion realer Agenten Ganzheitliche Konzeptualisierung und Softwarekomponenten einer interdisziplinären Forschungsinfrastruktur (neue Ausg ed.). Saarbrücken. ISBN 9783838125121.
- ^ "Millones de juegos: ¿quiénes somos?" . www.zillions-of-games.com . Consultado el 16 de noviembre de 2017 .
- ^ "Página de inicio de AiAi - Stephen Tavener" . mrraow.com . Consultado el 16 de noviembre de 2017 .
- ^ "Hilo de anuncio de Ai Ai" . BoardGameGeek . Consultado el 16 de noviembre de 2017 .
- ^ "The PolyGamo Player Project | Lenguajes de programación y reproductores generales para juegos abstractos y rompecabezas" . www.polyomino.com . Consultado el 16 de noviembre de 2017 .
- ^ Nielsen, Thorbjørn S .; Barros, Gabriella AB; Togelius, Julian; Nelson, Mark J. "Hacia la generación de reglas de juegos de arcade con VGDL" (PDF) .
- ^ a b Levine, John; Congdon, Clare Bates; Ebner, Marc; Kendall, Graham; Lucas, Simon M .; Miikkulainen Risto, Schaul; Tom, Thompson; Tommy. "Reproducción de videojuegos en general" (PDF) .
- ^ Neufeld, Xenija; Mostaghim, Sanaz; Pérez-Liébana, Diego. "Generación de nivel de procedimiento con programación de conjuntos de respuestas para la reproducción de videojuegos en general" (PDF) .
- ^ Świechowski, Maciej; Park, Hyunsoo; Mańdziuk, Jacek; Kim, Kyung-Joong (2015). "Avances recientes en el juego general" . The Scientific World Journal . Hindawi corporación editorial. 2015 : 986262. doi : 10.1155 / 2015/986262 . PMC 4561326 . PMID 26380375 .
- ^ a b "Búsqueda de árboles de Monte-Carlo para el juego general" . ResearchGate . Consultado el 1 de abril de 2016 .
- ^ Finnsson, Hilmar (2012). "Extensiones de búsqueda de árbol de Montecarlo generalizadas para el juego general" . Actas de la XXVI Conferencia AAAI sobre Inteligencia Artificial .
- ^ Frydenberg, Frederik; Anderson, Kasper R .; Risi, Sebastián; Togelius, Julian. "Investigación de modificaciones de MCTS en la reproducción general de videojuegos" (PDF) .
- ^ M. Swiechowski; J. Mandziuk; YS Ong, "Especialización de un programa general de juego 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" .
DBS: un algoritmo de búsqueda de amplitud dirigida (DBS)
- ^ a b Pérez, Diego; Dieskau, Jens; Hünermund, Martin. "Búsqueda de bucle abierto para reproducción de videojuegos en general" (PDF) .
- ^ Jesper Juul. Half-Real: Videojuegos entre reglas reales y mundos ficticios. Prensa del MIT, 2005.
enlaces externos
- Página de inicio de juego general en la Universidad de Stanford
- Consulte también la página del curso CS227B - General Game Playing , GGP.org , la página de GitHub de GGP.org y games.stanford.edu .
- Recursos generales de juego proporcionados por la Universidad Tecnológica de Dresde.
- AiAi por Stephen Tavener
- Proyecto PolyGamo Player por David M. Bennett
- Kit de desarrollo Axiom, un sistema de desarrollo de metajuegos compatible con Zillions of Games, de Greg Schmidt.
- Palamedes : un IDE de juego general
Video
- La competencia general de inteligencia artificial de videojuegos
- Demostración de aprendizaje profundo de ConvNetJS