El go ha sido un tema fértil de investigación en inteligencia artificial durante décadas, que culminó en 2017 con AlphaGo Master ganando tres de tres partidas contra Ke Jie, quien en ese momento lideraba el escalafón mundial durante dos años.
[1][2] Go es un juego de mesa complejo que requiere intuición, pensamiento creativo y estratégico.
Antes de AlphaGo, algunos investigadores habían afirmado que las computadoras nunca vencerían a los mejores humanos en go.
[22] Esta fue la primera vez que un maestro de 9 dan jugó un encuentro profesional contra una computadora sin handicap.
Además, estos programas clásicos no obtuvieron casi nada de los aumentos en la potencia informática disponible per se, y el progreso en el campo fue en general lento.
El tablero grande (19 × 19, 361 intersecciones) se considera a menudo como una de las principales razones por las que es difícil crear un programa sólido.
[31] Continuando con la comparación con el ajedrez, los movimientos de Go no están tan limitados por las reglas del juego.
Este número aumenta rápidamente a medida que se rompe la simetría, y pronto deben evaluarse casi todos los 361 puntos del tablero.
Más de un movimiento puede considerarse el mejor según la estrategia que se utilice.
Para elegir un movimiento, la computadora debe evaluar diferentes resultados posibles y decidir cuál es el mejor.
Si se trata de un buen intercambio o no, puede ser una decisión difícil, incluso para los jugadores humanos.
La complejidad computacional también se muestra aquí, ya que un movimiento podría no ser inmediatamente importante, pero después de muchos movimientos podría volverse muy importante a medida que otras áreas del tablero toman forma.
Los problemas NP-completos no tienden, en su caso general, a ser más fáciles para humanos sin ayuda que para computadoras adecuadamente programadas: es dudoso que los humanos sin ayuda puedan competir exitosamente contra computadoras para resolver, por ejemplo, casos del problema de suma de subconjuntos.
La aplicación de números surreales al final del juego en go, un análisis general del juego iniciado por John H. Conway, ha sido desarrollado por Elwyn R. Berlekamp y David Wolfe y descrito en su libro Mathematical Go (ISBN 978-1-56881- 032-4).
Calcular directamente cuándo se requiere una mudanza local específica puede ser difícil.
Con el algoritmo de Benson, es posible determinar las cadenas que están incondicionalmente vivas y, por lo tanto, no necesitarían ser revisadas en el futuro por seguridad.
Históricamente, las técnicas GOFAI (Good Old Fashioned AI) se han utilizado para abordar el problema de la inteligencia artificial en el go.
Sin embargo, esta decisión se ve dificultada por la amplia gama de impactos que una sola piedra puede tener en todo el tablero y las complejas interacciones que los grupos de varias piedras pueden tener entre sí.
Sin embargo, ambas opciones presentan un riesgo significativo de no considerar un movimiento vital que hubiera cambiado el curso del juego.
Sin embargo, como todo jugador sabe, un solo movimiento malo puede arruinar un buen juego.
Rendimiento del programa sobre un juego completo puede ser mucho más bajo que el nivel maestro".
Algunos programas que utilizan técnicas de Monte-Carlo son Fuego,[47] The Many Faces of Go v12,[48] Leela,[49] MoGo,[50] Crazy Stone, MyGoFriend,[51] y Zen.
Las primeras aplicaciones exitosas de los métodos UCT para 19x19 Go incluyen MoGo, Crazy Stone y Mango.
Otros programas que utilizan redes neuronales anteriormente han sido NeuroGo y WinHonte.
Al ganador de este torneo se le permitió desafiar a jugadores jóvenes con hándicap en un encuentro corto.
En la práctica, como en el servidor KGS Go, el servidor puede mediar en una disputa enviando un comando GTP especial a los dos programas cliente indicando que deben continuar colocando piedras hasta que no haya dudas sobre el estado de ningún grupo en particular (todas las piedras muertas han sido capturados).
El principal inconveniente del sistema anterior es que algunos conjuntos de reglas (como las reglas japonesas tradicionales) penalizan a los jugadores por realizar estos movimientos adicionales, lo que impide el uso de playout adicional para dos computadoras.
Históricamente, otro método para resolver este problema era que un humano experto juzgara la junta final.
GoGUI y su complemento gogui-twogtp se pueden usar para jugar dos motores uno contra el otro en un solo sistema informático.
Para jugar con la mayor variedad posible de oponentes, el servidor KGS Go permite a dos motores jugar entre sí, así como partidas de un motor contra humanos tanto en partidas clasificadas como no clasificadas.