El cambio y el ajedrez por computadora

Este no va a ser mi típico post de ajedrez, si no mas bien una reflexión del ajedrez por computadora.

Claramente cualquiera de nosotros espera que la versión siguiente de un programa mejore su rendimiento. En algunos casos eso suele ser un fracaso absoluto, Windows XP comparado con Windows Vista o Windows 7 comparado con Windows 8 son ejemplos clásicos. Otro muy sonado es la salida del nuevo y mejorado BlackBerry que fue totalmente aplastado por Android y iOS.

Una pregunta que nos es ¿Por que pasan esos errores? Las respuestas son muchas, errores humanos, falta de metas claras, consumo excesivo de recursos, o simplemente un mal diseño de entrada. Otro hecho que sin ser un error en si, es el cambio de requerimientos, lo que era tecnología de punta hace 10 años hoy probablemente empiece a estar obsoleto.

Ahora, si comparamos cualquier tipo de programa entre sus versiones pasadas y actuales muy probablemente escojamos quedarnos con las actuales, excepto en unos cuantos programas ya sea porque quitaron una función que nos agrada como lo ha hecho Adobe con su linea Creative Suite o agregan cosas que ni nos interesan ni queremos(Windows Vista es el ejemplo perfecto) o simplemente cambian su interfaz.

Se preguntaran ¿Y esto que tiene que ver con el ajedrez? A simple vista no mucho, pero si lo piensan bien notaran algo en común, nada de esto aplica al ajedrez, sus requerimientos no cambian con el tiempo, la meta es totalmente clara (Ganar el juego capturando al rey contrario), si un programa de ajedrez consume demasiados recursos en general es vencido por uno similar que haga lo mismo y consuma menos recursos. Entre otras cosas que deberían ser obvias como que si diseñamos un programa mal de entrada vamos a ser vencidos cada vez.

Por dar un ejemplo:

O sea mientras los requerimientos para ganar y las reglas del juego no cambien el conocimiento que tenemos sobre como mejorar es incremental y las reglas del ajedrez no han cambiado en mucho tiempo pero si le mostráramos este juego a alguien nacido hace 1000 años(y que jugara ajedrez claro esta) se quedaría perplejo y probablemente enfurecido ya que para el el las jugadas validas serian:

Claro que actualmente eso no pasa, las reglas se han mantenido muy estables por un largo tiempo de tal manera que si queremos mejorar estudiar los juegos de los grandes como Bobby Fisher o Capablanca nos es de gran ayuda. Sin embargo indirectamente esto también aplica a los programas de ajedrez ya que para ver si son mejores que la versión anterior basta con hacer pruebas entre ellos y dada la gran capacidad de computo actual comparada con cualquier época anterior se pueden gastar recursos en testeo automatizado y así asegurarnos mejoras, a diferencia de cuando se lanza un producto.

Sjeng vs Sjeng Losing Chess

Hay una variante del ajedrez en donde el objetivo es perder todas las piezas menos el rey. En este caso hay que lograr que el oponente se coma nuestras piezas. No entrare en detalles cuando se pueden encontrar las reglas fácilmente en wikipedia.

Lo curioso es que la mayoría de los engines que tengo instalados no soportan esta variante de juego(sjeng siendo el único que lo soporta) aunque es bastante mas sencilla que las demás. Supongo que ha de tener que ver con el hecho que no sienten que valga la pena programar para un modo que casi nadie juega.

Sin mas explicación una pequeña partida de 1 minuto de tiempo para cada lado que demuestra este tipo de juego.

GM Nakamura vs Rybka

Estaba leyendo esta entrada y encontré el juego mas divertido de humano vs maquina en los últimos 10 años:

Las blancas ganan

Entender los juegos actuales entre computadoras es una tarea difícil, para comenzar tienen un ELO actual al menos 400 puntos mayor que el de cualquier humano vivo, eso dificulta el análisis del juego para cualquier humano, además esta la complejidad de que las computadoras juegan muy distinto a los humanos, pero en los últimos torneos ha pasado algo bastante interesante:

Only 11 of 64 games in the TCEC final were decisive, and all of them were won by White. Some games became rooftop swordfights in which human players would surely topple over the parapet, but the windows of the engines’ own analyses 15 or more moves ahead on the official site often showed tether wires locking both into a safely drawn outcome. In game 59, Komodo played for twenty moves a full rook down but felt no urgency to push its compensating pawns further and in truth was never close to losing. Only 28 of 72 games in the penultimate stage were decisive, only 6 won by Black.

rjlipton

Recomiendo leer el articulo enlazado para un análisis completo de la situación, también contiene una breve explicacion sobre la naturaleza del ajedrez y otros juegos similares. Lo realmente interesante para mi es que empezar con blancas(o el extra PLY inicial) empieza a generar una diferencia notable. Prueba de eso es que las negras no consiguieron ninguna victoria en los 64 juegos de la final y que las victorias de negras en las rondas anteriores fueron principalmente entre engines con rating desigual.

Otra cosa de suma importancia es que Stockfish es código libre y abierto a contribuciones y se puede descargar sin ningún costo(https://stockfishchess.org/) y dado lo anterior se puede revisar la función de evaluación y darnos una idea de como juega. Cualquiera puede contribuir, desde mi punto de vista esta es su mayor fortaleza.

Incluyo 3 juegos del torneo con sus respectivas anotaciones generadas por los engine, dada la dificultad de entenderlos recomiendo dar click sobre la primera jugada y disfrutar del resto del juego utilizando las flechas de anterior y siguiente jugada, los juegos son 7(ganado por Stockfish),60(ganado por Komodo) y 59(empate) el resto se pueden consultar en el link del torneo.

Sigue leyendo Las blancas ganan

ChessLight

De vez en cuando suelo revisar una aplicación de Android que enlaza a otras aplicaciones con promociones de un dia, y hoy están promocionando esta, la baje y me gusto bastante, lo curioso es que permite revisar tu conocimiento de ajedrez relativamente rápido, y si no tienes gran idea de como se mueven las piezas es ideal para aprender los movimientos y el alcance de cada pieza
Este es uno de los muchos puzzles incluidos
2014-12-31 16.58.15
Dependiendo de que tanto ajedrez juegues podras resolver el puzzle de inmediato, en unos 10 segundos si juegas tanto como yo, o te tardes mucho mas si no tienes mucha idea
2014-12-31 16.58.30

Esta bastante divertida, la recomiendo