Páginas

domingo, 3 de junio de 2012

Estado del arte en el software de ajedrez - parte I, La partida de ajedrez

Como punto de partida para analizar dónde nos encontramos en la actualidad en lo que a software de ajedrez se refiere, definiremos en primer lugar algunos conceptos básicos que iré desglosando en los próximos posts.

Tenemos:

a) partida de ajedrez
b) base de datos de partidas, por ejemplo: Chessbase, Opening Master, Hugebase
c) programa de base de datos, por ejemplo: Chessbase, ChessAssistant, SCID
d) módulos de ajedrez, o motor; por ejemplo: Houdini, Rybka, Stockfish
e) interfaz de usuario o, lo que generalizadamente se ha entendido como programa de ajedrez. Esto es lo más extendido entre la mayoría de los aficionados, pues son entornos gráficos donde se permite jugar contra el ordenador, analizar posiciones y partidas, examinar bases de datos y, en muchas ocasiones permiten acceso a las plataformas de juego online; por ejemplo: Fritz, Aquarium, Chess King, etc.

La partida de ajedrez
Consiste en un conjunto de información que contiene principalmente dos tipos de datos: los datos relativos a los movimientos en sí mismos y los datos relativos a la identificación de la partida: quién la ha jugado, cuándo, el resultado, el lugar y otros parámetros útiles para clasificarla y localizarla posteriormente. Las partidas comenzaron a divulgarse en formato PGN, posteriormente aparecieron otros como .cbf, .cdp, .cbh. Estos últimos formatos son mucho más eficientes que el estándar PGN, pero son formatos propietarios, es decir el estándar no es abierto y para trabajar sobre ellos se necesitará normalmente acceder desde programas de la misma marca propietaria. No es posible, en principio, crear un desarrollo propio con acceso a tales formatos.
Todos estos formatos fueron inventados hace cierto tiempo, y la mayoría de sus intrucciones no fueron optimizadas al máximo para el manejo de grandes volúmenes de información; concretamente, no llegaron al nivel de bits sino al nivel byte, desperdiciando por lo tanto espacio de almacenamiento y velocidad del tratamiento de la información.
Pongamos un ejemplo: el resultado de una partida podría almacenarse como victoria, derrota, tablas, o indefinido. Por lo tanto, estos cuatro estados podrían representarse como la combinación de dos de los ocho bits de un byte:
- victoria: 1 0 - 000000
- derrota: 0 1 - 000000
- tablas: 1 1 - 000000
- indefinido: 0 0 - 000000
Esto quiere decir que los 6 bits restantes están libres para almacenar información. Llegamos a la conclusión que si cogemos el formato más eficiente en la actualidad (.cdp), aún podríamos ahorrar hasta un 50% en términos de eficacia en el almacenamiento y rendimiento en el tratamiento de esta información.

No hay comentarios:

Publicar un comentario