![]() |
![]() |
|
El Turco - nº0 El laboratorio de Fritz y ChessBase por Fernando Morán Fernández. Afinando a Fritz Una de las
características que hacen de Fritz un programa especialmente apreciado
es la posibilidad de adaptarlo a distintas configuraciones de equipos y la regulación
su potencial… dentro de unos límites, por supuesto. Los tipos de
ajustes que se pueden hacer son de tres clases principales: a)
De configuración y entorno: datos del usuario; tipo de reloj; tamaño
y dimensión del tablero; características del tablero 3D; tipo
de notación; impresión; opciones de entrenador; música;
habla; colores; idioma de los menús, ayuda y anotaciones; elementos a
mostrar en pantalla; tipos de letra ("fuentes" en argot informático),
etc. b)
De ritmo de juego: rápidas; torneo; con bonificaciones de tiempo por
jugada o totales; partidas de entrenamiento, amistosas, en conferencia, etc. c)
De fuerza y tipo de juego: tiempo o profundidad de análisis fija para
cada jugada; nivel Elo; estilo más o menos agresivo o defensivo; preferencias
en el juego por el flanco de rey o el de dama; tendencia a mover determinados
tipos de piezas; partidas con el programa al máximo nivel o contra "enemigos"
con determinadas fijaciones en su juego (configurables por el usuario); distintos
tipos de módulos (seleccionables incluso para cada fase de la partida)
con valores ajustables de algunos de sus parámetros de funcionamiento,
como agresividad, contención, selectividad; diferentes libros de aperturas;
opciones de aprendizaje; tamaño de las tablas de transposición,
etc. Sobre la clasificación
anterior es obligado indicar que los dos últimos aspectos podrían
haberse fundido en uno sólo, dada la influencia que tiene la duración
de la partida en el rendimiento ajedrecístico del programa. Igualmente
es justo indicar que hay características de Fritz que se escapan a la
clasificación anterior: opciones para el análisis de partidas,
funciones de base de datos, funciones de evaluación del Elo, generación
de torneos y evaluación de módulos de ajedrez, búsqueda
de mates, etc.
Como por algún lado hay que empezar, puesto que creo que es un aspecto
poco conocido por los usuarios y sobre el que hay cierta confusión, me
centraré hoy en el ajuste de las tablas de transposición o tablas
"hash". Simplificando los conceptos, se puede decir que los programas
de ajedrez "piensan" analizando y valorando las posiciones que surgen
tras cada jugada posible. Ello implica que para cada movimiento deban tratar
de tener en cuenta varios miles, cientos de miles o millones de posiciones.
Con cierta frecuencia, por distintos caminos, se llega a la misma situación
de las piezas: pensemos por ejemplo en una posición cualquiera en la
que se pueda dar un orden de jugadas Af5, a6,Cc3, pero que también quepa
ejecutarse Cc3, a6,Af5. La posición final sería la misma y el
ordenador tendría que analizarla dos veces, perdiendo un tiempo precioso.
Así que los programadores decidieron que se podía aumentar la
fuerza de los programas si se guardaban los resultados de las valoraciones previamente
realizadas, de forma que no se derrochase tiempo de procesamiento en examinar
una misma posición más de una vez. Pues bien, las tablas de transposición
o tablas "hash" son precisamente el lugar donde se guardan dichas
posiciones y valoraciones y se trata de un espacio determinado de la memoria
RAM reservado para tal uso. Aprovecho para recordar aquí que cuando hablamos
de posición hay que tener en cuenta no sólo la colocación
de las piezas sino también el turno de juego y otros factores adicionales:
posibilidad de enrocar y de comer al paso.
Fritz es un programa que tiene una gran capacidad de cálculo (de ella
obtiene su inusitada potencia táctica) y hace un uso intensivo de las
tablas de transposición, por lo que tiene relevancia ajustarlas bien:
si son demasiado pequeñas, las llenará pronto y parte de su tiempo
de análisis no será utilizado eficientemente, porque las tablas
no cumplirán su función; por el contrario, si son muy grandes,
además de desperdiciar un recurso escaso, como es la memoria RAM de que
disponemos (sobre todo trabajando con Windows), el tiempo de manejo de las tablas
puede ser significativo, con lo que no desempeñarán tampoco su
cometido. También es cierto que Windows puede emular la RAM en espacio
libre de nuestro disco duro, pero el tiempo de acceso a esa información
es mucho mayor que si se trata de RAM convencional, con lo que nuestro amigo/enemigo
de silicio pierde eficacia. ¿Cómo podemos establecer un tamaño
apropiado? Existen varias formas de hacerlo: 1)
Pulsando F3 o haciendo clic sobre el botón 2)
Haciendo clic con el botón derecho del ratón tras poner el puntero
esté sobre el nombre del módulo, en la esquina superior derecha
de la ventana de búsqueda, y escogiendo "parámetros del módulo"
o con el atajo de teclado (Ctrl+Mayús+P) o, como tercera
alternativa, pulsando en Haciendo clic
sobre Ya vimos cómo y ahora
hay que saber cuánto. Para ello podemos guiarnos por cuatro indicadores: a)
La cantidad de RAM disponible, que se nos indica en la ventana de "cargar
módulo" (F3), nos marca el límite superior. El valor que
aparece tiene descontado el espacio ocupado por los módulos que ya tengamos
cargados, por lo que, para darnos idea del valor máximo o bien echamos
números y le añadimos las cifras que tienen a su derecha los módulos
cargados o bien los descargamos todos (para ello los iremos resaltando, apretando
a continuación el botón que tiene dos flechas apuntando hacia
la columna de módulos inactivos), pulsamos OK, nos aparece un mensaje
de error indicándonos que no hay módulos cargados y que, por lo
tanto Fritz no responderá a nuestras jugadas. Tras aceptar el aviso,
volvemos a pulsar F3 y el valor que veremos, con la lista de módulos
cargados vacía, será el máximo que podamos usar con un
módulo o repartir entre varios. Hay que tener en cuenta esto a la hora
de trabajar en esta ventana. Si tenemos cargado digamos Fritz5.32 con 16Mb de
tablas hash y se nos informa de que disponemos de otros 16 Mb libres, la manera
de incrementar las tablas a 32Mb es introduciendo el valor en recuadro del tamaño,
ya que en las opciones preseleccionadas la opción de 32 Mb aparecerá
atenuada. Ello impide que se pueda adjudicar más memoria de la disponible
para repartir entre varios módulos. El valor óptimo
lo calcula automáticamente, a partir de la fórmula que se analiza
en el apartado c), de acuerdo con los controles de tiempo que hayamos seleccionado
para jugar (Ctrl+V) presuponiendo un procesador que corra a 200MHz, por lo que,
si nuestro procesador trabaja a una velocidad parecida, podemos usar al propio
Fritz como calculadora: cambiamos el control de tiempos y luego miramos el valor
que nos sugiere. Para otras velocidades del procesador, el valor exacto se puede
calcular mentalmente con facilidad: dividimos el óptimo que nos da Fritz
entre 2 y lo multiplicamos por los cientos de megahercios que tengamos: por
ejemplo, en un PII a 450, con un tiempo de 20 segundos/jugada, Fritz nos da
un óptimo de 8000Kb, que ajustados serían 8000/2=4000; 4000*4,5=18000.
El entorno de valores mínimos corresponde a una estimación en
función de la memoria RAM que tengamos instalada en el equipo, de manera
que siempre tengamos espacio libre para otras funciones. c) El manual
del usuario nos da una fórmula para calcular el valor mínimo necesario,
que es: Tamaño
Tablas Hash (KB) = 2 * Frecuencia del procesador (MHz) * tiempo por jugada (
segundos) Lo primero
que hay que advertir es que es válida sólo para Fritz, ya que
el consumo de tablas de transposición no es igual para todos los módulos.
Además, por necesidades de programación, los programas suelen
tener unos límites máximos en la capacidad de las tablas que pueden
manejar. Aunque suelen estar bastante altos para que nos topemos con ellos,
quizás en alguna versión antigua de algún módulo,
de repente, nos encontremos con que no nos acepta más de, digamos 64Mb,
por mucho que le queramos dar 128Mb de los flamantes 256Mb de que disponemos. Si representamos gráficamente
la fórmula queda patente que a procesador más veloz, mayor tamaño
de tablas de transposición será necesario, con el mismo Cuando digo tiempo "eficaz"
me refiero a que, una vez que las tablas hash están llenas, el módulo
de ajedrez no es capaz de aprovechar las ventajas de las mismas, porque no puede
guardar en ellas los datos necesarios, de acuerdo con el fundamento de su utilización
que se explicó más arriba, por lo que el tiempo adicional empleado
en profundizar en la posición apenas compensará el resultado.
En estos casos, como explica el manual, es mejor usar la función de análisis
de correspondencia (Ctrl+Mayús+T) El tiempo que se debe introducir
en la fórmula es directo si hemos establecido el nivel de juego en segundos
por movimiento, pero en el caso de que usemos otros ritmos deberemos calcular
a partir de ellos un tiempo promedio por jugada, suponiendo unas 40 o 45 jugadas
por partida. Para afinar esa cifra hay que echar mano del sentido ajedrecístico:
según el tipo de juego que desarrollemos y las aperturas empleadas; dependiendo
el número de jugadas que Fritz o nosotros nos mantengamos el libro de
aperturas; teniendo en cuenta que se pueden producir variantes lineales o jugadas
forzadas; echando cuentas sobre si queremos simplificar y llegar a finales para
los que hemos autorizado a Fritz a usar la colección de CD's, pues en
estos casos no se usarán las tablas de transposición. c)
Otros sentidos desempeñan también un papel importante, a la hora
de percibir como está funcionando el contrincante alemán: I)
La ventana de información de búsqueda nos informa del porcentaje
de tablas de transposición que lleva usado Fritz en la casilla que está
situada a la derecha de la que muestra la profundidad de búsqueda, en
la que alternativamente presenta el tiempo que usa el programa en cada jugada
y el movimiento que espera que realicemos, cuando está activada la característica
de pensar siempre. Es conveniente echarle un vistazo y ver si Fritz nos responde
habitualmente antes de alcanzar el 100% ("FULL") o si, por el contrario,
sigue calculando un buen rato después de alcanzar dicho valor. En el
primer caso tendremos las tablas de transposición fijadas en exceso y
en el segundo, por defecto. II)
El oído también es de utilidad. Cuando asignamos un tamaño
de tabla muy grande, Windows debe liberar parte de la RAM que está usando
para que la podamos utilizar con ella. Para dejarnos ese hueco, pasa la información
que había en él al disco duro, en una labor que puede llevar varios
minutos (2, 3, 5 o más, no se desespere: liberar 50Mb de RAM puede llevar
un tiempo considerable, dependiendo de la velocidad del procesador y del tiempo
de acceso al disco duro) Tranquilos, nuestro Fritz no se ha colgado. Sentiremos
como "ratea" nuestro disco duro durante el proceso. Tras esta fase
inicial, no deberíamos volver a oír esa operación, excepto
para inapreciables accesos al libro de aperturas, si es que lo hemos copiado
a el disco duro. Si esto no sucede y el ordenador mete ruido cada vez que es
su turno de juego, no quiere decir que nuestra jugada levante murmullos entre
los chips. Para nuestro pesar significa que Windows ha emulado parte de la RAM
necesaria para las tablas colocándola en el disco duro. Como ya se dijo,
los tiempos de acceso a dicha RAM son significativos y lo aconsejable es disminuir
el tamaño de las tablas, reduciendo también el tiempo por jugada,
de acuerdo con lo razonado cuando se habló del tiempo de cálculo
eficaz. Con el fin de evitar que esos trasvases de RAM afecten a nuestra partida,
es aconsejable que primero liberemos la mayor cantidad de memoria posible. Para
disponer de más RAM "pura" libre para las tablas de transposición
podemos: A) Evitar
tener abiertos simultáneamente otros programas. B) Cerrar
el Programador de tareas de Windows, si es que lo tenemos cargado. C) Seleccionar
"ninguno" como protector de pantalla. D) Desactivar
los programas antivirus, de medición de recursos del sistema, de protección
contra cuelgues y cualesquiera otras utilidades que no tengan relevancia a la
hora de pasar un rato divertido con Fritz. E) Dejar
de usar la función "Ayuda de entrenador" (Alt+T) Una vez hecho esto, seleccionaremos
un nivel de juego, ajustaremos las tablas de transposición de acuerdo
con los valores de tiempo con los que queremos jugar la partida seria y comenzaremos
un enfrentamiento de prueba, para que el ordenador haga los ajustes de RAM necesarios.
Una vez terminados, detendremos la prueba e iniciaremos nuestra partida de verdad. Como colofón y para
señalar la importancia que pueden llegar a tener las tablas de transposición
y su uso cabe señalar que el nuevo Hiarcs 7.32 no sólo genera
tablas de transposición en cada turno de juego sino que "recuerda"
las evaluaciones realizadas con anterioridad: de este modo los programas pueden
ir hilvanando "planes" de juego. Este módulo, que también
se comercializa como programa completo con la misma interfaz de usuario que
Fritz5.32, dispone de unas tablas de finales, pero que se fundamentan en un
concepto distinto del analizado en este artículo. Salud y suerte. |
||||||||||||||||