Showing posts with label stockfish. Show all posts
Showing posts with label stockfish. Show all posts

Thursday, December 07, 2017

¿El fin del ajedrez?




En 1997 Garry Kasparov perdía un match a seis partidas contra una máquina preparada sólo para jugar al ajedrez. IBM había puesto mucho dinero y su plan era demostrar que una máquina ya tenía la suficiente capacidad para derrotar al mejor jugador del mundo en este difícil arte del ajedrez. Pero 20 años después nos enteramos que DeepMind había puesto un programa llamado AlphaGo, a jugar contra el mejor jugador del juego chino Go, y que le había derrotado sin duda ninguna. Hoy DeepMind nos da la noticia que su programa, aplicado al ajedrez, logró en sólo cuatro horas de auto entrenamiento, el nivel de súper gran maestro y para ello ha usado su técnica de redes neuronales de aprendizaje reforzado. AlphaGo ha logrado entender más de 500 años de experiencia en ajedrez en tan sólo unas horas. Algo inconcebible e impresionante.

El algoritmo desarrollado por Google y DeepMind, sintetiza todo el conocimiento del ajedrez y para demostrar este nivel, los investigadores decidieron poner como rival a StockFish, el mejor programa de ajedrez de código abierto, que está entre los tres mejores programas (incluyendo los comerciales), del mundo.

AlphaGo venció a Stockfish en un encuentro a 100 partidas, por 28-0 y 72 empates. Es decir, el poderoso StockFish no pudo ganar una sola partida. Esto solamente habla de la capacidad del algoritmo de DeepMind, el cual ni siquiera necesita bases de partidas, tablas de finales o podas alpha-beta para correr.



El artículo “Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm” describe el trabajo realizado y sin duda es un parteaguas en el mundo del ajedrez por computadora. El enfoque es tan diferente a todo lo anterior hecho en esta disciplina que habrá que estudiar cómo es que este algoritmo de Google y DeepMind se está volviendo una de las maneras más eficientes para atacar problemas que no tienen solución definitiva y que se han atacado antes a través de heurísticas

Saturday, March 26, 2016

Modern Chess Analysis, de Robin Smith


El ajedrez, a partir de las computadoras, ya no es el mismo. De alguna manera las máquinas y sus poderosos análisis le han quitado ese misterio perenne de dudar de la validez en las afirmaciones sobre quién está mejor en algún momento de una partida. El misterio se ha minimizado y además, hemos visto crecer la fuerza de los programas a grados que francamente ya compiten sin menoscabo incluso contra el campeón del mundo. Baste decir que Kramnik empató un match contra Schredder (4-4) y Kasparov en su momento, otro match contra Fritz (3-3). Lo notable en todo caso es que hablamos de programas que corren en las computadoras que tenemos ya accesibles casi en cualquier casa.

Uno de las disciplinas que más ha influenciado el ajedrez computarizado es el del ajedrez por correspondencia. Hoy en día cualquier jugador que quiera sumergirse en este arte de jugar a ritmos de 3 días por jugada, tendrá que disponer de muchas horas para analizar y más de un motor de ajedrez -engine- que permita ayudarle a ver variantes, a valorar posiciones complejas, etcétera. Yo -por ejemplo- abandoné el ajedrez por correspondencia porque un día sentí que me había convertido en el "mensajero" de las jugadas propuestas por Komodo, Houdini o Rybka. En el ajedrez por correspondencia de elite, en donde están los mejores del mundo, sin duda se ayudan de estos ingenios cibernéticos, pero también es claro que los ajedrecistas buscan entender las valoraciones, aquellas en donde la máquina se confunde y entonces, tener esa mínima ventaja que a la larga le da triunfos curiosos o inverosímiles, si pensamos que la computadora analiza a profundidades que ningún ser humano puede realizar nunca.

Y eso me recuerda los primeros pasos del ajedrez computarizado. En los primeros "campeonatos mundiales de computadoras", que se jugaban en algún hotel y en donde los grandes maestros iban a ver con cierta curiosidad el desarrollo de este tipo de eventos sonreían ante la ingenuidad de las máquinas. Uno de los científicos de ese entonces declararía: "hoy se ríen de nosotros, mañana nos van a pedir asesoría". Y esa frase finalmente es un hecho hoy día. Los programas actuales pueden derrotar a un 99.99% de los jugadores en el mundo.

