Ir a la computadora

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 24 de marzo de 2020; las comprobaciones requieren 6 ediciones .

Computer Go  es una rama de la inteligencia artificial para crear programas de computadora que juegan Go .

Las personas sienten que son mejores en Go que las computadoras porque las comparan con los humanos. "Tal vez no es que las computadoras jueguen mal, sino que la gente lo juega demasiado bien". Go, en comparación con otros juegos de información completa, tiene características que lo hacen especialmente fácil de jugar para las personas. Las piedras no se mueven como piezas de ajedrez, no cambian de color como en reversi. Estas características permiten a las personas calcular largas cadenas de movimientos, lo cual es muy difícil para una máquina.

Sin embargo, en esas raras ocasiones en que las piedras se capturan repetidamente y se reproducen en los mismos puntos, los humanos tienen problemas mientras que son fáciles para las computadoras.

Obstáculos a los programas

Durante mucho tiempo, se consideró que el Go informático era significativamente diferente del ajedrez informático , ya que los métodos basados ​​en la búsqueda rápida en comparación con la experiencia humana, combinados con un conocimiento del dominio relativamente bajo, no serían efectivos para el Go. Por lo tanto, se ha invertido mucho esfuerzo en el campo de la computadora Go en combinar el conocimiento experto con la búsqueda local para responder preguntas sobre la naturaleza táctica del juego. El resultado de estos esfuerzos fueron programas que pudieron encontrar buenas soluciones en algunas situaciones locales, pero tenían debilidades obvias en el procesamiento general del juego. Además, estos programas clásicos recibieron poca potencia de reproducción a medida que el hardware se hizo más potente y, por lo tanto, el desarrollo en esta área fue generalmente lento. Por lo tanto, se creía que un programa que funciona bien en Go solo se puede crear en un futuro lejano y solo con la ayuda del conocimiento general en el campo de la inteligencia artificial acumulado en ese momento. Incluso escribir un programa que pudiera determinar el ganador de un juego completo se percibía como una tarea no trivial.

En 2006 surgieron programas basados ​​en la búsqueda de Montecarlo . La fuerza del juego de la inteligencia artificial ha mejorado. Pero la brecha con el nivel de juego de los jugadores profesionales de Go se mantuvo, y fue significativa.

Sin embargo, en 2015, un programa informático ( AlphaGo , de DeepMind ) ganó por primera vez un partido igualado contra un profesional ( Fan Hui , 2º dan profesional) (con una puntuación de 5-0) [1] .

En marzo de 2016, AlphaGo derrotó al profesional Lee Sedol en los primeros tres sets de cinco juegos. [2] Esta fue la primera vez que un profesional de 9 dan, uno de los jugadores más fuertes del mundo, jugó una computadora sin discapacidad. [3] En el cuarto juego, Li pudo ganar, pero la computadora ganó el quinto juego, por lo que el partido terminó con una puntuación de 4:1. [4] [5] (ver detalles: Partido AlphaGo vs. Lee Sedol )

En mayo de 2017, en el Future of Go Summit , se disputó un mini-match de 3 juegos entre AlphaGo y uno de los jugadores más fuertes del mundo, el líder del ranking mundial Elo Ke Jie , donde todos los juegos fueron ganados por el programa [6] [7] [8 ] . En el mismo foro, AlphaGo derrotó a un equipo de 5 profesionales del noveno dan ( Mi Yuting (Nº 3 en el ranking de los jugadores más fuertes, calificación antes del partido 3571 puntos), Chen Yaoye (Nº 8, 3513)) , Zhou Ruiyang (Nº 10, 3509), Xi Yue (Nº 11, 3508), Tang Weixing (Nº 18, 3474)) [9] .

Tablero demasiado grande

El tablero grande (19x19, 361 intersecciones) a menudo se menciona como un obstáculo importante para crear programas de Go sólidos. El problema con el tablero grande es que evita búsquedas profundas de poda alfa-beta .

Hasta el momento, el tablero más grande en el que se ha llevado a cabo una enumeración completa de posiciones es un tablero de 6x7 [10] .

Gran número de movimientos legales

Continuando con la comparación con el ajedrez, cabe señalar que los movimientos en go casi no están limitados por las reglas. Mientras que el primer movimiento en ajedrez se puede hacer de veinte maneras, el primer movimiento en Go tiene 55 opciones, dada la simetría del tablero. Después de los primeros movimientos en diferentes esquinas del tablero, se pierde la simetría de la situación de juego y aumenta el número de movimientos posibles, alcanzando el número de puntos libres en el tablero.

