next up previous contents
Next: Hardware Up: Software Previous: Algunas conclusiones   Índice General

Bases de Datos

Las bases de datos tanto de aperturas como de finales empezaron a hacerse presente en los programas de ajedrez a principios de los años 70, y tuvieron su desarrollo principal en el año 1975, con los trabajos desarrollados por Thompson [71].

La necesidad de incorporar bases de datos en los programas surge del hecho de dar a éstos una herramienta bajo la cual puedan reducir considerablemente el tiempo del proceso de búsqueda en profundidad al entregarles una lista de posiciones las cuales ya están previamente evaluadas. Los primeros programas de ajedrez que carecían de bases de datos de finales presentaban un nivel de juego muy bajo en esta etapa de la partida, tanto así que los programadores decidían terminar las partidas antes de entrar en esta etapa del juego (ver partidas 3 a 5 en Anexo B). El problema era que en la etapa del final de partida los eventos importantes requieren por lo general muchos movimientos para hacerse presentes, por lo cual los programas con su capacidad de profundidad limitada a algunos pocos movimientos eran incapaces de "ver" situaciones que se producirían en el futuro. Las funciones de evaluación tampoco estaban lo suficientemente desarrolladas como para cooperar en la selección de movimientos correctos en esta etapa del juego, lo cual se convirtió en un problema de difícil solución para los programadores de la década de los 60. Ya en la década de los 70 los programas poseían mejoras en los procesos de búsqueda y funciones de evaluación más completas, lo cual hacía que jugasen a un nivel "aceptable" esta etapa del juego, si bien se les reconocía como una debilidad ante la cual los rivales humanos se mostraban superiores. El problema seguía siendo el efecto de no poder llegar a evaluar posiciones de muchos movimientos a futuro, es decir, la búsqueda requería demasiadas iteraciones con tal de poder tomar una decisión correcta.

La llegada de las bases de datos constituyó una enorme mejora para los programas. Bastaba ahora que lograsen llegar a una posición conocida (probablemente almacenadas en una tabla de hash) con lo cual ya no se debía seguir profundizando puesto que se tenía la evaluación de este final. El desarrollo de estas bases de datos sorprende hasta el día de hoy, con finales de 5 piezas ya totalmente resueltos por computadora (ver capítulo 5), es decir, para un programa con este tipo de base de datos el final de R+T+A v/s R+T está totalmente resuelto a partir de cualquier configuración legal de esas piezas sobre el tablero.

Las bases de datos de apertura cumplen con un fin similar, entregar al programa posiciones pre-evaluadas con tal de reducir su tiempo asignado a la búsqueda en profundidad. A diferencia de las bases de datos de finales éstas entregan referencias de los mejores primeros movimientos a partir de una posición raíz. Éstas fueron construidas principalmente en base a literatura ajedrecística y análisis previo de las propias computadoras.

El programa que tenga acceso a una base de datos tendrá la posibilidad de que al llegar a una posición conocida realizará un "corte" en su búsqueda en profundidad, asignando inmediatamente el valor que indica la base de datos para esa posición a la rama de la variante que se está calculando. En términos prácticos, esto significa que el programa podrá utilizar más tiempo para calcular más posiciones de otras ramas del árbol de variantes y probablemente lograr analizar uno o más niveles de profundidad. Por lo tanto, la comparación entre programas que poseen una base de datos incorporada (de finales o bien un libro de aperturas) se reduce a una comparación entre programas con distintos niveles de profundidad de búsqueda, lo cual como decíamos al principio de este capítulo significará cerca de 200 puntos de rating por cada nivel de profundidad de ventaja.

Ahora bien, un caso interesante de realizar comparaciones es el cómo comparar distintas bases de datos. Una primera comparación es por su tamaño o bien cantidad de posiciones incorporadas en ella. Mientras más posiciones incorporadas muchas más posibilidades de que el programa "encuentre" su posición actual. Otra comparación se refiere a la evaluación asignada en la base de datos a las posiciones presentes. Si las evaluaciones no son correctas la base de datos podría convertirse en un segundo antagonista del programa al entregar resultados incorrectos acerca de una posición en la búsqueda. Es por esto que uno de los factores más importantes en las bases de datos es su correctitud en la evaluación de las variantes.

En el día de hoy las bases de datos poseen miles de posiciones la cuales se almacenan en las tablas de Hash de los programas o bien se crean rutinas que consultan la base de datos para cada iteración sobre una posición. El requerimiento principal para la incorporación de la base de datos al programa es una buena cantidad de memoria, esto para la confección de tablas de Hash lo suficientemente grandes.

Strohlem (1970) Thompson (1986)
Piezas Movimientos para ganar Piezas Movimientos para ganar Piezas Movimientos para Jaque Mate
R+D v/s R 10 R+A+A v/s R+C 66 R+T+T v/s R+T 31
R+T v/s R 16 R+D v/s R+C+C 63 R+D+T v/s R+T 35
R+T v/s R+A 18 R+D v/s R+A+C 42 R+D+C v/s R+D 41
R+T v/s R+C 27 R+D v/s R+A+A 71 R+D+A v/s R+D 33
R+D v/s R+T 31 R+T+C v/s R+T 33 R+D+T v/s R+D 67
  R+T+A v/s R+T 59 R+D+D v/s R+D 30
Tabla: Resultados obtenidos en el análisis de finales de 5 o menos piezas


next up previous contents
Next: Hardware Up: Software Previous: Algunas conclusiones   Índice General
Santiago de Chile, Julio 2003