Pero... ¿resolvieron ya el ajedrez? ¿debemos creer que ya que el juego-ciencia en términos prácticos ya está resuelto y no tiene sentido seguir jugando? Para el imaginario colectivo quizás la respuesta es sí, pero para el conocedor de ajedrez podríamos decir que aún tienen una legítima duda. Y en ese sentido, el libro de Robin Smith (1952-2009), un gran maestro de ajedrez por correspondencia estadounidense, dos veces campeón por correspondencia de su país, con un rating de 2642 puntos Elo, logrado solamente en 64 partidas, de 1997 al 2008, Modern Chess Analysis, es un raro y sorprendente descubrimiento de las fortalezas y debilidades de los motores de ajedrez. A pesar de que es del año 2004, los análisis de muchas posiciones, usando los motores de ajedrez (engines), de esos años, reflejan que aún los programas tienen mucho que aprender.

Smith hace un estupendo análisis de las ventajas y desventajas de los programas -que hay que reconocer, quizás ya no son tan válidos 11 años después de la publicación de su libro- así como mostrarnos cómo sacar ventaja de estos engines para analizar mejor y no necesariamente para partidas por correspondencia, sino para la preparación como ajedrecista de torneo.


Dubois - Steinitz
Londres,1862
Juegan las negras

Por ejemplo, en la siguiente posición, de la partida Dubois - Steinitz, Londres, 1862, el primer campeón del mundo oficial hizo una jugada que Komodo 8 simplemente no considera entre sus primeras 4 alternativas principales: 8. ... h5!! Smith dice: "No importa qué programa haya usado y por cuanto tiempo le haya permitido analizar, ninguno encontró 8. ... h5!! Un jugador que vivió hace más de siglo y medio encontró esta jugada y los análisis subsecuentes probaron que la idea negra era correcta.  Esta es una posición en donde se busca "cazar" al rey, posición en donde se supone debería ser el fuerte de la computadora, pero no el de un ajedrecista de carne y huesos". Desde luego que esto podría ser una excepción al poder de los programas, pero Smith muestra muchísimas posiciones en donde los engines simplemente no dan una (incluso los actuales).

Vale pues la pena este libro porque me parece que nos da una mejor idea de lo que los programas pueden hacer. Es claro que esta nueva herramienta, que unos pocos años antes los ajedrecistas soñaban con tener, pueden mostrarnos muchísimas ideas interesantes, pero claramente pone a todos estos engines en una más justa proporción.

Sunday, September 16, 2012

Jugando con un gran maestro en casa


Para el jugador que quiera progresar, la fórmula parece simple: mucho estudio, ambición de ganar, motivación de jugar, tiempo para trabajar en el juego, participar en torneos con frecuencia, etcétera. Esto requiere en cierta medida planeación. Está bien si uno ve ajedrez, partidas comentadas, análisis profundos, estudios especializados, temas del medio juego, táctica, finales, aperturas, entre tanto que hay que estudiar. Sin embargo, para sacar mayor provecho del tiempo disponible es necesario sistematizar el estudio, hacer -lo que dicen los que saben- un estudio deliberado.

El estudio deliberado busca llegar a una meta específica. Por ejemplo, quien va a un gimnasio y decide que quiere hacer "bíceps". Si no sabe, buscará a un entrenador que le indiqué qué aparatos debe usar para lograr su cometido. Esto es parte de mantener la salud, sin duda, pero el deportista busca incrementar la masa corporal específica de los bíceps y es un trabajo que se hace deliberadamente para ello. Sí, está bien ejercitarse, hacer "elíptica", correr en la caminadora, etcétera, pero si se desea mejorar en un aspecto en particular, hay que hacer este trabajo específico.

De esta manera hay que enfocar el estudio del ajedrez. Trabajar por ejemplo, en aprender las aperturas que uno quiere jugar. Hay que ver muchas partidas con las líneas que queremos entender y practicarlas cuando se pueda. Cuando uno ve y juega las variantes de una apertura/defensa en particular, empieza a entender las filigranas de esas posiciones. Probablemente uno encuentre maniobras típicas que bien nos harán comprender mejor ciertos esquemas, ciertas posiciones en particular.