Falta de teoría de apertura "exacta"

La etapa inicial del juego en go - fuseki  - obedece a ciertos principios generales para el desarrollo de configuraciones de piedra, pero se caracteriza por una variedad de movimientos mucho mayor que en el ajedrez. Las novedades pueden ocurrir no en el movimiento 20, sino ya en el tercero o cuarto, y el juego de apertura competente es imposible sin comprender las perspectivas estratégicas de las construcciones que aparecen en el tablero. Joseki (esquemas típicos para jugar una posición en una parte limitada del tablero, en particular, en las esquinas), que en cierto sentido pueden considerarse un análogo de las aperturas de ajedrez desarrolladas, no permiten el uso mecánico y no dan un resultado garantizado, ya que el efecto de su uso depende de la posición general en todo el tablero, por lo que incluso elegir el joseki adecuado para una posición determinada en una esquina en particular es una tarea intelectual difícil.

Ko-lucha libre

La regla del ko a menudo conduce a un cambio dramático en la naturaleza de la lucha, cuyas consecuencias son difíciles de evaluar incluso para un jugador experimentado. De hecho, cada vez es necesario medir las consecuencias de la "no respuesta" a una amenaza de ko (tanto la propia como la del oponente) con el costo de perder la lucha de ko. Una persona tiene que confiar en su experiencia e intuición, mientras que para una computadora estos conceptos son difíciles de formalizar.

La naturaleza aditiva del juego

En el ajedrez, como en muchos otros juegos, durante la partida hay menos piezas sobre el tablero, lo que simplifica la enumeración de jugadas. En go, por el contrario, cada siguiente movimiento agrega una piedra al tablero (aunque es posible retirarlos), creando momentos de juego adicionales.

La técnica de ajedrez no se puede utilizar en go

Los programas de Computer Go han sido durante mucho tiempo mucho más débiles que los programas de ajedrez. Los enfoques que se aplicaron en los programas de ajedrez resultaron ser mediocres en el Go de computadora.

Las reglas del ajedrez se formalizan fácilmente y se pueden presentar a una máquina en una forma conveniente que le permitirá jugar a un alto nivel.

Pero las simples reglas posicionales que se usan en el ajedrez no serán efectivas en Go. Determinar el valor de una piedra requiere un análisis complejo, aunque solo sea para determinar si el grupo al que pertenece está vivo, qué tan grande es la influencia del grupo y qué peligros lo amenazan.

Función de evaluación

Otro desafío es crear una buena función de evaluación para Go. Puede haber varias jugadas buenas en cada jugada, y para elegir la mejor jugada, la computadora debe evaluar los diversos resultados posibles. Esto se convierte en una tarea difícil en Go. Por ejemplo, puede ser posible capturar las piedras del oponente fortificando su grupo en otro lugar. Decidir si tal intercambio es beneficioso puede parecer abrumador incluso para un jugador humano. También puede resultar que moverse a otra parte del tablero y construir allí sea más importante.

Complejidad combinatoria

A veces se menciona que algunos problemas combinatorios difíciles (en realidad, cualquier problema NP-completo ) se pueden transformar aplicados a Go; sin embargo, lo mismo es cierto para otros juegos de mesa, como el ajedrez, generalizados a un tablero de tamaño arbitrario. Los problemas NP-completos no pueden ser resueltos por humanos más rápido que por computadoras: es dudoso que una persona sea capaz, por ejemplo, de resolver el Problema del viajante de comercio en un tiempo comparable al que lo resuelve una computadora. Por lo tanto, la capacidad de aplicar métodos de resolución de problemas NP-completos a la computadora Go no explica la superioridad de los humanos sobre las computadoras en este juego.

Fin del juego

Dado que el juego final de go (yose) contiene menos movimientos posibles que el principio o el medio, uno pensaría que sería mucho más fácil para una computadora jugar esta parte del juego. Pero aquí también hubo problemas:

Por lo tanto, es muy difícil programar un algoritmo eficiente incluso para jugar la etapa final de Go, y mucho menos el juego completo [11] .

Por qué la gente jugaba Go mejor que la computadora

