Stockfish 5 vs Stockfish 6

Como mencione en el post anterior http://ajedrez.ga/2015/el-cambio-y-el-ajedrez-por-computadora en el ajedrez por computadora podemos asegurarnos de que lo que hagamos mejore una versión anterior por medio del testeo automatizado y es aquí donde el poder de el código libre brilla. Ya que se pueden hacer mejoras incrementales, prácticamente imperceptibles que a lo largo de un tiempo hacen una mejora brutal.

En el caso de Stockfish tienen una manera de asegurar la calidad en http://tests.stockfishchess.org/tests se puede revisar el historial de las pruebas hechas y se pueden sugerir otras nuevas, cada prueba son aproximadamente 25,000 juegos por lo que llegar a 1,000,000,000 de juegos tan solo en las pruebas no suena como algo muy distante.

Y eso combinado al hecho de que las pruebas están hechas específicamente con el fin de optimizar una pequeña cosa en especifico, que existen métricas claras de lo que se quiere lograr y el hecho de que cualquiera que este interesado puede contribuir de manera que ayude al proyecto (Quien sepa programar contribuyendo código, quien sepa bien ajedrez contribuyendo ideas y cualquier persona interesada donando tiempo de su maquina para las pruebas automatizadas) de manera que su contribución siempre beneficie al proyecto.

De tal manera que si comparamos a Stockfish 5 con Stockfish 6 notaremos que la ultima versión es casi 100 puntos de elo mas fuerte que la anterior y dado que esto se da en un entorno perfectamente claro y controlado sabemos que no tiene que ver con la velocidad de las maquinas con que se prueba. Esto lo hace el programa de ajedrez mas fuerte que ha existido.

¿Pero en realidad es tanta la diferencia?

Quizá para nosotros no lo sea ya que hasta un equipo formado por todos los GM del mundo competiendo contra Stockfish seria vencido. Pero este solo es un pequeño paso. Si hace 50 años pusiéramos a competir a el mejor programa de ajedrez contra un humano relativamente bueno, pero sin tener ningún titulo especial si le diéramos este diagrama y le tocara jugar con las negras probablemente se las arreglaría para ganarle a la computadora.

Ahora mismo si le damos las blancas a el mejor jugador humano de ajedrez, 3 veces mas de tiempo y corriéramos Stockfish 6 en una computadora de hace 5 años creo que lo mejor que podría conseguir el jugador humano es un empate.

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.