Pero este trabajo lleva tiempo y además, esperar a ir a un torneo para ponerlo en práctica. En realidad eso no sería necesario si tuviésemos a un gran maestro con quien jugar y que le dijéramos la apertura a elegir (o la posición en particular desde la cual partir), el tiempo de reflexión con el que quiero jugar y a la hora en la que quiero hacer esta actividad. Tener un gran maestro así sería fenomenal. Lo mejor del asunto es que lo tenemos: se llama computadora.

Los programas de computadora de ajedrez son muy fuertes y los hay en todos los posibles niveles. Tenemos a Houdini o StockFish, que juegan tan bien como los programas comerciales (como Rybka, por ejemplo). Casi cualquier computadora puede alojarlos y correrlos sin dificultades. La mayoría usa una interfaz amable y además, se le puede graduar el nivel con el que queramos jugar. Vamos, hasta los hay -en algunos casos- en versiones para los teléfonos inteligentes. StockFish puede conseguirse para iOS o Android (llamado DroidFish). Una ventaja de jugar contra la versión del teléfono es que tiene velocidad y recursos limitados, y por ende, podría dar más oportunidad al ajedrecista de luchar contra el software, aunque aún así, el nivel de estos ingenios es muy alto.Un programa como DroidFish en el teléfono móvil puede jugar como un gran maestro de más de 2600 puntos Elo. Así que no se puede confiar uno.

Pero qué mejor entonces que poner en práctica nuestras ideas en algunas variantes de apertura jugándolas contra estos programas. El software jamás se cansa, siempre está dispuesto a la batalla y además, nunca la rehuye. Por ello, creo que teniendo estos "grandes maestros en casa" y no sacar provecho de esta posibilidad, es un desperdicio.

Lo importante es que este trabajo de jugar contra la computadora, en la versión que sea, permite al jugador entrenarse. Ya sea para aprender aperturas, practicar finales o bien, simplemente enfrentar a la máquina, todo esto tiene sus beneficios. Por ejemplo, considere jugar una partida "de torneo", con tiempos como 1:30 hrs con incremento de 30 segundos por jugada, contra la computadora, en el programa que quiera usar, advirtiendo que será una partida sin ayuda, sin regresar jugadas, como si fuese en una competencia real. Igualmente, será mejor experiencia poner el tablero y el reloj y anotar la partida, es decir,  simular pues las condiciones del torneo y bueno, aplicarse a tratar de jugar la mejor partida posible.

Cabe decir que el resultado es lo de menos. Lo que interesa es poder trabajar en el desarrollo del propio ajedrez. Véalo como un entrenamiento intenso en donde uno puede fracasar muchas veces sin que se contabilice el resultado en la tabla del torneo. Michael Jordan, el basquetbolista, lo ha puesto así: He fallado más de 9000 tiros en mi carrera. He perdido casi 300 juegos. 26 veces han confiado en mi para tomar el tiro que ganaba el juego y lo he fallado. He fallado una y otra, y otra vez en mi vida. Pero nunca me he dado por vencido. Y es por eso que he tenido éxito en la vida.

Así pues, ¿por qué no intentarlo? Hágase un plan de jugar -para empezar- a una hora un par de partidas por semana. O una partida de 2 horas por jugador a la semana. Anótelas y después analícelas. Seguro que su ajedrez mejorará. No sacar provecho de un auxiliar como el que otorgan los programas de computadora actuales es francamente ridículo. No tenga miedo de perder porque además, nadie tiene porqué enterarse. Trabaje duro en este sentido y verá que cuando llegue a los torneos con seres humanos hallará que se siente cómodo y que notará -con el tiempo y trabajo constante- la ayuda que pueden darle hasta los programas de ajedrez más modestos en este mercado.

Jugar bien al ajedrez es difícil, pero un trabajo deliberado, sistemático, intenso, puede ser de gran ayuda. En posteriores artículos pondré algunos ejemplos de esto.