Las personas sienten que son mejores en Go que las computadoras porque las comparan con los humanos. “Tal vez no es que las computadoras jueguen mal, sino que la gente lo juega demasiado bien” [12] . Go, en comparación con otros juegos de información completa, tiene características que lo hacen especialmente fácil de jugar para las personas. Las piedras no se mueven como las piezas de ajedrez, no cambian de color como en el reversi . Estas características permiten a las personas calcular largas cadenas de movimientos, lo cual es muy difícil para una máquina.

Sin embargo, en esas raras ocasiones en que las piedras se capturan repetidamente y se reproducen en los mismos puntos, los humanos tienen problemas mientras que son fáciles para las computadoras.

Búsqueda táctica

Una parte muy importante del juego de Go, que trata de determinar qué grupos de piedras pueden sobrevivir y cuáles pueden ser capturadas, se conoce como "vida o muerte". La estrategia más directa para determinar la vida y la muerte es construir un árbol de búsqueda de movimientos que afecten al grupo en cuestión y determinar el estado del grupo en los nodos finales de ese árbol.

Sin embargo, dentro de los límites de tiempo y RAM disponible, es imposible determinar con total precisión qué movimientos afectan al grupo seleccionado. No es raro, por ejemplo, que se produzcan situaciones en las que la vida de un grupo solo pueda asegurarse capturando a otro. Esto significa que para resolver el problema en cuestión, se deben aplicar algunas heurísticas para determinar los movimientos que se deben considerar. Como resultado, los programas que juegan Go muestran una correlación entre el tiempo dedicado a pensar y la calidad de determinar la viabilidad de los grupos.

El problema de la presentación

Hay un problema de representación de posición en Go para programas. Si hay una búsqueda intensiva de un movimiento en el proceso de pensar en un movimiento, entonces la vista necesita una pequeña cantidad de datos que se puedan copiar y destruir fácilmente. Si la información de la posición contiene datos muy estructurados, será difícil de copiar y ralentizará el proceso de búsqueda.

La forma más fácil de representarlo es crear una matriz de una o dos dimensiones, que contendrá información sobre qué color de piedras hay en cada posición del campo y la posibilidad de moverse a posiciones vacías.

La mayoría de los programas, sin embargo, usan más información del tablero sin procesar para representar una posición. Esta puede ser información sobre cómo se conectan las piedras en cada línea y cómo se asocian las líneas entre sí, información sobre grupos de piedras que están en riesgo de ser capturadas y que están vivas. Y aunque esta información se puede extraer de una representación directa, será mucho más rápido cambiarla en cada turno y transferirla en forma terminada. Dichos cambios adicionales requieren que se memorice más información y pueden reducir la velocidad de copia, por lo que el problema de representar la situación del juego también es agudo para los creadores de los programas Go.

Alternativamente, puede mantener solo una copia del tablero y, al hacer un movimiento, recordar los cambios realizados. Esto reduce los costos de memoria y la velocidad de copia y le evita copiar información redundante una y otra vez. Pero debe tenerse en cuenta que esta forma de presentación puede requerir diferentes enfoques para su interpretación que el almacenamiento de información completa sobre el tablero.

El uso de representaciones no directas en Go tropieza con otro escollo relacionado con la propia estructura del juego. Una posición en Go consiste en piedras individuales que forman estructuras variables (grupos y conjuntos de grupos). Desde el punto de vista de la estrategia y táctica del juego, las opciones de representación que contienen explícitamente información sobre estructuras y estados son más útiles. Pero dicha información puede cambiar significativamente literalmente en cada movimiento (por ejemplo, un solo movimiento que crea una conexión entre dos grupos que tienen un ojo cada uno en realidad convierte a estos dos grupos, que están bajo amenaza, en uno solo, garantizado para estar vivo, lo que debería se reflejará en la representación como sindicato de estos colectivos). La tarea de cambiar adecuadamente una representación compleja en tales casos no es en sí misma trivial.

Diseño del sistema

Nuevos enfoques a los problemas

Históricamente, el enfoque principal para el problema de la computadora Go ha sido "buena vieja IA". Posteriormente, las redes neuronales comenzaron a ser consideradas como una alternativa a este enfoque . Uno de los programas que utilizan el algoritmo de red neuronal para jugar Go es WinHonte [13] .

Los resultados de estos desarrollos en el campo de la informática Go se utilizan en otras áreas: ciencia cognitiva , reconocimiento de patrones y aprendizaje automático [14] . La teoría de juegos , una rama de las matemáticas aplicadas , también se aplica a la computadora Go [14] .

