Artículos

Reportajes extensos sobre todo aquello relacionado con nuestras computadoras.

¿Entendemos bien los datos técnicos de nuestra computadora de ajedrez? - 2ª parte

Astron
Author: Astron
Usuario y colaborador de la web.

APERTURAS

Este artículo es la continuación de la primera parte publicada hace una semana. 

Otras características

Aunque la potencia del procesador es muy importante, también lo son otras características de la máquina, que cuando no hay grandes diferencias en los parámetros anteriores, pueden desequilibrar la balanza, haciendo más eficiente a máquinas con un procesador más débil. Estas son:

1) El programa (software) que tenga implementado, pues unos pueden tener algoritmos más eficientes que otros en igualdad de condiciones.

2) El libro de aperturas, pues no es lo mismo disponer de uno con 5.000 mov. que del libro de aperturas con 100.000 mov. que posee la ChessGenius Pro.

3) Las tablas Hash, algunas máquinas no las tienen, otras tienen tablas de 32KB, y otras llegan hasta 512 KB.

Las tablas Hash.

Cuando nuestra máquina está buscando posiciones, cada vez que encuentra una, la analiza y de acuerdo a unas condiciones ya establecidas por el programa, la compara con la anterior, y guarda momentáneamente la que considera mejor. Cuando encuentra la siguiente posición vuelve a hacer lo mismo, y así sucesivamente. Como hemos visto antes, esto lo hace a velocidades endiabladas, pero aun así, cada vez que encuentra una posición, tiene que analizarla y compararla con la anterior, y en eso pierde tiempo.

Además, después de varios movimientos de piezas se puede llegar por caminos distintos a una posición idéntica en el tablero.

Podemos avanzar peón blanco a3, después nuestro oponente mueve peón a6 y después movemos el caballo a f3, si movemos primero el caballo, nuestro oponente mueve su peón a6 y después movemos el nuestro a3, hemos llegado a la misma posición por caminos distintos. Pero la máquina, que busca por todos los caminos, cuando llegue de nuevo a esta posición volverá a analizarla y a compararla, perdiendo un tiempo innecesario, pues esa posición ya había sido analizada y comparada. Y posiciones idénticas por caminos distintos hay muchas, teniendo en cuenta que la máquina analiza todas las posibilidades en la estructura de árbol generada.

Si la máquina tuviera un espacio en la RAM donde ir copiando todas las posiciones que ya ha analizado, cada vez que llegara a una posición consultaría esa tabla, y si está ahí, es que ya la ha analizado y no lo vuelve a hacer, ahorrándose así ese tiempo de análisis y comparativa, siguiendo su camino en busca de la siguiente posición. Esa sería una tabla Hash. HASH

¡Pero cuidado!, si esa tabla es muy grande (ya que la máquina está analizando miles de posiciones por segundo), puede ocurrir que el procesador tarde más en buscar en la tabla para encontrar esa posición, que el tiempo que tardaría en analizarla de nuevo. Como dice el refrán, sería peor el remedio que la enfermedad. En este tema ha habido mucha controversia sobre cuál es el tamaño adecuado de unas tablas Hash, no sólo por el motivo mencionado, sino porque mientras más se profundice en la búsqueda de posiciones, más irán cambiando éstas y más difícil será encontrar una repetida, por eso, puede ser mejor una tabla no muy grande, donde al llegar al final del espacio de memoria reservada, se irán borrando las anotaciones de posiciones más antiguas, para ir guardando las nuevas, entre las que es mucho más probable encontrar posiciones ya analizadas o repetidas.

Ese tamaño ideal es diferente según las características del procesador. Un determinado procesador tarda lo mismo en analizar y comparar cada posición que encuentra. Pero en buscar una posición en una tabla se tardará más o menos según el tamaño de la misma. Se trata pues de buscar para cada procesador el tamaño de la tabla a partir del cual se empieza a tardar más en la búsqueda que en el análisis de esa posición. En general los micros más débiles deben tener tablas más pequeñas que los más potentes. O dicho de otra forma, un procesador débil será más eficiente con una tabla Hash pequeña que con una grande. Así que no nos dejemos engañar por el tamaño de las tablas Hash cuando comparemos dos micros.

Otra cosa interesante a saber, es que estas tablas no tienen efecto, y por tanto la máquina no las usa aunque las tenga, mientras se está usando el libro de aperturas, ya que éste tiene un sistema propio para detectar una misma posición, o dicho de otra forma, el libro de aperturas ya de por sí hace también las veces de tabla Hash en lo que a la apertura se refiere, y además de forma más eficiente, ya que el procesador no necesita generar ni almacenar en la RAM las posiciones que va analizando, como ocurre en la tabla Hash.

Este sistema para detectar una misma posición que tienen los libros de apertura es más eficiente que el de la tabla Hash, pero no puede usarse en la misma porque está basado en las jugadas que ya hay almacenadas en el libro.

Por tanto, tener un libro de aperturas conlleva una ventaja añadida a la propia de disponer de esas aperturas, por ello podemos afirmar que todas las máquinas que dispongan de este libro, disponen de tablas Hash durante la fase de apertura.

La Master Chess no dispone de tablas Hash. Pero por lo dicho en el párrafo anterior, dispone de esas tablas dentro de la fase de apertura, por su libro con 50.000 movimientos.

Por último sólo nos queda hablar de las memorias de nuestras máquinas, que veremos en la 3ª parte.

 

© Chess Computer Coleccionistas (2019)