Computer Arimaa se refiere a jugar al juego de mesa Arimaa mediante programas informáticos .
En 2002, el ingeniero informático indio-estadounidense Omar Syed publicó las reglas de Arimaa y anunció un premio de 10 000 dólares, disponible anualmente hasta 2020, para el primer programa informático (que se ejecutara en hardware estándar comercial) capaz de derrotar a cada uno de los tres mejores jugadores humanos en una serie de tres partidas. [ 1 ] El premio se reclamó en 2015, cuando un programa informático jugó 7:2 contra tres jugadores humanos. [ 2 ] El juego ha sido objeto de varios artículos de investigación .
Espacio estatal de Arimaa
Apertura
El número de formas diferentes en que cada jugador puede colocar sus piezas al comienzo del juego es:
El jugador puede colocar 8 conejos en 16 casillas posibles, seguidos de 2 gatos en las 8 casillas restantes, 2 perros en las 6 casillas restantes, 2 caballos en las cuatro casillas restantes, un camello en una de las dos casillas restantes y el elefante en la última casilla sin usar.
Dado que cada jugador puede comenzar el juego con una de las 64.864.800 configuraciones iniciales, el espacio de estados total para la apertura es:
Como dijo Christ-Jan Cox en su tesis de maestría, debido a que el número de estados iniciales posibles es tan grande, "[e]s deduce que es muy difícil desarrollar bases de datos completas de movimientos de apertura". [ 3 ] [ 4 ]
técnicas de inteligencia artificial
Evaluación de materiales
Es importante que el ordenador pueda evaluar el valor de las piezas en el tablero para determinar si conviene capturarlas o intercambiarlas. La evaluación del valor relativo de las piezas es un área de investigación actual de Arimaa. Algunos sistemas que se utilizan actualmente son DAPE y FAME.
Técnicas utilizadas en los bots de Arimaa
Algunos o todos los programas de inteligencia artificial que juegan a Arimaa utilizan las siguientes técnicas:
Técnicas poco utilizadas en los bots de Arimaa
Rendimiento informático
Diversos aspectos de Arimaa dificultan que los programas informáticos derroten a buenos jugadores humanos. Dado el gran esfuerzo invertido en el desarrollo de software de ajedrez de alto nivel , resulta especialmente relevante comprender por qué las técnicas aplicables al ajedrez son menos efectivas en Arimaa.
Búsqueda por fuerza bruta
Los programas de ajedrez más sencillos utilizan la búsqueda por fuerza bruta combinada con la evaluación estática de posiciones, donde la ventaja material es primordial. Analizan muchísimos movimientos posibles, pero no son tan buenos (en comparación con los humanos) para determinar quién gana al final de una serie de movimientos, a menos que un bando tenga más piezas que el otro. Lo mismo ocurre con los programas Arimaa, pero sus resultados no son tan buenos en la práctica.
Cuando se aplica la búsqueda por fuerza bruta a Arimaa, la profundidad de la búsqueda está limitada por la enorme cantidad de opciones que cada jugador tiene en cada turno. Desde el punto de vista computacional, la cantidad de opciones disponibles para un jugador determina la cantidad de caminos diferentes que puede seguir el juego. Esto se conoce como factor de ramificación . El factor de ramificación promedio en una partida de ajedrez es de aproximadamente 35, [ 5 ] mientras que en Arimaa es de aproximadamente 17 000. [ 6 ]
Estos diferentes factores de ramificación implican que una computadora que puede buscar hasta una profundidad de ocho turnos para cada jugador en ajedrez, solo puede buscar hasta una profundidad de tres turnos para cada jugador en Arimaa:
Poda alfa-beta
La profundidad de búsqueda por fuerza bruta en el software de ajedrez prácticamente se duplica gracias a la poda alfa-beta , que permite al software concluir que un movimiento es mejor que otro sin examinar todas las posibles continuaciones del movimiento más débil. Si el oponente puede anular un movimiento determinado con una sola respuesta, no es necesario examinar otras respuestas, lo que aumenta drásticamente la velocidad de búsqueda. Sin embargo, en Arimaa, el bando que mueve cambia solo cada cuatro pasos, lo que reduce el número de cortes disponibles en una búsqueda por pasos.
Furthermore, the usefulness of alpha-beta pruning is heavily dependent on the order in which moves are considered. Good moves must be considered before bad ones in order for the bad ones to be neglected. In particular, checking and capturing moves are key for pruning, because they are often much better than other moves. In Arimaa software the speedup provided by alpha-beta pruning is less, because captures are rarer. In rated games played on arimaa.com, only 3% of steps result in capture, compared to about 19% of chess moves that result in capture.
In most Arimaa positions, particularly toward the beginning of the game when the board is still crowded, a competent player can avoid losing any pieces within the next two turns. Compared to chess, Arimaa allows either player to delay captures for longer. Indeed, the median move number of the first capture in chess is turn 6, whereas in Arimaa it is turn 12. The struggle is initially more positional in Arimaa, and revolves around making captures unavoidable at some point in the future. This magnifies the importance of correctly judging who is gaining ground in non-material ways. Thus the strength of computer programs (examining millions of positions) is not as significant as their weakness (judging the position apart from who has more pieces).
The weakness of Arimaa programs in the opening phases is further magnified by the setup phase. In chess every game starts from the same position. By compiling before the game a list of stock replies to all standard opening moves, chess programs may often make a dozen or more excellent moves before starting to "think". Humans do the same, but have a smaller and less reliable memory of openings, which puts humans at a relative disadvantage in chess. Arimaa, in contrast, has millions of possible ways to set up the pieces even before the first piece moves. This prevents programs from having any meaningful opening book.
As the game progresses, exchanges and the advancement of rabbits tend to make the position more open and tactical. Arimaa programs typically play better in this sort of position, because they see tactical shots which humans overlook. However, it is usually possible for humans to avoid wide-open positions by conservative play, and to angle for strategic positions in which computers fare worse. Against a conservative opponent it is almost impossible to bust open the position in Arimaa, whereas in chess it is merely difficult. One must beat defensive play by the accumulation of small, long-term advantages, which programs do not do very well.
Una técnica adicional del ajedrez por computadora que no se aplica a Arimaa son las tablas de finales . Las partidas de ajedrez de nivel maestro a veces terminan en finales inciertos con solo unas pocas piezas, por ejemplo rey y caballo contra rey y torre. Es posible construir, mediante análisis retrógrado , una tabla exhaustiva del movimiento correcto en todas esas posiciones. Los programas solo tienen que consultar una tabla pregenerada en tales posiciones, en lugar de "pensar" de nuevo, lo que les da una ventaja relativa sobre los humanos. Arimaa, en cambio, rara vez llega a un final. Los intercambios iguales de piezas son menos comunes que en el ajedrez, por lo que es raro que una partida de Arimaa "termine" y aún así sea incierta. Una partida promedio de Arimaa tiene solo ocho capturas (en comparación con diecisiete en ajedrez), y los mejores humanos a menudo pueden derrotar a los mejores programas en Arimaa sin perder una sola pieza, por ejemplo, la segunda partida del encuentro Challenge de 2014 . Otro ejemplo de baja densidad de capturas es este partido de semifinales del Campeonato Mundial de 2012 , que presenta una sola captura: el sacrificio de un elefante que forzó un gol.
Omar Syed espera que, dado que las técnicas tradicionales de inteligencia artificial solo son moderadamente efectivas para Arimaa, los programadores se vean obligados a utilizar nuevas técnicas para crear un programa de ajedrez potente. La exitosa búsqueda de un programa de ajedrez de nivel mundial ha generado muchas técnicas para jugar partidas con éxito, pero prácticamente no ha contribuido al razonamiento general; de hecho, las técnicas de los programas de ajedrez han sido excluidas de algunas definiciones de inteligencia artificial . Uno de los objetivos de Arimaa es que las técnicas empleadas en su uso contribuyan a los objetivos más amplios de la inteligencia artificial.
La estructura del desafío de Syed, que enfrenta al hombre contra la máquina, se centra en premiar los avances en software de IA, no en hardware. En el desafío anual, los programas se ejecutan en máquinas elegidas y proporcionadas por el propio Syed, con el criterio de que se trate de un ordenador doméstico típico, económico y comercial . El desafío no estaría abierto a quienes requirieran costosos procesadores múltiples, como los que se utilizan para desafiar a jugadores de ajedrez de alto nivel, y mucho menos a algo como la supercomputadora personalizada Deep Blue , a pesar de que el éxito de este enfoque intensivo en hardware inspiró la invención de Arimaa. Syed cree que incluso el ordenador utilizado en el desafío de 2004 (un sistema Pentium 4 de 2,4 GHz con 512 MB de RAM) tenía el hardware suficiente para ganar el premio si hubiera ejecutado el software adecuado. Es posible que las supercomputadoras ya tengan la capacidad de vencer a Arimaa por fuerza bruta utilizando software de IA convencional, y eventualmente los ordenadores personales también la tendrán, si el hardware continúa avanzando al ritmo actual. Por este motivo, el premio del desafío Arimaa se ofreció originalmente solo hasta el año 2020.
Recursos para desarrolladores de software
La interfaz del motor Arimaa , desarrollada por Brian Haskin, define un protocolo que permite que un motor Arimaa se comunique con un controlador.
Según la documentación: "Un motor es un programa capaz de tomar el estado de una partida de Arimaa y seleccionar un movimiento legal para realizar. Un controlador es cualquier cosa que desee comunicarse con un motor y controlarlo. Esto puede ser cualquier cosa, desde un simple script para que el motor analice una sola posición hasta un programa con interfaz gráfica de usuario que permita jugar partidas con humanos u otros motores." [ 7 ]
La interfaz del motor Arimaa incluye una implementación de un motor y un controlador, documentación y varios scripts para controlar el motor y jugar en cualquier sitio web que admita el protocolo, incluido el sitio web oficial de Arimaa. [ 8 ] [ 9 ]
Artículos de investigación
- Wu, David J. (2015). "Diseño de un programa Arimaa ganador" (PDF) . ICGA Journal . 38 (1): 19– 40. doi : 10.3233/ICG-2015-38104 .
- Desafío Arimaa: estudio comparativo de los métodos MCTS y alfa-beta. Tesis de Thomas Jakl (Universidad Carolina de Praga), octubre de 2011.
- Clasificación y evaluación de movimientos en el juego de Arimaa, tesis de David Jian Wu (Harvard College, Cambridge, Massachusetts, EE. UU.), mayo de 2011.
- Arimaa, un nuevo desafío para la inteligencia artificial. Tesis de Stefano Carlini (Universidad de Módena y Reggio Emilia, Italia). Abril de 2010.
- Métodos de MCTS y el juego Arimaa. Tesis de Tomas Kozelek (Universidad Carolina de Praga, República Checa). Diciembre de 2009.
- Modelado del juego de Arimaa con geometría lingüística, artículo de Joséoberto Mercado Vega y Zvi Retchkiman Kösberg (del Instituto Politéico Nacional, presentado en las Actas de la 5ª Conferencia Internacional sobre Inteligencia Computacional y Juegos, Milán, Italia), septiembre de 2009.
- Investigación e implementación de un agente informático para jugar a Arimaa (tesis de Sam Miller, Universidad de Southampton , Reino Unido, mayo de 2009)
- Documento titulado "Planes, patrones y categorías de movimientos que guían una búsqueda altamente selectiva", de Gerhard Trippen (presentado en la conferencia Advances in Computer Games 12 de 2009, Pamplona, España), mayo de 2009.
- Arimaa, ¿el juego de la inteligencia real? presentación de Nicolás A. Barriga (Universidad Técnica Federico Santa María, Chile) Agosto 2006
- Análisis e implementación del juego Arimaa y apéndice B. Tesis de Christ-Jan Cox (Universidad de Maastricht, Instituto de Tecnología del Conocimiento y de Agentes), marzo de 2006.
- Tesis sobre la creación de un programa robusto para jugar a Arimaa, de Haizhi Zhong (Universidad de Alberta, Departamento de Ciencias de la Computación), septiembre de 2005.
- Documento del programa Arimaa para la creación de un campeón mundial, por David Fotland (www.Smart-Games.com), 2004.
- Arimaa: Un nuevo juego diseñado para ser difícil para las computadoras. Artículo de Omar Syed y Aamir Syed; Revista de la Asociación Internacional de Juegos de Computadora ; junio de 2003.
Notas a pie de página
- ↑ Syed, Omar; Syed, Aamir (2003). "Arimaa: un nuevo juego diseñado para ser difícil para las computadoras". Revista de la Asociación Internacional de Juegos de Computadora . 26 : 138–139 .
- ↑ Arimaa: ¿Fin del juego?
- ↑ Cox, Christ-Jan (marzo de 2006). ANÁLISIS E IMPLEMENTACIÓN DEL JUEGO ARIMAA (PDF) (Tesis de maestría). Maastricht, Países Bajos: Universidad de Maastricht.
- ↑ "Cómo desarrollar un bot para Arimaa" .
- ↑ François Dominic Laramée. "Programación de ajedrez Parte IV: Búsqueda básica" . GameDev.net. Archivado del original el 14 de mayo de 2007. Consultado el 1 de mayo de 2007 .
- ↑ Brian "Janzert" Haskin. "Una mirada al factor de ramificación de Arimaa" . janzert.com/ . Archivado del original el 7 de noviembre de 2009. Consultado el 25 de noviembre de 2009 .
- ↑ "Interfaz del motor Arimaa (AEI)" .
- ↑ "AEI Readme" . Proyectos Arimaa de Janzert . Archivado del original el 4 de marzo de 2016.
- ↑ "Cómo desarrollar un bot para Arimaa" .
- concursos de informática
- Inteligencia artificial en juegos