Desarrollo de sistemas de IA

Lo único que tiene que hacer el programa como resultado de pensar en el movimiento es indicar el lugar donde se debe colocar la siguiente piedra. Sin embargo, incluso una decisión tan simple es difícil de aceptar debido a la ambigüedad de las posiciones a las que puede conducir esta formulación. Se han adaptado varias arquitecturas para resolver este problema. Los más populares se basan en el uso de un árbol de búsqueda , la aplicación de métodos de Monte Carlo , la creación de sistemas expertos y el uso de aprendizaje automático . Pocos programas usan solo uno de estos; la mayoría combina varios enfoques.

Árbol de búsqueda Minimax

Una de las técnicas tradicionales de IA para crear programas que juegan juegos es usar un árbol de búsqueda minimax . Para hacer esto, considere todas las secuencias hipotéticamente posibles de movimientos hasta una cierta profundidad y luego use la función de evaluación para estimar el valor del movimiento desde el cual comenzó cada secuencia. El movimiento que conduce al mejor resultado se repite en el tablero y luego se lleva a cabo el mismo procedimiento para cada movimiento del jugador de la computadora. Si bien los métodos del árbol de búsqueda han tenido éxito en ajedrez , han tenido menos éxito en Go.

Esto se debe en parte a que es difícil crear una función de evaluación eficiente y en parte a la gran cantidad de movimientos posibles, lo que da como resultado un gran factor de ramificación. Esto hace que la técnica del árbol de búsqueda requiera demasiados recursos. Por lo tanto, los programas que hacen un uso intensivo de los árboles de búsqueda solo pueden funcionar bien en un tablero pequeño de 9x9, pero no en un tablero grande de 19x19.

Existen técnicas que pueden mejorar el rendimiento de los árboles de búsqueda, tanto en términos de velocidad como de memoria. Los métodos de poda alfa-beta , búsqueda de desviaciones fundamentales , MDT-f pueden reducir el factor de ramificación casi sin pérdida de potencia del juego. De manera similar , la tabla de permutación permite una reducción en los recálculos, especialmente cuando se usa junto con el método de profundización iterativo . Para un acceso rápido a los datos ubicados en la tabla de permutaciones, es necesario utilizar hash . El hash de Zobrist es común en los programas Go porque proporciona una cantidad baja de colisiones y le permite actualizar rápidamente la información sobre cada movimiento utilizando solo dos operaciones XOR en lugar de un cálculo completo.

Incluso con estas técnicas de reducción de tiempo, un árbol de búsqueda completo sigue siendo muy lento. La búsqueda se puede acelerar limitando aún más la bifurcación, no considerando opciones para movimientos en el área de influencia del oponente, o eligiendo considerar primero que todos los grupos de piedras que están en la posición de atari . Sin embargo, ambos métodos corren el riesgo de no considerar movimientos vitales que podrían cambiar el curso del juego.

Los resultados de las competencias por computadora muestran que los métodos de emparejamiento de patrones para la selección de la cadena de pasos, combinados con una búsqueda táctica limitada rápida (explicada anteriormente), son suficientes para producir un programa competitivo. Por ejemplo, GNU Go es competitivo, pero no utiliza búsquedas completas.

Sistemas expertos

Los principiantes a menudo aprenden viendo registros de juegos antiguos de maestros del juego. Existe una fuerte hipótesis de que la acumulación de conocimiento es la clave para crear una IA sólida. Por ejemplo, Tim Kinger y David Mechner dicen: “Creemos que solo usando las herramientas para acumular y mantener el conocimiento en el campo de Go, puede crear programas mucho más sólidos que los que tenemos actualmente”. Sugieren dos caminos: la consideración de las formas generales y su uso, o la consideración de las oposiciones locales. “…El software Go todavía carece de calidad y cantidad de conocimiento”. [quince]

Después de la implementación, el uso de conocimientos experimentados demostró ser muy efectivo. Cientos de pautas y reglas generales para un juego fuerte han sido formuladas tanto por aficionados como por profesionales de alto nivel. El trabajo del programador es tomar estas heurísticas , formalizarlas en código de máquina y usar la coincidencia de patrones y el reconocimiento de patrones para determinar cuándo usarlas. También vale la pena desarrollar un sistema para identificar la mejor solución cuando se aplican varios principios a la vez.

La mayoría de los resultados relativamente exitosos se basan en las habilidades para jugar Go de los programadores que escribieron los programas y sus conjeturas personales sobre el juego de los maestros, y no sobre la base de errores de cálculo matemáticos formales; están tratando de hacer que la computadora imite la forma en que ellos mismos juegan al Go. "La mayoría de los programas competitivos han requerido de 5 a 15 años de esfuerzo humano y contienen de 50 a 100 módulos que tratan varios aspectos del juego". [dieciséis]

Este método ha sido hasta hace poco la técnica más exitosa en la producción de programas Go competitivos en un campo de tamaño completo. Ejemplos de programas que se han basado más en el conocimiento experiencial son Handtalk (más tarde conocido como Goemate), The Many Faces of Go, Go Intellect y Go++, todos los cuales en algún momento fueron considerados el mejor programa Go del mundo.

Sin embargo, la adición de conocimientos expertos a veces debilita el programa, porque la simple orientación superficial en una situación puede conducir a errores. "Los mejores programas suelen hacer buenos movimientos de nivel maestro, pero como todos los jugadores saben, un mal movimiento puede arruinar un buen juego". [dieciséis]

Métodos Monte Carlo

Una de las principales alternativas al uso del conocimiento codificado y la búsqueda de movimientos es el método Monte Carlo . La esencia de este método es que se seleccionan las primeras posiciones en el tablero actual al que puede ir y luego, comenzando secuencialmente desde cada una de ellas, se juega una gran cantidad de juegos aleatorios. La posición que da la proporción más alta de ganancias a pérdidas se elige para el siguiente turno. Las ventajas de este método son que requiere muy poco conocimiento del dominio del problema y no requiere mucha memoria. Sin embargo, este método también tiene desventajas obvias. Debido al hecho de que los movimientos se generan al azar y no se consideran todas las posibles continuaciones, algunos movimientos se juzgarán erróneamente como buenos. Aunque la selección aleatoria de continuaciones será favorable, el oponente puede tener algunos movimientos bastante obvios que le permitirán obtener una ventaja. Estos movimientos no caerán en la muestra aleatoria o el número de buenas continuaciones será mayor. El resultado es un programa que es fuerte estratégicamente pero débil tácticamente. Este problema se puede mitigar agregando algo de experiencia y una búsqueda más profunda. Los programas de Monte Carlo incluyen Zen , The Many Faces of Go v12 , Leela , MoGo , Crazy Stone [17] , Olga y Gobble.

En 2006 se desarrolló una nueva técnica, límites superiores de confianza aplicados a árboles [18] , que se utiliza en muchos programas para jugar al Go en un tablero de 9x9 con excelentes resultados. La técnica UCT, junto con muchas otras técnicas de optimización para jugar en un tablero de 19x19, ha permitido que MoGo se convierta en uno de los programas más potentes. La técnica UCT para jugar en un tablero de 19x19 es utilizada por los siguientes programas: MoGo, Crazy Stone, Mango . MoGo ganó la Olimpiada Informática de 2007 y ganó una de las tres partidas relámpago contra Guo Juan [1] , 5º Dan. En 2008, The Many Faces of Go ganó la Olimpiada Informática después de agregar UCT a su mecanismo basado en el conocimiento experto.

En 2008, MoGo ganó uno de los tres juegos [19] contra Catalina Taranu , 5 pro-dan, en un tablero de 9x9 con tiempo estándar (30 minutos por juego por jugador). MoGo se lanzó en una computadora de clúster (32 nodos con 8 núcleos a 3 GHz). Estos resultados fueron aprobados por la Federación Francesa de Go [20] . MoGo también jugó en un tablero de 19x19 contra la misma Catalina Taranu y perdió con una ventaja inicial de 9 piedras. Vale la pena señalar, sin embargo, que el programa jugó fuerte y perdió simplemente debido a las malas elecciones de ko-fight al final del juego, en el que las computadoras son tradicionalmente débiles.

El 7 de agosto de 2008, MoGo ganó un juego de mesa de 19x19 contra Kim MyungWan, 8p, con una ventaja inicial de 9 piedras por 1,5 puntos. Kim usó 13 minutos para pensar, mientras que MoGo usó alrededor de 55, pero sintió que usar más tiempo no lo ayudaría a ganar. MoGo se lanzó desde los Países Bajos en una supercomputadora de 800 nodos que contiene 4 núcleos por nodo, 4,7 GHz y 15 teraflops de rendimiento . [21] . Myeonghwan y MoGo jugaron cuatro juegos con diferente handicap y límites de tiempo y ganaron dos juegos cada uno. Los informes del juego están disponibles en KGS [22] donde MoGo jugó bajo el nombre de MogoTitan.

En febrero de 2009, MoGo obtuvo una victoria aún mayor: con un hándicap de 7 piedras, derrotó al jugador del 9.° dan Jun-Xun Zhou, y con un hándicap de 6 piedras rompió la resistencia del jugador del 1.er dan Li-Chen Chien [23] .

A principios de 2012 CrazyStone [24] , basado en el mismo método de Monte Carlo que MoGo, tiene un 5 dan estable en el servidor KGS [25] .

En diciembre de 2010, el programa informático Zen alcanzó el nivel 4º dan en el servidor KGS. El programa Zen fue creado por el programador japonés Yoji Ojima. En junio de 2011, el programa de computadora Zen19d alcanzó el nivel de 5 dan en el servidor KGS, jugando a una velocidad de 15 segundos por turno. Esta versión del programa se ejecutó en una computadora de 26 núcleos. En marzo de 2012, el programa de computadora Zen19D alcanzó el nivel de 6 dan en el servidor KGS, jugando a una velocidad de 15 segundos por turno. Esta versión del programa se ejecutó en una computadora de 28 núcleos [26] .

En marzo de 2012, Zen19D ganó 9 dan con 4 piedras de hándicap contra Takemiya Masaki . Para este partido, utilizamos un grupo de 4 computadoras (doble Xeon X5680/4.2 GHz de 6 núcleos, Xeon W3680/4 GHz de 6 núcleos y dos i7 920/3.5 GHz de 4 núcleos) conectadas a través de GbE LAN. El mismo equipo se usa para Zen19S y Zen19D en el servidor KGS [27] .

Aprendizaje automático

Los programas basados ​​en el conocimiento para jugar Go son muy efectivos, pero su nivel de conocimiento está estrechamente relacionado con el nivel de sus programadores y expertos en dominios relacionados. Este problema se puede evitar mediante el uso de métodos de aprendizaje automático , que permiten que el programa genere patrones y estrategias de comportamiento que no están integrados de antemano.

Básicamente, este enfoque se implementa utilizando redes neuronales o algoritmos genéticos , que le permiten encontrar la situación correcta en una gran base de datos de juegos o jugar muchos juegos contra usted mismo u otros programas o personas. Los programas más conocidos que utilizan redes neuronales son NeuroGo y WinHonte.

Competiciones entre programas informáticos que juegan go

Hay varias competencias anuales muy conocidas entre los programas de computadora que juegan Go, la más famosa de las cuales es la Olimpiada de Computadoras. Las competiciones regulares y menos formales se llevan a cabo en KGS (mensualmente) y CKS (continuamente).

Los programas de juego de Go más famosos incluyen el KCC Igo de la Estrella de Plata de Corea del Norte, Handtalk (de Chen Zhixing), GoPlusPlus (Michael Reiss) y Many Faces of Go de David Fotland. GNU Go  es un software libre que también ha ganado concursos informáticos.

Historia

Las primeras competencias de computadora go fueron patrocinadas por USENIX. Se llevaron a cabo en 1984-1988. Estas competencias lanzaron Nemesis, el primer programa competitivo de juegos de Go de Bruce Wilcox y G2.5 de David Fotland, que luego se convertiría en Cosmos y The Many Faces of Go.

Uno de los primeros incentivos para el desarrollo de la computadora Go fue la Ing Cup, una competencia relativamente grande con premios en efectivo patrocinada por el banquero taiwanés y fundador de la Ing Cup , Ing Chang-ki, que se lleva a cabo cada cuatro años desde 1988 hasta 2000. Al ganador de este torneo se le permitió desafiar a los jóvenes profesionales en un juego de handicap con poco tiempo. Si el programa ganaba, su autor recibía un premio en metálico y se fijaba un nuevo premio para la victoria de un profesional con un hándicap inferior. Se suponía que los premios ing terminarían 1) en 2000 2) cuando el programa venciera a un jugador profesional de primer dan en un juego parejo (NT $ 40,000,000 ). El último ganador fue Handtalk en 1993, que recibió NT$250.000 por vencer a profesionales de 8-9 años por 11 piedras. En 2000, el premio de NT$400.000 por vencer a un profesional con un handicap de 9 piedras seguía sin reclamar [28] .

