Sunday, November 01, 2009

Catalogador de archivos de ajedrez

El ajedrez, sin duda, cobró nuevo aliento cuando se alió de manera casi natural con la computadora. Los primeros esfuerzos estuvieron enfocados a crear programas que pudiesen jugar al ajedrez con la fuerza de un gran maestro y esa historia, sin duda, es fascinante. Baste destacar la apuesta que hiciese el MI David Levy a los programadores de su tiempo de jugador activo (1968), indicando que no podrían programar una máquina para que le ganara un match. El tiempo para hacer una máquina con esa posibilidad era de diez años.

En 1973 Levy escribió: "Claramente ganaré... la apuesta en 1978 y podré aún ganar si el período se extiende por otros diez años. Impulsado por la falta de progreso conceptual por más de dos décadas, estoy tentado a especular que un programa de computadora no podrá ganar el título de Maestro Internacional antes de que cambiemos de siglo y de que la idea de un campeón mundial electrónico pertenece a los libros de ciencia ficción".

Hasta 1977, no había ningún programa de computadora lo suficientemente bueno para amenazar a Levy. En abril de ese año jugó un match contra Ches 4.5, un programa escrito por David Slate y Larry Atkin, de la Universidad de Northwestern, quien había jugado con cierto éxito en eventos humanos, incluyendo el ganar el torneo abierto de Minessota en el mismo 1977. Levy ganó el primer partido pero el segundo no se jugó porque simplemente Levy ya no podría perder el match. En diciembre 17 de ese año, Levy jugó contra KAISSA un match a dos partidas. Levy ganó el primer encuentro y el match fue terminado. En agosto de 1978 Levy de nuevo jugó contra MacHack. Esta vez se jugaron los dos partidos que Levy ganó.

El match final, necesario para que Levy ganara la apuesta se jugó en agosto de 1978. Esta vez contra Chess 4.7, un sucesor de Chess 4.5. Se jugaron seis partidas y Levy ganó convincentemente el match 4.5 a 1.5 puntos. La computadora logró un empate en la partida dos (después de obtener una posición ganadora, pero que Levy se encargó de neutralizarla en el final), y un triunfo en la partida cuatro en donde Levy ensayó un muy dudoso gambito letón. Levy escribió entonces: "he probado que mi valoración en 1968 fue correcta, pero por otra parte, mi oponente en este match ha sido mucho, pero mucho más fuerte que lo que pensé que era posible cuando empecé la apuesta". Y observó lo siguiente: "Ahora ya nada me sorprendería (mucho)".

Para estimular el desarrollo del ajedrez por computadora, Levy ofreció mil dólares a los autores del primer programa que lo vencieran en un match a cuatro o seis partidas. La revista OMNI añadió 4000 dólares para un gran total de 5000. En 1989 los autores de Deep Thought ganaron el premio cuando el programa venció a Levy.

En 1996 la revista Popular Science le preguntó a Levy sobre el resultado de Garry Kasparov contra Deep Blue. Levy dijo confiado: "Kasparov puede ganar el match 6 a 0 si lo desea. Estoy cierto en esto y pongo mi vida en ello". De hecho, Kasparov perdió el primer juego aunque a la postre ganó el match por 4-2. El siguiente año, sin embargo, perdió su histórico match 2.5-3.5.

Hoy día los programas de computadora son tan fuertes como los mejores grandes maestros del planeta. Los "engines" de análisis como Rybka demuestran la fascinante capacidad para verlo prácticamente todo. Levy, sin duda, fue una parte importante en todo este desarrollo.

Afortunadamente, los esfuerzos del ajedrez computarizado no terminaron ahí. Surgieron programas para estudiar táctica, estrategia, finales, aperturas, etc. Una empresa alemana (Chessbase) y otra holandesa (New in Chess), sacaron sus propias bases de partidas (datos), con toda la historia del ajedrez. La segunda desapareció y probablemente Chessbase sea el líder del mercado (existe un manejador de partidas escrito por otra empresa, Convekta, que tiene -al igual que Chessbase, sus propios fanáticos). Dichas bases, al momento de escribir esto, tienen más de 5 millones de partidas más lo que se acumule esta semana. Así, con la potencia de las bases de datos, el ajedrecista se hizo entonces de un acervo de estudio nunca antes imaginado.


No obstante esto, los libros de ajedrez se siguen publicando con una asiduidad que sorprende. Gracias a otro fenómeno, las redes peer to peer [p2p], mucha gente comenzó a intercambiar archivos de música, programas, documentos, libros escaneados, y por supuesto archivos de ajedrez. Hoy en día pueden encontrarse miles de libros, literalmente, escaneados y puestos en formato PDF o DejaVu para poder ser leídos e impresos en la computadora. Aunque ciertamente mucha gente sube material con derechos de autor, la tecnología sobrepasa estas barreras legales y cualquiera puede, con el suficiente ancho de banda, hacerse de esta información, y no sólo en el rubro del ajedrez.

Debido a esto, y a que ya me he hecho de una buena colección de software, libros, programas, etc., de ajedrez, decidí que era el momento de escribir un programa para poder clasificar qué tengo. Como tengo mis discos de aperturas de Chessbase respaldados en un disco duro que uso solamente para eso, pensé que no sería mala idea de escribir un sistema que catalogara y clasificara mis archivos de ajedrez, para llevar control del material que tengo en mi poder.


El programa

Escribí entonces un programa en Delphi, usando un manejador de bases de datos llamado Absolute Database, que hace la vida muy sencilla al programador y que además, es compatible con el BDE, el manejador de base de datos nativo de Delphi.

El plan fue muy sencillo: se trataba de crear una base de datos que tuviese los siguientes campos:

  • Título
  • Temas
  • Descripción
  • Ubicación

El Título se refiere al nombre del archivo que se encuentra en el disco duro. Los Temas son precisamente la clasificación que el usuario deberá indicar (aperturas, medio juego, finales, táctica, estrategia, combinaciones, etc.). Descripción es un texto que precisamente describe qué es el archivo y para qué sirve y por último, Ubicación, que indica en qué disco y directorio se encuentra el archivo en cuestión.

De esta manera, lo que había que hacer era escribir un programa que leyera la carpeta en donde se encontraran los archivos de interés y entonces pedirle al sistema que los incluyera en la base de datos. Una vez hecho esto, el siguiente paso fue hacer un sistema para buscar resultados así como borrar, si ya no nos interesaba alguna entrada en la base de datos e incluso toda, si así se deseara.

El programa fue un simpático ejercicio de bases de datos simples, el cual permite llevar una organización de los archivos que se tienen en disco. El software se orientó para ser usado particularmente en los archivos de ajedrez, pero bien podría usarse en otros ámbitos. Sin embargo, no hay planes para hacerlo trabajar en otros medios ambientes.

El programa es gratuito y quien lo deseé, simplemente escríbame a mi correo (morsa@la-morsa.com) y lo tendrá en su buzón al día siguiente.

No comments: