Artículos

Reportajes extensos sobre todo aquello relacionado con nuestras computadoras.

Tablas de finales (1ª parte), ¿cómo funcionan?

Astron
Author: Astron
Usuario y colaborador de la web.

F1

Generalidades

Un programa (software) de ajedrez es un archivo con una serie de algoritmos matemáticos, que ejecutado por un procesador informático (CPU), jugará al ajedrez de una forma más o menos eficiente. Pero el programa en sí no es determinante para que el juego sea más o menos poderoso, o para tener un mayor ELO, sino que hay otros factores que contribuyen a esa fuerza ajedrecística, a ese ELO.

Como ya explicamos en el artículo "¿Entendemos bien los datos técnicos de nuestra computadora de ajedrez?", al diseño del programa se une la potencia del procesador que lo va a ejecutar, así como otros factores añadidos, tales como el libro de aperturas y las tablas Hash, para aumentar la eficiencia de dicho programa.

La verdadera eficiencia en el juego la confiere el programa. El procesador y esos factores añadidos (libro de aperturas y tablas Hash) lo único que confieren al juego es más velocidad en el proceso, que a fin de cuentas aumentará el poder de juego de la computadora de ajedrez o del programa de ordenador, ya que una de las variables del juego de ajedrez es el tiempo. El libro de aperturas contiene jugadas ya grabadas que evita al procesador tener que analizar muchísimas posiciones, ahorrando mucho tiempo y las tablas Hash, que ya están suficientemente explicadas en la 2ª entrega del artículo mencionado, también ahorran tiempo.

Hay otro factor más para contribuir a esta velocidad en el juego, se trata de las tablas de finales. Nuestras máquinas no la tienen, por eso no incluí este tema en mi anterior artículo, que era solo referido a ellas, pero casi todos los programas de ajedrez de nuestro ordenador cuentan con estas tablas. Nuestras máquinas, cuando tienen tabla Hash, la sigue utilizando en los finales, donde siguen siendo muy útiles, ya que en esta fase se dan muchas posiciones iguales (“repetidas”).

F2

 

Máquinas más débiles que otras en el medio juego, son muy fuertes en finales, pero eso es solo mérito de su tabla Hash, que puede tener un tamaño óptimo para dicha máquina y la hacen más eficiente en los finales que otra más potente en el medio juego, dando la impresión de que tiene una tabla de finales.

Todos sabéis la enorme cantidad de posiciones que se pueden dar en el ajedrez. Posiciones que va encontrando el procesador cuando las va buscando y analizando durante el medio juego para decidir su próximo movimiento. Como dijimos en el artículo sobre los datos técnicos de nuestras máquinas, la ChessGenius pro analiza unas 50.000 posiciones por segundo, lo que significa que en sólo 15 minutos de una partida es capaz de analizar unos 45 millones de posiciones distintas (gracias a las tablas Hash no analiza las posiciones repetidas que pueda ir encontrando en sus búsquedas, que en ese tiempo puede suponer unos 3 millones más, ¡fijaros el tiempo que ahorra en sus análisis gracias a esa tabla!). Imaginaros el Fritz 15, funcionando en un ordenador de 4000 MHz y 64 bit, en esos 15 minutos de partida puede analizar más de 2.000 millones de posiciones.

 

F3

 

Las tablas de finales

Como sabéis, la notación de los movimientos, como los del libro de aperturas, está muy optimizada y ocupa muy poco espacio, por eso un libro de 50.000 movimientos se puede guardar en unos pocos KB. Pero obviamente la notación de una posición del tablero de ajedrez ocupa más de espacio, como las que se van guardando en una tabla Hash. Si hubiera que escribir esos 2.000 millones de posiciones que comentábamos antes, ocuparían miles de TB (un terabyte = 1000 gigabytes).

Pero en los finales, cuando ya quedan muy pocas piezas en el tablero, hablamos de 6 o menos, el número de posiciones posibles disminuye drásticamente, y aun siendo muchísimas, ya es factible hacer una tabla con todas las posiciones posibles. Esta tabla está estructurada en forma de base de datos, pero con una estructura especial con todas las posiciones indexadas, y que no vamos a describir aquí por tratarse de explicaciones muy técnicas sólo aptas para informáticos, pero si vamos a explicar su funcionamiento con palabras sencillas.

F4

Esas tablas de finales, como las tablas de Nalimov, que son las más usadas y conocidas, pueden ser de 6 piezas o menos (solo con una pieza más, siete, la tabla ocuparía más de 20 terabytes). Cuando un programa las usa, en cuanto que solo quedan esas 6 piezas en el tablero, inmediatamente se activa la tabla. Ya el procesador no tiene que "pensar", ya está todo calculado, esas tablas dan un resultado exacto para cada posición y jugada, ya sabe si tiene un mate a la vista, si lo tiene el contrincante, o si la partida está para tablas y en cuantos movimientos como máximo se producirá.

Es decir, el programa ya tiene el "plano" de todo el recorrido, e intentará ir por donde más le convenga. Sus respuestas serán inmediatas, puesto que ya no tiene que "pensar". Veamos los 3 supuestos posibles:

1º- Si es el programa el que puede dar mate, ya no tienes nada que hacer. Detecta el mate, por ejemplo en 20 jugadas, en el supuesto que juegues perfecto, pero si no es así el mate incluso se puede producir antes, en menos jugadas. Así que no pierdas el tiempo y tumba tu rey.

2º- Si detecta tablas, irá a por ellas por el camino más corto (no olvidemos que tiene el "plano"). Aquí un error tuyo puede cambiar el objetivo y hacer que sea posible un mate. Entonces estás perdido, como en el supuesto anterior irá a darte mate.

3º- Si detecta un mate que puedes darle tú, hará todo lo contrario, intentará retrasar lo más posible ese mate e ir buscando un fallo tuyo. Si éste se produce y ahora ve tablas, irá a por ellas, y si por tu fallo detecta mate a su favor, ya sabes lo que ocurrirá de forma inexorable.

Por tanto, una tabla de finales dará una jugada precisa para cada posición o jugada que se produzca. Es, de una forma metafórica, un plano de lo que queda de partida con todas las variantes posibles. Pero claro, el plano lo tiene el programa, no lo tienes tú. 

© Chess Computer Coleccionistas (2019)