Sorprendentemente, Japón ha comenzado recientemente a patrocinar sus propios campeonatos de computadora Go. La competencia de la Copa FOST se llevó a cabo anualmente desde 1995 hasta 1999 en Tokio. Fue reemplazado por el Gifu Challenge que se lleva a cabo anualmente desde 2003 hasta 2006 en Ogaki, Prefectura de Gifu .

En octubre de 2015, AlphaGo , desarrollado por DeepMind , derrotó al tricampeón europeo Fan Hui (2º dan profesional) en un partido de cinco partidas con un marcador de 4-1. Esta es la primera vez en la historia que una computadora vence a un profesional en go en un juego parejo [1] [29] [30] .

En marzo de 2016, AlphaGo derrotó al profesional Lee Sedol , noveno dan, en cuatro de cinco juegos. [2]

En mayo de 2017, en Future of Go Summit , AlphaGo ganó tres juegos de tres en un mini-partido con uno de los jugadores más fuertes del mundo, el líder mundial Elo Ke Jie [6]

Problemas jugando computadora con computadora

Cuando dos computadoras juegan Go una contra la otra, la imagen ideal del juego debería ser de persona a persona. Sin embargo, esto es difícil de lograr, especialmente al final del juego. El principal problema es que el programa no puede mantener un diálogo con el enemigo. Entonces, si hay algún desacuerdo sobre el estado de los grupos, entonces no hay forma de que los programas los resuelvan. Una forma de resolver este problema podría ser introducir un árbitro humano o un entorno de software altamente especializado para evaluar la posición final. Un método alternativo es dejar que los programas realicen movimientos hasta que finalmente se determinen los estados de todos los grupos en conflicto. El principal obstáculo para la implementación de esta solución es que en algunas variantes de las reglas de Go (por ejemplo, las reglas japonesas), los jugadores son penalizados por movimientos extra, perdiendo puntos. Por lo tanto, existe el riesgo de que, habiendo dudado de su ventaja, el programa pierda después de jugar la situación ganadora.

Véase también

Notas

  1. 1 2 David Silver, Aja Huang, Chris J. Maddison, Arthur Guez, Laurent Sifre. Dominar el juego de Go con redes neuronales profundas y búsqueda de árboles   // Naturaleza . — 2016-01-28. — vol. 529 , edición. 7587 . — págs. 484–489 . — ISSN 0028-0836 . -doi : 10.1038/ naturaleza16961 . Archivado desde el original el 24 de septiembre de 2019.
  2. 1 2 Inteligencia artificial: AlphaGo de Google vence al maestro de Go Lee Se-dol . BBC News Online (12 de marzo de 2016). Consultado el 12 de marzo de 2016. Archivado desde el original el 11 de agosto de 2021.
  3. DeepMind de Google derrota al legendario jugador de Go Lee Se-dol en una victoria histórica . www.theverge.com. Consultado el 9 de marzo de 2016. Archivado desde el original el 11 de agosto de 2021.
  4. Inteligencia artificial: Go master Lee Se-dol gana contra el programa AlphaGo . BBC News Online (13 de marzo de 2016). Consultado el 13 de marzo de 2016. Archivado desde el original el 5 de mayo de 2021.
  5. AlphaGo AI de Google vuelve a vencer a Lee Se-dol para ganar la serie Go 4-1 . El Borde . Consultado el 15 de marzo de 2016. Archivado desde el original el 15 de marzo de 2016.
  6. 1 2 El programa AlphaGo venció al jugador de Go más fuerte con una puntuación de 3-0 , INTERFAX.RU (27 de mayo de 2017). Archivado desde el original el 11 de agosto de 2021. Consultado el 27 de mayo de 2017.
  7. El campeón mundial en el juego de go perdió tres partidos seguidos ante un programa de computadora , edición en línea de Lenta.Ru (27 de mayo de 2017). Archivado desde el original el 11 de agosto de 2021. Consultado el 27 de mayo de 2017.
  8. Antón Baboshin. Rebelión de las máquinas. La creación de Google venció al líder del ranking mundial . "Sport-Express" (27 de mayo de 2017). Consultado el 27 de mayo de 2017. Archivado desde el original el 26 de febrero de 2019.
  9. Ir a las calificaciones . Consultado el 29 de mayo de 2017. Archivado desde el original el 15 de agosto de 2021.
  10. Comparación de formatos de tablero Go (enlace inaccesible) . Consultado el 24 de junio de 2009. Archivado desde el original el 27 de enero de 2011. 
  11. Ver Programación de Computer Go Archivado el 15 de agosto de 2006 en las páginas de Wayback Machine en la Biblioteca de Sensei.
  12. Raiko, Tapani: "The Go-Playing Program Called Go81" Archivado el 11 de octubre de 2010 en la sección 1.2 de Wayback Machine .
  13. WinHonte 2.01 (enlace descendente) . Consultado el 24 de junio de 2009. Archivado desde el original el 3 de julio de 2007. 
  14. 1 2 Müller, Martín. Computer Go  (enlace no disponible) , Inteligencia Artificial 134 (2002): p150
  15. Muller, Martin. Computer Go  (enlace no disponible) , Inteligencia Artificial 134 (2002): p151
  16. 1 2 Müller, Martín. Computer Go  (enlace no disponible) , Inteligencia Artificial 134 (2002): p148
  17. Piedra Loca . Consultado el 24 de junio de 2009. Archivado desde el original el 29 de octubre de 2007.
  18. UCT . Consultado el 24 de junio de 2009. Archivado desde el original el 7 de julio de 2021.
  19. Copia archivada (enlace no disponible) . Consultado el 24 de junio de 2009. Archivado desde el original el 28 de mayo de 2009. 
  20. Federación Francesa de Go . Consultado el 24 de junio de 2009. Archivado desde el original el 13 de agosto de 2021.
  21. Biblioteca de Sensei: MoGo . Consultado el 24 de junio de 2009. Archivado desde el original el 15 de mayo de 2021.
  22. Archivos del juego KGS . Consultado el 24 de junio de 2009. Archivado desde el original el 11 de agosto de 2021.
  23. La mente de la máquina golpeó a un hombre en go (enlace inaccesible) . Consultado el 24 de junio de 2009. Archivado desde el original el 19 de junio de 2009. 
  24. CrazyStone en la biblioteca de Sensei . Consultado el 30 de junio de 2012. Archivado desde el original el 16 de julio de 2009.
  25. Gráfico de clasificación del servidor KGS Go . Consultado el 30 de junio de 2012. Archivado desde el original el 11 de agosto de 2021.
  26. Calificaciones de bots KGS de la biblioteca de Sensei . Consultado el 4 de enero de 2013. Archivado desde el original el 6 de mayo de 2021.
  27. ¡El programa Zen Computer Go vence a Takemiya Masaki con solo 4 piedras! (enlace no disponible) . Fecha de acceso: 4 de enero de 2013. Archivado desde el original el 20 de enero de 2013. 
  28. Campeonato Mundial de Computadoras Go . Consultado el 24 de junio de 2009. Archivado desde el original el 24 de septiembre de 2015.
  29. La inteligencia artificial derrota al jugador profesional de Go por primera vez . Meduza. Fecha de acceso: 27 de enero de 2016. Archivado desde el original el 4 de febrero de 2016.
  30. AlphaGo: Dominar el antiguo juego de Go con Machine Learning . blog de investigacion Fecha de acceso: 27 de enero de 2016. Archivado desde el original el 1 de febrero de 2016.

Artículos científicos (inglés)

Sitios web dedicados a la informática van

Programas informáticos

  • AYA de Hiroshi Yamashita
  • Piedra loca de Remi Coulom
  • GNU Go , el programa Go de código abierto más fuerte
  • Go++ de Michael Reiss (vendido como Strongest Go o Tuyoi Igo en Japón)
  • Vaya intelecto por Ken Chen
  • Handtalk/Goemate, desarrollado en China por Zhixing Chen (vendido como Shudan Taikyoku en Japón)
  • Haruka por Ryuichi Kawa (vendido como Saikouhou en Japón)
  • Índigo de Bruno Bouzy
  • Katsunari de Shin-ichi Sei
  • KCC Igo, de Corea del Norte (vendido como Silver Star o Ginsei Igo en Japón)
  • Leela , el primer programa de Montecarlo a la venta al público
  • The Many Faces of Go de David Fotland (vendido como AI Igo en Japón)
  • MoGo de Sylvain Gelly; versión paralela [2] por muchas personas.
  • Smart Go de Anders Kierulf, inventor del formato de juego inteligente